5 Commits

98 changed files with 29595 additions and 1955 deletions

11
UPDATE.md Normal file
View File

@@ -0,0 +1,11 @@
## PicHome beta2.0 更新说明
### 1.增加移动端支持
### 2.导入逻辑优化,优化导入效率,修复文件移动分类后分类丢失问题
### 3.优化删除库逻辑修复删除库导致的导入状态bug
### 4.优化访问效率
### 5.其他已知bug修复

View File

@@ -8,7 +8,7 @@ d3af6beed6f4c5941d8474d8c30de6ab *admin/login/images/bg_login.gif
c3ed53246c61a74dca37236067d3ba56 *admin/login/login.php c3ed53246c61a74dca37236067d3ba56 *admin/login/login.php
2ccb26dbc4099faa5579c6c0d5727623 *admin/login/updatesession.php 2ccb26dbc4099faa5579c6c0d5727623 *admin/login/updatesession.php
cd5af5197f085d31563c357bf2b3f933 *admin/scripts/admin.js cd5af5197f085d31563c357bf2b3f933 *admin/scripts/admin.js
2eead28813ab73fc1f0c84d01e6ba64a *admin/system/common.php a6964db4b95a3d7fc276d190f92a9542 *admin/system/common.php
a60c2224558c2b82fbc7c5298df8aa5f *admin/system/cron.php a60c2224558c2b82fbc7c5298df8aa5f *admin/system/cron.php
a3342df727581964bd15ba05ef4b74db *admin/system/database.php a3342df727581964bd15ba05ef4b74db *admin/system/database.php
9a7dd5d9cca593615256b921abcc0ab6 *admin/system/dist/css/chunk-2b4f90f7.519dec70.css 9a7dd5d9cca593615256b921abcc0ab6 *admin/system/dist/css/chunk-2b4f90f7.519dec70.css
@@ -90,7 +90,7 @@ abe78a94ae6f33d188e25d7047f5b0f2 *admin/systemlog/template/admin.htm
455bd79582a8bea73faec69555b69eb3 *admin/systemlog/uninstall.php 455bd79582a8bea73faec69555b69eb3 *admin/systemlog/uninstall.php
5bb95d9914284024bfbde8e8cb60286f *admin/template/header_left.htm 5bb95d9914284024bfbde8e8cb60286f *admin/template/header_left.htm
853b016ecacafd2eccc8f35a5ab8b276 *admin.php 853b016ecacafd2eccc8f35a5ab8b276 *admin.php
af8d986a5c78a4d104938291c6e541ca *avatar.php 5e5eb249d06b26d6c26cc8fb30b78892 *avatar.php
d0029be05cb9f585dcbcc8dd34817b81 *config/config_default.php d0029be05cb9f585dcbcc8dd34817b81 *config/config_default.php
a316f263465d0751621451addf43c399 *config/config_frame.php a316f263465d0751621451addf43c399 *config/config_frame.php
77fc6ae224ef71e20a515569babe71db *core/adminstart.php 77fc6ae224ef71e20a515569babe71db *core/adminstart.php
@@ -239,13 +239,13 @@ d5b0e7dc291a731a5c184d97baecf2df *core/class/table/table_user_profile_setting.ph
bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php
692cda4c6ad17e87e1edefb7251d0116 *core/class/table/table_user_wechat.php 692cda4c6ad17e87e1edefb7251d0116 *core/class/table/table_user_wechat.php
ca64f852f9c9442d65fa30ed279c6d6c *core/coreBase.php ca64f852f9c9442d65fa30ed279c6d6c *core/coreBase.php
f869d55a8b656f7e51ae88b928b91e6e *core/core_version.php b335e80b81831d8e322f43e404124d1d *core/core_version.php
d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.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 09bf107dfc58f0424b0245834d221a42 *core/cron/cron_clean_notification_month.php
56383d04d4bbd0537c55ff7ed42536f8 *core/cron/cron_database_backup.php 56383d04d4bbd0537c55ff7ed42536f8 *core/cron/cron_database_backup.php
d0cc3acfbff044dbb11da3ba9019c58d *core/cron/cron_pichome_check_library.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 e437812ec0dbb1050daa691303544d1c *core/dzzstart.php
d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php
98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php 98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php
@@ -255,9 +255,9 @@ ec9cb962601e7d0d092e7b6e09ba8dc2 *core/function/cache/cache_profilesetting.php
f0e6d9900f7db48051ee4fdea06c8889 *core/function/cache/cache_setting.php f0e6d9900f7db48051ee4fdea06c8889 *core/function/cache/cache_setting.php
cc7c6903e4401fdb29424890e2084a91 *core/function/cache/cache_usergroups.php cc7c6903e4401fdb29424890e2084a91 *core/function/cache/cache_usergroups.php
2ce5a4d7e34bca8432b5885b14b25574 *core/function/cache/cache_userstats.php 2ce5a4d7e34bca8432b5885b14b25574 *core/function/cache/cache_userstats.php
e3e91bb4a446a73d1744ca195e39066a *core/function/function_cache.php a4656352d5a04b447ae9ffa64e2474e7 *core/function/function_cache.php
c006c70d2a5b50212a02a31eff50c71d *core/function/function_code.php c006c70d2a5b50212a02a31eff50c71d *core/function/function_code.php
3727ad4836f9dbdacb0d6ce0f44ee443 *core/function/function_core.php 86342eb3ddd47606c7e1ced02f4cc54e *core/function/function_core.php
52776d2eac0619ddad1ca9762781a4b0 *core/function/function_filesock.php 52776d2eac0619ddad1ca9762781a4b0 *core/function/function_filesock.php
92ebd7558fd1c9291179a91fb3c2f880 *core/function/function_mail.php 92ebd7558fd1c9291179a91fb3c2f880 *core/function/function_mail.php
aff9e34d19a59c6c356696f8f2540618 *core/function/function_message.php aff9e34d19a59c6c356696f8f2540618 *core/function/function_message.php
@@ -1039,10 +1039,10 @@ eba5f5cecbb2a1cf2064e55c8c0de177 *dzz/pdf/web/locale/vi/viewer.properties
badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html
6cf3b8dd7fae022af726634be28de37d *dzz/pdf/web/viewer.js 6cf3b8dd7fae022af726634be28de37d *dzz/pdf/web/viewer.js
9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map 9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map
8659ad92dfd558463783565f41e2267b *dzz/pichome/admin.php 9702eb58e8b17ea4d968e2f0f6a7d14e *dzz/pichome/admin.php
7534bf9c73c427bffedb2ea88a853d12 *dzz/pichome/ajax.php 7769201a069c9a56a632185be123dea7 *dzz/pichome/ajax.php
da38e97091f039e98f3cff60351dec3c *dzz/pichome/checkexport.php 723acce1a4da50a5f61eb85632daee3f *dzz/pichome/checkexport.php
088006485445db81b3e5431e1a60efc6 *dzz/pichome/class/class_eagleexport.php 9f87ac4edea0ea57b5563bc4a0b7fb61 *dzz/pichome/class/class_eagleexport.php
6293eb9bd5b473c7f178be5d6534341c *dzz/pichome/config/config.php 6293eb9bd5b473c7f178be5d6534341c *dzz/pichome/config/config.php
29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/admin.css 29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/admin.css
07f01151181178c663d669622ea927f3 *dzz/pichome/css/common.css 07f01151181178c663d669622ea927f3 *dzz/pichome/css/common.css
@@ -1056,10 +1056,21 @@ f09b1c7476e28ad67f1c2f2f314230a0 *dzz/pichome/css/fonts/remixicon.symbol.svg
881fbc46361e0c0e5f003c159b2f3005 *dzz/pichome/css/fonts/remixicon.woff 881fbc46361e0c0e5f003c159b2f3005 *dzz/pichome/css/fonts/remixicon.woff
9915fef980fa539085da55b84dfde760 *dzz/pichome/css/fonts/remixicon.woff2 9915fef980fa539085da55b84dfde760 *dzz/pichome/css/fonts/remixicon.woff2
beba9d9c0e6f710c90145d9e3cbbab2d *dzz/pichome/css/index.css 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
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 48994b9f88c49cdb67a88116380cfb95 *dzz/pichome/css/theme/black/index.css
3d037ab39fd205fc01dcb0644dc73594 *dzz/pichome/css/theme/black/root.css 3d037ab39fd205fc01dcb0644dc73594 *dzz/pichome/css/theme/black/root.css
247be4f622b714c5745e69ebb932e197 *dzz/pichome/css/theme/darkgrey/index.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 732389ded34cb9c52dd88271f1345af9 *dzz/pichome/css/theme/fonts/element-icons.ttf
535877f50039c0cb49a6196a5b7517cd *dzz/pichome/css/theme/fonts/element-icons.woff 535877f50039c0cb49a6196a5b7517cd *dzz/pichome/css/theme/fonts/element-icons.woff
dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css
@@ -1070,11 +1081,12 @@ dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css
2566cbfc860d4bc3c12812d9d35011ef *dzz/pichome/css/theme/purple/root.css 2566cbfc860d4bc3c12812d9d35011ef *dzz/pichome/css/theme/purple/root.css
4705cbd2d8a842635d69d2ace637212e *dzz/pichome/css/theme/white/index.css 4705cbd2d8a842635d69d2ace637212e *dzz/pichome/css/theme/white/index.css
b07e0746971bb7c6dfc1d88ed2bdc4b2 *dzz/pichome/css/theme/white/root.css b07e0746971bb7c6dfc1d88ed2bdc4b2 *dzz/pichome/css/theme/white/root.css
b8ca416041036fcaa26a718343b671cc *dzz/pichome/details.php 0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php
8cbb24ea1bf37279c62c847f69984107 *dzz/pichome/download.php 8cbb24ea1bf37279c62c847f69984107 *dzz/pichome/download.php
e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml
149c4134105afa138de62c31034c38c6 *dzz/pichome/exportfile.php 6ebe1a87ddd4f9d980c7e484b5168937 *dzz/pichome/exportfile.php
06880b4a650311dd50933bf9a5aece2a *dzz/pichome/filelist.php 32e51cefc13d10a0eee49874203dd564 *dzz/pichome/exportfilecheck.php
0266871ad080f42c5ccd3a8e972a3abf *dzz/pichome/filelist.php
ae3317853c4561197a9a649000597886 *dzz/pichome/function/function_common.php ae3317853c4561197a9a649000597886 *dzz/pichome/function/function_common.php
d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp
152ec265e38eb67acb6cb31026448e3d *dzz/pichome/image/img/t1.jpeg 152ec265e38eb67acb6cb31026448e3d *dzz/pichome/image/img/t1.jpeg
@@ -1082,15 +1094,33 @@ d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp
309c31fa9200e0c9b4ee8fd3f1399dfc *dzz/pichome/image/img/t3.jpeg 309c31fa9200e0c9b4ee8fd3f1399dfc *dzz/pichome/image/img/t3.jpeg
5f5562a16dad1fa33294b5c0a920f1d6 *dzz/pichome/image/img/t4.jpeg 5f5562a16dad1fa33294b5c0a920f1d6 *dzz/pichome/image/img/t4.jpeg
08a26df5cbee8f21dbac8d646d1da218 *dzz/pichome/image/nodata.svg 08a26df5cbee8f21dbac8d646d1da218 *dzz/pichome/image/nodata.svg
1f0ee3cd38e82bd18490a34fcec8c690 *dzz/pichome/image/notScreen.png
f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png
efdb2935803c55f32f283c48abed9dbd *dzz/pichome/image/phlogo.png d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png
6c9bc6ff1ea0bb36eb156ae681741ee5 *dzz/pichome/index.php fcb60dfc7f223068eac9d35e8028617c *dzz/pichome/index.php
fbc658afc26c123d3ab585fd2eec4f2e *dzz/pichome/initexport.php
c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php
29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/audioPlay.js 29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/audioPlay.js
a088950fc4bf4348d87cda978e5ded97 *dzz/pichome/js/common.js a088950fc4bf4348d87cda978e5ded97 *dzz/pichome/js/common.js
b7a95d9f617863cf515a43e7b83978c5 *dzz/pichome/js/headerMethods.js b7a95d9f617863cf515a43e7b83978c5 *dzz/pichome/js/headerMethods.js
d752d1878252e486cc0244887cfadbae *dzz/pichome/js/headerWatch.js d752d1878252e486cc0244887cfadbae *dzz/pichome/js/headerWatch.js
d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/jquery.mousewheel.min.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
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 72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/plug/DomResize.js
8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/plug/element-ui.js 8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/plug/element-ui.js
dc3ea9ad3b70dda4a5250f14e9f2a36a *dzz/pichome/js/plug/jquery.row-grid.js dc3ea9ad3b70dda4a5250f14e9f2a36a *dzz/pichome/js/plug/jquery.row-grid.js
@@ -1103,32 +1133,47 @@ b21b8531847604ab5f2f5caaef51ba31 *dzz/pichome/js/vue/vue.js
69764bf35375a54256412f3c748b312d *dzz/pichome/js/waterfall.js 69764bf35375a54256412f3c748b312d *dzz/pichome/js/waterfall.js
c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php
8a3e6ab24d873202b96c3acd9c1b0d2b *dzz/pichome/language/zh-CN/lang.php 8a3e6ab24d873202b96c3acd9c1b0d2b *dzz/pichome/language/zh-CN/lang.php
7c10bb4a15f7522989848c5138174c05 *dzz/pichome/library.php 50c4c9bf7d32e57f7e7816680f972453 *dzz/pichome/library.php
ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php
3a9db7def73d093f8f30ccae5577f18f *dzz/pichome/share.php f1753ea283af7618463e0d03b8735e6f *dzz/pichome/share.php
37c8861eb4f7f8c94608935cd9c41544 *dzz/pichome/template/components/headerAdmin/index.htm 25cb394f79991dcd599e3a48434d8a08 *dzz/pichome/template/mobile/components/index/JsCommon.htm
59434ecdc8ec0b282eec428cc5806ff5 *dzz/pichome/template/components/headerindex/index.htm 3c0bae451668c060ae526d3253e9be73 *dzz/pichome/template/mobile/components/index/JsDetailMessage.htm
5518c2bc4f44f3636e63d6a3ebe6e508 *dzz/pichome/template/components/headerindex/screen.htm acea860028318bbeab9263e0028c0876 *dzz/pichome/template/mobile/components/index/JsImages.htm
105d244408ea6a9780677c28b376ea6c *dzz/pichome/template/components/headerindex/searchScreen.htm ab5bf119eb21b0b847dcf178a8dff9d9 *dzz/pichome/template/mobile/components/index/JsIndex.htm
47702c24d36ca5b820de1029b4fdf138 *dzz/pichome/template/components/index/images.htm 18939ca3c3ccb67156c1d2f3d059a3fa *dzz/pichome/template/mobile/components/index/JsMy.htm
986115087ed076c2e624bd94c0ec56f0 *dzz/pichome/template/components/index/indexVuex.htm 63e7150d7f8268df832d643c34964c82 *dzz/pichome/template/mobile/components/index/JsScreen.htm
c2953f2cc75684f3a777148ad8c5fce9 *dzz/pichome/template/components/index/screen.htm 76399fc5b4e7a84ee75ed49e34e483c9 *dzz/pichome/template/mobile/components/index/JsSearch.htm
8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/frame/footer_simple.htm b8d6091bba53d62ce9a4f1465da5412d *dzz/pichome/template/mobile/components/index/JsSort.htm
ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/frame/header_simple_end.htm 8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/mobile/frame/footer_simple.htm
891bc77b1e8e054dcbcbc5bcdd317592 *dzz/pichome/template/frame/header_simple_start.htm ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/mobile/frame/header_simple_end.htm
8f6971c0247b193ab47c3c5ddb6d0266 *dzz/pichome/template/page/adminBasic.htm fdc74d5e180321fc338ae91a1a90e22e *dzz/pichome/template/mobile/frame/header_simple_start.htm
11fd257b9af5db87fcf2b70568a4310d *dzz/pichome/template/page/adminFileterset.htm f5cceb704def0ea998936386fe5f5abf *dzz/pichome/template/mobile/page/details.htm
be4f1925a5cbd80416e8a545621132c2 *dzz/pichome/template/page/adminLoginpage.htm f9f65e35608efe6563e49abbc66c1249 *dzz/pichome/template/mobile/page/index.htm
9c164499d8cf7719b80e969fd6def67d *dzz/pichome/template/page/adminPagesetting.htm be7755b8e73e2ffa49557e8c3891027a *dzz/pichome/template/mobile/page/personal.htm
c77af0fd0053dfaa96f4db838ae6adf3 *dzz/pichome/template/page/adminPersonal.htm e26ea0557cda6d3b4d550e72ced64611 *dzz/pichome/template/mobile/page/share.htm
f0e94bac24224daf8e6957b01aea7fd6 *dzz/pichome/template/page/details.htm 1b2b3b2922d7e02373b1b9862c7a5ef7 *dzz/pichome/template/pc/components/headerAdmin/index.htm
4e61b93f59ad1885f03a5247022bbefd *dzz/pichome/template/page/index.htm e078614bb6d558d96006ec127f7c392c *dzz/pichome/template/pc/components/headerindex/index.htm
cf70aadbb56bd4fe27d1c1b15a75ca90 *dzz/pichome/template/page/library.htm 0436c3ba601aa0804b0e51926f557988 *dzz/pichome/template/pc/components/headerindex/screen.htm
016721dd93f715c67bd1cd66cb3ca679 *dzz/pichome/template/page/share.htm 105d244408ea6a9780677c28b376ea6c *dzz/pichome/template/pc/components/headerindex/searchScreen.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
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
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 3cd79761b99168c3f9faf607183df134 *dzz/pichome/uninstall.php
b5221437a0c978e0caf63f2278759934 *dzz/pichome/uninstall_real.php b5221437a0c978e0caf63f2278759934 *dzz/pichome/uninstall_real.php
efbd03954c4e8df90891d9d6f338619f *dzz/pichome/upload.php efbd03954c4e8df90891d9d6f338619f *dzz/pichome/upload.php
50001a358e0b90b6f1e4b2414c0f2d44 *dzz/pichome/user.php e79dc819cafad7450fda2748ee3989dd *dzz/pichome/user.php
3d037ab39fd205fc01dcb0644dc73594 *dzz/textviewer/css/theme/black/root.css 3d037ab39fd205fc01dcb0644dc73594 *dzz/textviewer/css/theme/black/root.css
e19d97f977fa3d2316168bbe8e4101e5 *dzz/textviewer/css/theme/darkgrey/root.css e19d97f977fa3d2316168bbe8e4101e5 *dzz/textviewer/css/theme/darkgrey/root.css
732389ded34cb9c52dd88271f1345af9 *dzz/textviewer/css/theme/fonts/element-icons.ttf 732389ded34cb9c52dd88271f1345af9 *dzz/textviewer/css/theme/fonts/element-icons.ttf
@@ -1155,8 +1200,8 @@ a875bc67c5d7db47c918a3cfe5318a57 *dzz/xgplayer/template/main.htm
5cb9422375b907e05eb6b7dc36fcd895 *favicon.ico 5cb9422375b907e05eb6b7dc36fcd895 *favicon.ico
8e55bdb192a3aefe82e03292527819ca *htaccess_default.txt 8e55bdb192a3aefe82e03292527819ca *htaccess_default.txt
55d39f5cf3916ab6a9336d95c671ab53 *index.php 55d39f5cf3916ab6a9336d95c671ab53 *index.php
ede086aa34596b826b2ccf6d32a89303 *install/data/install.sql 149ca09a781fa0fd9ee90ceb0a409006 *install/data/install.sql
67df3c5463e4b6826d4cfc8cc5d64b82 *install/data/install_data.sql 6add5cf682c64601c21a727302a46431 *install/data/install_data.sql
feabf4e4c8e20dc73548dfd6ba8400f9 *install/images/error.png feabf4e4c8e20dc73548dfd6ba8400f9 *install/images/error.png
fc25acefcabc066437d4b27550387954 *install/images/logo.png fc25acefcabc066437d4b27550387954 *install/images/logo.png
2ba93e93e0fbdfeb91e22f6d3bf8b6ca *install/images/logo.svg 2ba93e93e0fbdfeb91e22f6d3bf8b6ca *install/images/logo.svg
@@ -1168,8 +1213,9 @@ fc25acefcabc066437d4b27550387954 *install/images/logo.png
a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php
249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php 249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php
d7d7fef7dc366413340be8ad3da41709 *install/include/install_var.php d7d7fef7dc366413340be8ad3da41709 *install/include/install_var.php
5c2f5c9042a9e66bc8f5af0b638cf1de *install/index.php dd4116d4f1d942f52548e4a27c65a19f *install/index.php
8eca1f167c0b805d9fda97804379a962 *install/language/zh-cn/lang.php 8eca1f167c0b805d9fda97804379a962 *install/language/zh-cn/lang.php
9df77036c7ebea501feaa23661852767 *install/update.php
5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php 5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php
66ee773a4c2e373da92f48f81930cf3f *misc/classes/init.php 66ee773a4c2e373da92f48f81930cf3f *misc/classes/init.php
f656adb0c1b2699a4d8c613f2b9dacab *misc/pichomeexport.php f656adb0c1b2699a4d8c613f2b9dacab *misc/pichomeexport.php
@@ -1184,7 +1230,6 @@ ff6abf5b6ce1f3256d2aad8fdd24f646 *misc/setunrun.php
d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm
89c90d955c3bfda0f63dce1449021924 *misc/upgrade.php 89c90d955c3bfda0f63dce1449021924 *misc/upgrade.php
170b9709fad7d1a8479d03c5c5913bae *misc.php 170b9709fad7d1a8479d03c5c5913bae *misc.php
6b24f900b7ee6c424f47304a9cf098de *pichome_release.zip
eb11382b6241b03f598530206c21e0a1 *short.php eb11382b6241b03f598530206c21e0a1 *short.php
a4167122758dd580e234395e98987bcb *static/bootstrap/css/bootstrap-slider.css a4167122758dd580e234395e98987bcb *static/bootstrap/css/bootstrap-slider.css
e5f6fb08f469dc836cb3609e23694b3a *static/bootstrap/css/bootstrap-theme.css e5f6fb08f469dc836cb3609e23694b3a *static/bootstrap/css/bootstrap-theme.css

View File

@@ -113,7 +113,7 @@ if($operation == 'getApp'){//获取当前用户应用
left join %t s on s.uid = u.uid and s.skey=%swhere u.uid =%d", left join %t s on s.uid = u.uid and s.skey=%swhere u.uid =%d",
array('user','user_setting','headerColor',$uid)); array('user','user_setting','headerColor',$uid));
if($udata['avatarstatus'] == 1){ if($udata['avatarstatus'] == 1){
$userData['icon'] = 'avatar.php?uid='.$udata['uid']; $userData['icon'] = 'avatar.php?uid='.$udata['uid'].'&random='.VERHASH;
}elseif($udata['svalue']){ }elseif($udata['svalue']){
$userData['firstword'] = strtoupper(new_strsubstr($udata['username'],1,'')); $userData['firstword'] = strtoupper(new_strsubstr($udata['username'],1,''));
$userData['headerColor'] = $udata['svalue']; $userData['headerColor'] = $udata['svalue'];

View File

@@ -29,7 +29,7 @@ if(file_exists(dirname(__FILE__).'/'.$avatar)) {
exit; exit;
} }
$size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle'; $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
$avatar_url = 'static/image/avatar/noavatar_'.$size.'.gif'; $avatar_url = 'data/avatar/noavatar_'.$size.'.gif';
} }
if(empty($random)) { if(empty($random)) {

View File

@@ -11,8 +11,8 @@ if(!defined('IN_OAOOA')) {
} }
if(!defined('CORE_VERSION')) { if(!defined('CORE_VERSION')) {
define('CORE_VERSION', 'beta1'); define('CORE_VERSION', 'beta2.0');
define('CORE_VERSION_LEVEL', 'Pichome'); define('CORE_VERSION_LEVEL', 'Pichome');
define('CORE_RELEASE', '20210820'); define('CORE_RELEASE', '20211110');
define('CORE_FIXBUG' , '01000000'); define('CORE_FIXBUG' , '20000000');
} }

View File

@@ -2,7 +2,7 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
gnore_user_abort(true); ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
$percachename = 'pichome_searchhot'; $percachename = 'pichome_searchhot';
$alldata = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid(); $alldata = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid();

View File

@@ -2,7 +2,7 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true); //ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
$appdata = DB::fetch_all("select * from %t where 1 ",array('pichome_vapp')); $appdata = DB::fetch_all("select * from %t where 1 ",array('pichome_vapp'));
foreach($appdata as $v){ foreach($appdata as $v){
@@ -11,7 +11,12 @@
//删除库 //删除库
C::t('#pichome#pichome_vapp')->delete_vapp_by_appid($v['appid']); C::t('#pichome#pichome_vapp')->delete_vapp_by_appid($v['appid']);
}else{ }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);
}
} }
} }

View File

@@ -54,13 +54,13 @@ function updatecache($cachename = '') {
try{ try{
@include_once DZZ_ROOT.'./dzz/'.$entrys[0].'/cache/cache_'.$entrys[1].'.php'; @include_once DZZ_ROOT.'./dzz/'.$entrys[0].'/cache/cache_'.$entrys[1].'.php';
if(function_exists('build_cache_'.$entrys[0].'_'.$entrys[1])) call_user_func('build_cache_'.$entrys[0].'_'.$entrys[1]); if(function_exists('build_cache_'.$entrys[0].'_'.$entrys[1])) call_user_func('build_cache_'.$entrys[0].'_'.$entrys[1]);
elseif(function_exists('build_cache_app_'.$entryr[1])) call_user_func('build_cache_app_'.$entrys[1]); elseif(function_exists('build_cache_app_'.$entrys[1])) call_user_func('build_cache_app_'.$entrys[1]);
}catch(Exception $e){continue;} }catch(Exception $e){continue;}
}elseif(count($entrys)==3){ }elseif(count($entrys)==3){
try{ try{
@include_once DZZ_ROOT.'./'.$entrys[0].'/'.$entrys[1].'/cache/cache_'.$entrys[2].'.php'; @include_once DZZ_ROOT.'./'.$entrys[0].'/'.$entrys[1].'/cache/cache_'.$entrys[2].'.php';
if(function_exists('build_cache_'.$entrys[1].'_'.$entrys[2])) call_user_func('build_cache_'.$entrys[1].'_'.$entrys[2]); if(function_exists('build_cache_'.$entrys[1].'_'.$entrys[2])) call_user_func('build_cache_'.$entrys[1].'_'.$entrys[2]);
elseif(function_exists('build_cache_app_'.$entryr[1])) call_user_func('build_cache_app_'.$entrys[1]); elseif(function_exists('build_cache_app_'.$entrys[1])) call_user_func('build_cache_app_'.$entrys[1]);
}catch(Exception $e){continue;} }catch(Exception $e){continue;}
} else {//插件缓存 } else {//插件缓存

View File

@@ -804,7 +804,7 @@ function avatar_block($uid=0,$headercolors=array(),$class="Topcarousel"){
} }
if(empty($user)) return ''; if(empty($user)) return '';
if($user['avatarstatus']){//用户已经上传头像 if($user['avatarstatus']){//用户已经上传头像
return '<img src="avatar.php?uid='.$user['uid'].'" class="img-circle special_avatar_class" title="'.$user['username'].'">'; return '<img src="avatar.php?uid='.$user['uid'].'&random='.VERHASH.'" class="img-circle special_avatar_class" title="'.$user['username'].'">';
}else{//没有上传头像,使用背景+首字母 }else{//没有上传头像,使用背景+首字母
if($uid){ if($uid){
if($headercolors[$uid]) $headerColor=$headercolors[$uid]; if($headercolors[$uid]) $headerColor=$headercolors[$uid];

0
data/template/index.htm Normal file
View File

View File

@@ -26,7 +26,7 @@
if (!file_exists($waterfilepath)) { if (!file_exists($waterfilepath)) {
$waterfilepath = htmlspecialchars; $waterfilepath = htmlspecialchars;
} }
include template('page/adminBasic'); include template('pc/page/adminBasic');
} }
} }
@@ -46,7 +46,7 @@
exit(json_encode(array('success' => true))); exit(json_encode(array('success' => true)));
} else { } else {
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png'; $waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
include template('page/adminPagesetting'); include template('pc/page/adminPagesetting');
} }
} elseif ($do == 'loginpage') {//登录页设置 } elseif ($do == 'loginpage') {//登录页设置
if (submitcheck('settingsubmit')) { if (submitcheck('settingsubmit')) {
@@ -71,7 +71,7 @@
updatesetting($setting, $settingnew); updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true))); exit(json_encode(array('success' => true)));
} else { } else {
include template('page/adminLoginpage'); include template('pc/page/adminLoginpage');
} }
} elseif ($do == 'fileterset') {//筛选项设置 } elseif ($do == 'fileterset') {//筛选项设置
@@ -91,7 +91,7 @@
}else{ }else{
$data = json_encode(array()); $data = json_encode(array());
} }
include template('page/adminFileterset'); include template('pc/page/adminFileterset');
} }
} }
function updatesetting($setting, $settingnew){ function updatesetting($setting, $settingnew){

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,7 @@
} }
closedir($dh); closedir($dh);
} }
//待导入库目录 //待导入库目录
$apppaths = []; $apppaths = [];
$lastfoldername = '.library'; $lastfoldername = '.library';
@@ -42,13 +42,13 @@
} }
} }
foreach(DB::fetch_all("select * from %t where 1",array('pichome_vapp')) as $v){ foreach(DB::fetch_all("select * from %t where 1",array('pichome_vapp')) as $v){
if(!in_array($eagledir.'/'.$v['path'],$apppaths)){ if(!in_array($eagledir.'/'.$v['path'],$apppaths)){
C::t('pichome_vapp')->delete_vapp_by_appid($v['appid']); C::t('pichome_vapp')->delete_vapp_by_appid($v['appid']);
} }
} }
//创建库 //创建库
foreach ($apppaths as $val) { foreach ($apppaths as $val) {
$jsonfile = $val . BS . 'metadata.json'; $jsonfile = $val . BS . 'metadata.json';
@@ -142,7 +142,7 @@
'personal' => 1, 'personal' => 1,
'dateline' => $mtime, 'dateline' => $mtime,
'path' => $path, 'path' => $path,
'filter'=>'a:12:{i:0;a:3:{s:3:"key";s:3:"tag";s:4:"text";s:6:"标签";s:7:"checked";s:1:"1";}i:1;a:3:{s:3:"key";s:5:"color";s:4:"text";s:6:"颜色";s:7:"checked";s:1:"1";}i:2;a:3:{s:3:"key";s:4:"link";s:4:"text";s:6:"链接";s:7:"checked";s:1:"1";}i:3;a:3:{s:3:"key";s:4:"desc";s:4:"text";s:6:"注释";s:7:"checked";s:1:"1";}i:4;a:3:{s:3:"key";s:8:"duration";s:4:"text";s:6:"时长";s:7:"checked";s:1:"1";}i:5;a:3:{s:3:"key";s:4:"size";s:4:"text";s:6:"尺寸";s:7:"checked";s:1:"1";}i:6;a:3:{s:3:"key";s:3:"ext";s:4:"text";s:6:"类型";s:7:"checked";s:1:"1";}i:7;a:3:{s:3:"key";s:5:"shape";s:4:"text";s:6:"形状";s:7:"checked";s:1:"1";}i:8;a:3:{s:3:"key";s:5:"grade";s:4:"text";s:6:"评分";s:7:"checked";s:1:"1";}i:9;a:3:{s:3:"key";s:5:"btime";s:4:"text";s:12:"添加时间";s:7:"checked";s:1:"1";}i:10;a:3:{s:3:"key";s:8:"dateline";s:4:"text";s:12:"修改日期";s:7:"checked";s:1:"1";}i:11;a:3:{s:3:"key";s:5:"mtime";s:4:"text";s:12:"创建日期";s:7:"checked";s:1:"1";}}' 'filter'=>'a:13:{i:0;a:3:{s:3:"key";s:8:"classify";s:4:"text";s:6:"分类";s:7:"checked";s:1:"1";}i:1;a:4:{s:3:"key";s:3:"tag";s:4:"text";s:6:"标签";s:7:"checked";s:1:"1";s:8:"showtype";s:1:"0";}i:2;a:3:{s:3:"key";s:5:"color";s:4:"text";s:6:"颜色";s:7:"checked";s:1:"1";}i:3;a:3:{s:3:"key";s:4:"link";s:4:"text";s:6:"链接";s:7:"checked";s:1:"1";}i:4;a:3:{s:3:"key";s:4:"desc";s:4:"text";s:6:"注释";s:7:"checked";s:1:"1";}i:5;a:3:{s:3:"key";s:8:"duration";s:4:"text";s:6:"时长";s:7:"checked";s:1:"1";}i:6;a:3:{s:3:"key";s:4:"size";s:4:"text";s:6:"尺寸";s:7:"checked";s:1:"1";}i:7;a:3:{s:3:"key";s:3:"ext";s:4:"text";s:6:"类型";s:7:"checked";s:1:"1";}i:8;a:3:{s:3:"key";s:5:"shape";s:4:"text";s:6:"形状";s:7:"checked";s:1:"1";}i:9;a:3:{s:3:"key";s:5:"grade";s:4:"text";s:6:"评分";s:7:"checked";s:1:"1";}i:10;a:3:{s:3:"key";s:5:"btime";s:4:"text";s:12:"添加时间";s:7:"checked";s:1:"1";}i:11;a:3:{s:3:"key";s:8:"dateline";s:4:"text";s:12:"修改日期";s:7:"checked";s:1:"1";}i:12;a:3:{s:3:"key";s:5:"mtime";s:4:"text";s:12:"创建日期";s:7:"checked";s:1:"1";}}'
]; ];
if($appid = C::t('pichome_vapp')->insert($appattr)){ if($appid = C::t('pichome_vapp')->insert($appattr)){

File diff suppressed because it is too large Load Diff

View File

@@ -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)
}
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -0,0 +1,133 @@
.el-aside {
background-color: var(--bg-header);
border-right: 1px solid var(--border-color-base);
}
.maxWidth {
width: 370px;
}
#center_title {
line-height: 55px;
border-bottom: 1px solid var(--border-color-base);
padding: 0 25px;
color: var(--content-textHover);
font-size: 16px;
}
.el-form-item__label,
.el-checkbox,
.el-radio {
color: var(--content-text);
}
.el-checkbox,
.el-radio {
margin-right: 16px;
margin-left: 0 !important;
}
.tipTxt{
color: var(--tip-color);
font-size: 12px;
line-height: 20px;
margin-top: 6px;
}
.tipTxt:hover {
color: var(--content-text);
}
.avatar-uploader .el-upload {
border: 1px dashed var(--border-color-base);
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
width: 150px;
height: 150px;
display: flex;
justify-content: center;
align-items: center;
}
.avatar-uploader .el-upload:hover {
border-color:var(--color-primary);
}
.avatar-uploader .avatar-uploader-icon {
font-size: 16px;
color: var(--content-text);
}
.avatar-uploader .el-image{
height: 150px;
width: 100%;
line-height: 150px;
}
.avatar-uploader .el-image img{
max-width: 100%;
max-height: 150px;
width: auto;
height: auto;
vertical-align: middle;
}
.avatar-uploader .el-progress{
position: absolute;
left: 0px;
top: 0px;
background: var(--bg-content);
z-index: 100;
}
.avatar {
max-width: 100%;
max-height: 100%;
display: inline-block;
}
.register-bg-bt{
background-color: transparent;
color: var(--content-text);
margin-left: 6px;
}
.el-checkbox,.el-radio{
min-width: 120px;
margin-bottom: 8px;
}
.theme-block{
margin-right: 12px;
float: left;
}
.theme-block .bg{
height: 40px;
width: 40px;
border: 1px solid var(--border-color-base);
border-radius: 4px;
position: relative;
overflow: hidden;
cursor: pointer;
}
.theme-block .bg.active{
border: 1px solid var(--color-primary);
}
.theme-block .bg .triangle{
position: absolute;
right: 0px;
bottom: 0px;
width: 0;
height: 0;
border-bottom: 30px solid var(--color-primary);
border-left: 30px solid transparent;
display: none;
}
.theme-block .bg .icon{
color: #FFFFFF;
font-size: 14px;
position: absolute;
bottom: 2px;
right: 2px;
display: none;
}
.theme-block .bg.active .triangle,
.theme-block .bg.active .icon{
display: block;
}

View File

@@ -0,0 +1,448 @@
*{
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body,
#dzzoffice,
.el-container,
.el-main,
.page-content{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
.el-header{
color: var(--header-text);
border-bottom: 1px solid var(--border-color-base);
}
.el-color-dropdown{
color: var(--header-text);
background-color: var(--bg-header);
border-bottom: 1px solid var(--border-color-base);
}
body{
background-color: var(--bg-content);
}
[v-cloak]{
display: none;
}
.el-progress-bar__outer{
background-color: var(--bg-input);
}
.el-dropdown-menu__item--divided{
border-color: var(--border-color-base);
}
.el-dropdown-menu__item--divided:before{
background-color: transparent;
}
.el-divider.el-divider--horizontal{
margin: 8px 0;
}
.el-input__inner,
.el-textarea__inner{
font-size: 14px;
color: var(--header-text);
background-color: var(--bg-input);
}
.el-input__inner:focus,.el-input__inner:hover,
.el-textarea__inner:focus,.el-textarea__inner:hover{
background-color: var(--bg-inputfocus);
border-color: var(--color-primary);
}
.el-table td, .el-table th.is-leaf{
border-color:var(--border-color-base);
}
.el-table--border::after, .el-table--group::after, .el-table::before{
background-color: var(--border-color-base);
}
.el-table th,.el-table tr{
background-color: var(--bg-content);
}
.el-table--striped .el-table__body tr.el-table__row--striped td{
background-color: var(--td-striped);
}
.el-table--enable-row-hover .el-table__body tr:hover>td{
background-color: var(--bg-content);
}
.el-table--striped .el-table__body tr.el-table__row--striped:hover>td{
background-color: var(--td-striped);
}
.el-dialog,
.el-popper{
background-color: var(--bg-poper);
color: var(--header-text);
border-color:var(--border-color-base);
}
.el-popper[x-placement^=bottom] .popper__arrow{
border-bottom-color:var(--border-color-base) !important;
}
.el-popper[x-placement^=bottom] .popper__arrow::after{
border-bottom-color:var(--bg-poper) !important;
}
.el-popper[x-placement^=left] .popper__arrow{
border-left-color:var(--border-color-base) !important;
}
.el-popper[x-placement^=left] .popper__arrow::after{
border-left-color:var(--bg-poper) !important;
}
.el-dialog .el-dialog__header{
text-align: center;
}
.el-dialog .el-dialog__header .el-dialog__title{
color: var(--header-text);
}
.el-form-item__label{
color: var(--content-textHover);
}
.el-tooltip__popper.is-dark{
color: #FFFFFF;
border: 1px solid var(--border-color-base);
background-color: var(--bg-tooltip);
}
.el-tooltip__popper .popper__arrow{
border-bottom-color:var(--border-color-base) !important;
}
.el-tooltip__popper .popper__arrow::after{
border-bottom-color:var(--bg-tooltip) !important;
}
.el-menu{
background-color: transparent;
border: 0;
}
.el-menu .el-menu-item,
.el-dropdown-menu__item{
color: var(--header-text);
}
.el-menu .el-menu-item:focus,.el-menu .el-menu-item:hover,.el-menu .el-menu-item.is-active,
.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover {
color: var(--header-active);
background-color: var(--bg-poperHover);
}
.el-dropdown,
.el-menu .el-menu-item{
color: var(--header-text);
}
.el-select-dropdown__item{
color: var(--header-text);
}
.el-select-dropdown__item.selected{
color: var(--header-active);
}
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover {
background-color: var(--bg-poperHover);
color: var(--header-active);
}
.el-checkbox,
.el-radio{
color: var(--header-text);
}
.el-checkbox .el-checkbox__inner,
.el-radio .el-radio__inner{
background-color: transparent;
border-color: var(--radio-line);
}
.el-checkbox .el-checkbox__input.is-focus .el-checkbox__inner,
.el-radio .el-radio__input.is-focus .el-radio__inner{
border-color: var(--radio-line);
}
.el-radio__input.is-checked+.el-radio__label,
.el-checkbox__input.is-checked+.el-checkbox__label{
color: var(--header-active);
}
.el-input .el-input__icon{
color: var(--header-text);
}
.el-date-table td.available:hover,
.el-picker-panel__icon-btn:hover,
.el-date-table td.today span{
color: var(--header-active);
}
.el-picker-panel__icon-btn,
.el-date-table td,
.el-date-table th{
color: var(--header-text);
}
.el-date-table td.in-range div,
.el-date-table td.in-range div:hover{
background-color: var(--color-primary);
}
.el-date-range-picker__content.is-left,
.el-date-table th{
border-color:var(--border-color-base) !important;
}
.el-tree,
.el-tree .el-tree-node .el-tree-node__expand-icon{
background: transparent;
color: var(--header-text);
}
.el-tree .el-tree-node .el-tree-node__expand-icon.is-leaf{
color: transparent !important;
}
.el-tree .el-tree-node:focus .el-tree-node__expand-icon{
color: var(--header-active);
}
.el-tree .el-tree-node__content:hover{
color: var(--header-active);
background-color: var(--bg-poperHover);
}
.el-tree .el-tree-node:focus>.el-tree-node__content{
background-color: var(--bg-poperHover);
}
.page-content{
display: flex;
flex-direction: column;
}
.page-component__scroll{
height: 100%;
flex: 1;
}
.page-component__scroll>.el-scrollbar__wrap {
overflow-x: hidden;
}
.Topcarousel{
border-radius: 50%;
text-align: center;
display: inline-block;
font-size: 18px;
width: 100%;
height: 100%;
color: #FFF;
}
#copyInput{
opacity: 0;
position: fixed;
bottom: 0;
left: 0;
}
.img-circle{
border-radius: 50%;
width: 100%;
height: 100%;
}
.hide{
display: none !important;
}
.PopoverNotPadding{
padding: 0;
}
.clearfix:after{
content: '.';
clear: both;
display: block;
height: 0;
visibility: hidden;
font-size: 0;
line-height: 0;
}
ul{
list-style: none;
}
.squareIcon{
height: 48px;
width: 48px;
background: var(--bg-color);
color: var(--text-color1);
padding: 0 8px;
border-radius: 6px;
text-align: center;
line-height: 48px;
display: inline-block;
margin-right: 8px;
flex: 0 0 auto;
}
.squareIcon i{
font-size: 28px;
}
.squareImg{
height: 48px;
width: 48px;
border-radius: 6px;
display: inline-block;
margin-right: 8px;
flex: 0 0 auto;
background: var(--g-colroimg);
display: flex;
align-items: center;
justify-content: center;
}
.squareImg img{
max-width: 100%;
max-height: 100%;
}
.dzz-dropdown-menu .dzz-dropdown-menu__item{
color: var(--header-text);
line-height: 35px;
padding: 0 5px;
border-radius: 4px;
position: relative;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dzz-dropdown-menu .dzz-dropdown-menu__item:hover{
color: var(--header-active);
background-color: var(--bg-poperHover);
}
.dzz-dropdown-menu .dzz-dropdown-menu__item.nothover:hover{
background-color: transparent;
}
#top_header {
height: 70px;
width: 100%;
padding: 4px 16px;
align-items: center;
display: flex;
}
#top_header .header-content .h-left .el-image {
width: 35px;
height: 35px;
}
#top_header .header-content .h-left .text {
font-size: 16px;
font-weight: 700;
margin-left: 10px;
color: var(--header-active);
}
#top_header .header-content {
display: flex;
height: 56px;
align-items: center;
width: 100%;
}
#top_header .header-content .h-left {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
}
#top_header .header-content .h-center {
flex: 1 1 auto;
height: 100%;
padding: 0 30px;
display: flex;
align-items: center;
}
#top_header .header-content .h-right #dzz_avatar_img {
cursor: pointer;
width: 35px;
height: 35px;
line-height: 35px;
margin-left: 5px;
}
.el-empty{
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
text-align: center;
box-sizing: border-box;
padding: 40px 0;
}
.el-empty__image {
width: 160px;
}
.el-empty__image img{
user-select: none;
width: 100%;
height: 100%;
vertical-align: top;
object-fit: contain;
}
.el-empty__description {
margin-top: 20px;
color: var(--content-textHover);
}
.aboutPichome{
padding: 0;
width: 478px;
}
.aboutPichome .el-message-box__header,
.aboutPichome .el-message-box__btns{
display: none;
}
.aboutPichome .aboutlogo{
text-align: center;
line-height: 0;
padding-top: 40px;
}
.aboutPichome .aboutmessage{
padding: 65px 40px;
font-size: 19px;
padding-bottom: 15px;
}
.aboutPichome .aboutmessage .aboutlist{
margin-bottom: 20px;
overflow: hidden;
}
.aboutPichome a{
text-decoration: none;
}
.aboutPichome .aboutmessage .aboutlist .title{
float: left;
width: 95px;
}
.aboutPichome .aboutmessage .aboutlist .mes{
float: left;
width: calc(100% - 95px);
}
.aboutPichome .aboutmessage .aboutlist .update{
font-size: 12px;
}
#systemNotice .panel-heading {
border-radius: 0;
background: var(--bg-header);
color: var(--header-text);
padding: 10px 15px;
}
#systemNotice .panel-heading .close{
float: right;
border: 0;
font-size: 21px;
color: var(--header-text);
}
#systemNotice .panel-body {
background: var(--bg-input);
color: var(--header-text);
padding: 10px 15px !important;
}
#systemNotice .panel-body img{
max-height: 30px;
vertical-align: bottom;
margin-right: 10px;
}
#systemNotice .panel-body a{
color: var(--header-text);
text-decoration: none;
}

View File

@@ -0,0 +1,354 @@
.el-header,.el-main{
background-color: var(--bg-content);
}
#top_header .header-content .h-right .r-option {
display: flex;
align-items: center;
height: 40px;
}
#top_header .header-content .h-right .right-block {
float: left;
font-size: 24px;
padding: 8px;
cursor: pointer;
border-radius: 50%;
width: 40px;
height: 40px;
margin-right: 5px;
color: var(--header-icon);
}
#top_header .header-content .h-right .right-block:hover {
background: var(--header-textHover);
color: var(--header-iconHover);
}
#top_header .header-content .h-right .right-block i {
vertical-align: top;
}
#top_header .header-content .h-center .imgoperation {
text-align: center;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
}
#top_header .header-content .h-center .imgoperation .proportion{
width: 140px;
}
#top_header .header-content .h-center .imgoperation .text{
display: inline-block;
cursor: default;
margin-left: 10px;
}
#top_header .header-content .h-center .imgoperation .text:hover{
color: var(--header-active);
}
#top_header .header-content .h-center .imgoperation .text .icon{
font-size: 18px;
vertical-align: middle;
font-weight: 700;
}
.carousel__arrow-box{
display: inline-block;
width: 52px;
margin-left: 10px;
}
.carousel__arrow-box .carousel__arrow{
cursor: pointer;
float: left;
margin-left: 5px;
}
.carousel__arrow-box .carousel__arrow:hover{
color: var(--header-active);
}
.carousel__arrow-box .carousel__arrow .icon{
font-size: 18px;
font-weight: 700;
vertical-align: middle;
}
.proportionnum-box .el-dropdown-menu__item{
line-height: 30px;
font-size: 12px;
}
.el-tooltip__popper.color-top {
color: var(--content-text);
background: var(--bg-content);
border: 1px solid var(--border-color-base);
}
.el-tooltip__popper.color-top .popper__arrow {
border-top-color: var(--border-color-base) !important;
}
.el-tooltip__popper.color-top .popper__arrow::after {
border-top-color: var(--bg-tooltip) !important;
}
.el-header {
border-bottom: 0;
}
.el-scrollbar__view{
height: 100%;
}
.el-slider__button-wrapper.grabbing:hover,
.el-slider__button-wrapper.grabbing,
.el-slider__button-wrapper.grabbing .el-slider__button{
cursor: grabbing !important;
}
.details-top {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
padding: 0 20px;
}
.details-maincontainer{
height: 100%;
}
.floating-layer {
width: 100%;
height: 100%;
position: relative;
padding-right: 360px;
padding-bottom: 8px;
}
.details-top .page-component__scroll .is-horizontal {
display: none;
}
#ImgScroll.move{
cursor: grab;
}
#ImgScroll.move.activemove{
cursor: grabbing;
}
#ImgScroll .is-horizontal {
display: block;
}
#ImgScroll .el-scrollbar__view {
position: relative;
text-align: center;
/* box-sizing: content-box; */
font-size: 0;
width: 100%;
height: 100%;
}
.information-box {
color: var(--content-text);
}
.floating-layer .picture-box {
height: 100%;
position: relative;
width: 100%;
}
.floating-layer.HideInformation{
padding-right: 0px;
}
.floating-layer .picture-box .image-viewer__img {
display: inline-block;
vertical-align: middle;
}
.floating-layer .picture-box .image-viewer__img.max {
max-width: 100%;
max-height: 100%;
}
.floating-layer .picture-box .image-viewer__img.opacity{
display: none;
}
.floating-layer .picture-box .image-viewer__img.thumbnail{
}
.floating-layer .information-box {
position: absolute;
height: 100%;
width: 360px;
padding-left: 20px;
right: 0;
top: 0;
padding-bottom: 8px;
}
.floating-layer.HideInformation .information-box {
display: none;
}
.floating-layer .information-box .el-divider {
margin: 0;
}
.floating-layer .information-box .title {
font-size: 18px;
color: var(--content-textHover);
font-weight: 700;
display: -webkit-box;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
max-height: 48px;
margin-bottom: 16px;
}
.floating-layer .information-box .operation {
padding-bottom: 16px;
margin-left: -4px;
display: flex;
}
.floating-layer .information-box .operation .circular {
color: var(--content-text);
font-size: 17px;
font-weight: 700;
text-decoration: none;
float: left;
width: 45px;
margin: 0 4px;
text-align: center;
line-height: 43px;
cursor: pointer;
background: var(--bg-header);
border: 1px solid var(--border-color-base);
border-radius: 50%;
}
.floating-layer .information-box .operation .circular.bg {
flex: auto;
border-radius: 18px;
}
.floating-layer .information-box .operation .circular:hover {
color: var(--content-textHover);
}
.floating-layer .information-box .message .color {
margin: 0 -3px;
display: flex;
}
.floating-layer .information-box .message .color>li {
height: 28px;
float: left;
padding: 0 3px 6px;
flex: 1;
max-width: 90px;
cursor: pointer;
}
.floating-layer .information-box .message .color>li.opacity {
opacity: 0.3;
}
.floating-layer .information-box .message .color>li .el-dropdown {
width: 100%;
height: 100%;
}
.floating-layer .information-box .message .color>li .bg {
height: 100%;
width: 100%;
border-radius: 4px;
border: 1px solid var(--border-color-base);
}
.floating-layer .information-box .message .label {
/* padding-bottom: 16px; */
}
.floating-layer .information-box .message .label .el-tag {
min-width: 45px;
text-align: center;
margin-bottom: 5px;
float: left;
margin-right: 5px;
background: var(--bg-header);
border: 1px solid var(--border-color-base);
color: var(--content-text);
cursor: pointer;
}
.floating-layer .information-box .message .notes {
font-size: 14px;
/* padding-bottom: 16px; */
line-height: 22px;
word-wrap: break-word;
}
.floating-layer .information-box .message .thesis-wrap {
padding-bottom: 16px;
}
.floating-layer .information-box .message .thesis-wrap .tip-title {
font-size: 16px;
font-weight: 700;
margin-bottom: 6px;
color: var(--content-textHover);
}
.floating-layer .information-box .message .link {
position: relative;
font-size: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 35px;
cursor: pointer;
}
.floating-layer .information-box .message .link:hover {
color: var(--content-textHover);
}
.floating-layer .information-box .message .link i {
position: absolute;
right: 0;
top: 0;
font-size: 25px;
width: 25px;
height: 25px;
bottom: 0;
margin-top: auto;
margin-bottom: auto;
cursor: pointer;
}
.floating-layer .information-box .information {
padding: 18px 0;
}
.floating-layer .information-box .information .tip {
font-size: 18px;
font-weight: 700;
padding-bottom: 16px;
color: var(--content-textHover);
}
.floating-layer .information-box .information .field {
margin-bottom: 6px;
}
.floating-layer .information-box .information .field .name {
font-size: 14px;
}
.floating-layer .information-box .information .field .record {
font-size: 14px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: var(--content-textMessage);
text-align: right;
}
.floating-layer .information-box .information .field .record .star {
color: var(--stars);
}
.floating-layer .information-box .information .field .record .star.active {
color: var(--starsActive);
}

1403
dzz/pichome/css/pc/index.css Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,21 @@
@font-face {
font-family: "iconfont"; /* Project id */
src: url('iconfont.ttf?t=1631936247363') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-zuoyoufanzhuan_huaban1:before {
content: "\e65f";
}
.icon-chuizhifanzhuan_huaban1:before {
content: "\e660";
}

View File

@@ -36,7 +36,7 @@
--radio-line:#797979;/* radio边框颜色 */ --radio-line:#797979;/* radio边框颜色 */
--tagbg:#454545;/* 标签左侧颜色 */ --tagbg:#454545;/* 标签左侧颜色 */
--stars:#E1AF22;/* 评分颜色 */ --stars:#515151;/* 选中评分颜色 */
--starsActive:#515151;/* 选中评分颜色 */ --starsActive:#E1AF22;/* 评分颜色 */
} }

View File

@@ -1,33 +1,38 @@
<?php <?php
/* /*
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd * @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
* @license https://www.oaooa.com/licenses/ * @license https://www.oaooa.com/licenses/
* *
* @link https://www.oaooa.com * @link https://www.oaooa.com
* @author zyx(zyx@oaooa.com) * @author zyx(zyx@oaooa.com)
*/ */
//此页的调用地址 index.php?mod=test;
//同目录的其他php文件调用 index.php?mod=test&op=test1;
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用 exit('Access Denied');
exit('Access Denied'); }
} $overt = getglobal('setting/overt');
$overt = getglobal('setting/overt'); if (!$overt) {
if (!$overt) { Hook::listen('check_login');//检查是否登录,未登录跳转到登录界面
Hook::listen('check_login');//检查是否登录,未登录跳转到登录界面 }
} $operation = isset($_GET['operation']) ? trim($_GET['operation']) : '';
$opentype = isset($_GET['opentype']) ? trim($_GET['opentype']) : '';
$operation = isset($_GET['operation']) ? trim($_GET['operation']) : ''; if($operation == 'fetch'){
if($operation == 'fetch'){ $rid = isset($_GET['rid']) ? trim($_GET['rid']) : '';
$rid = isset($_GET['rid']) ? trim($_GET['rid']) : ''; if (!$rid) {
if (!$rid) { exit(json_encode(array('error' => false)));
exit(json_encode(array('error' => false))); }
} $resourcesdata = C::t('pichome_resources')->fetch_by_rid($rid);
$resourcesdata = C::t('pichome_resources')->fetch_by_rid($rid); exit(json_encode(array('resourcesdata' => $resourcesdata)));
exit(json_encode(array('resourcesdata' => $resourcesdata)));
}else{
}else{ $theme = GetThemeColor();
$theme = GetThemeColor(); $ismobile = helper_browser::ismobile();
include template('page/details'); if ($ismobile) {
} include template('mobile/page/details');
} else {
include template('pc/page/details');
}
}

View File

@@ -1,16 +1,39 @@
<?php <?php
ignore_user_abort(true);
if (!defined('IN_OAOOA')) { if (!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0);
@set_time_limit(0); @set_time_limit(0);
ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0); @ini_set('max_execution_time', 0);
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0; $appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
$processname = 'DZZ_EXPORTFILE_LOCK_'.$appid;
//dzz_process::unlock($processname);
$locked = true;
if (!dzz_process::islocked($processname, 60*5)) {
$locked=false;
}
if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
}
// var_dump($locked);die;
$force = isset($_GET['force']) ? intval($_GET['force']):0; $force = isset($_GET['force']) ? intval($_GET['force']):0;
$data = C::t('pichome_vapp')->fetch($appid); $data = C::t('pichome_vapp')->fetch($appid);
if(!$data) exit(json_encode(array('error'=>'no data'))); if(!$data) exit(json_encode(array('error'=>'no data')));
include_once dzz_libfile('eagleexport'); if($data['type'] == 0 && $data['state'] == 1){
$eagleexport = new eagleexport($data); include_once dzz_libfile('eagleexport');
$return = $eagleexport->execExport($force); $eagleexport = new eagleexport($data);
$return = $eagleexport->execExport($force);
}else{
include_once dzz_libfile('oaooaexport');
$oaooaexport = new oaooaexport($data);
//导入标签分类数据
$oaooaexport->exportTaggroup();
//执行导入文件
$return = $oaooaexport->initExport();
}
dzz_process::unlock($processname);
exit('success');

View File

@@ -0,0 +1,30 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@ignore_user_abort(true);
@set_time_limit(0);
@ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0);
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
$processname = 'DZZ_EXPORTCHECKFILE_LOCK_'.$appid;
dzz_process::unlock($processname);
$locked = true;
if (!dzz_process::islocked($processname, 60*5)) {
$locked=false;
}
if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
}
$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);

View File

@@ -120,7 +120,8 @@ if($operation == 'filelist'){
if(!empty($tagval)){ if(!empty($tagval)){
$tagdata=[]; $tagdata=[];
if($appid){ 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']); $tagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid']),'cid'=>$tv['cid']);
} }
}else{ }else{
@@ -128,11 +129,7 @@ if($operation == 'filelist'){
$tagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid'])); $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){ foreach($tagval as $v){
$tagwherearr[] = " find_in_set(%d,ra.tag)"; $tagwherearr[] = " find_in_set(%d,ra.tag)";
@@ -239,15 +236,7 @@ if($operation == 'filelist'){
if (isset($_GET['shape'])) { if (isset($_GET['shape'])) {
$shape = trim($_GET['shape']); $shape = trim($_GET['shape']);
$shapes = explode(',', $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 = []; $shapewherearr = [];
foreach ($shapes as $v) { foreach ($shapes as $v) {
switch ($v) { switch ($v) {
@@ -456,6 +445,7 @@ if($operation == 'filelist'){
$orderarr[] = ' r.width*r.height '.$asc; $orderarr[] = ' r.width*r.height '.$asc;
break; break;
default: default:
$orderarr[] = ' r.dateline '.$asc; $orderarr[] = ' r.dateline '.$asc;
} }
$ordersql = implode(',',$orderarr); $ordersql = implode(',',$orderarr);

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -11,6 +11,7 @@
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用 if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied'); exit('Access Denied');
} }
$ismobile = helper_browser::ismobile();
$overt = getglobal('setting/overt'); $overt = getglobal('setting/overt');
if(!$overt && !$overt = C::t('setting')->fetch('overt')){ if(!$overt && !$overt = C::t('setting')->fetch('overt')){
@@ -55,4 +56,9 @@
} }
$pagesetting = json_encode($pagesetting); $pagesetting = json_encode($pagesetting);
include template('page/index'); if ($ismobile) {
include template('mobile/page/index');
} else {
include template('pc/page/index');
}

View File

@@ -0,0 +1,19 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@set_time_limit(0);
@ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0);
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
$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){
include_once dzz_libfile('eagleexport');
$eagleexport = new eagleexport($data);
$return = $eagleexport->initExport();
}
exit(json_encode(array('success'=>true)));

View File

@@ -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 <mst@rtp.ch>
* @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('<div class="pinch-zoom-container"></div>');
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();

View File

@@ -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;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,256 @@
// (function(){
var isVoice = false;
// $(document).on('mouseenter','.bgimage-operation',function(){
// $(this).addClass('show');
// var status = $(this).data('status');
// var type = $(this).data('type');
// if(status){
// $(this).data('status',false);
// if(type == 'video'){
// handleVideo($(this));
// }
// if(type == 'audio'){
// handleMusic($(this));
// }
// }
// });
// $(document).on('mouseleave','.bgimage-operation',function(){
// var self = $(this);
// self.removeClass('show');
// });
function handleMouseenter(tage){
var find = tage.find('.bgimage-operation');
find.addClass('show');
var status = find.data('status');
var type = find.data('type');
if(status){
find.data('status',false);
if(type == 'video'){
handleVideo(find);
}
if(type == 'audio'){
handleMusic(find);
}
}
};
function handleMouseleave(tage){
tage.find('.bgimage-operation').removeClass('show');
};
function handleVideo(box){
var str = {
loading:false,
finish:false,
};
if(str.loading){
return false;
}
var realpath = box.data('playurl');
str.loading = true;
var html_box = jQuery('<div class="movies-box"><div class="html-loading"><div class="el-loading-mask" style=""><div class="el-loading-spinner"><svg viewBox="25 25 50 50" class="circular"><circle cx="50" cy="50" r="20" fill="none" class="path"></circle></svg></div></div></div></div>');
box.append(html_box);
var html_video = jQuery('<video src="'+realpath+'" class="video"></video>');
var html_progress = jQuery('<div class="progress"><div class="progress-bar" style="width: 0%;"></div></div>');
var html_time = jQuery('<div class="time"></div>');
var html_voice = jQuery('<div class="circulars voice no"><i class="ri-volume-up-line yes"></i><i class="ri-volume-mute-line no"></i></div>');
var video = html_video.get(0);
video.muted = true;
html_box.append(html_video);
video.addEventListener('canplay', function () { //加载数据
if(!str.finish){
html_box.find('.html-loading').remove();
html_box.append(html_voice);
html_box.append(html_progress);
html_box.append(html_time);
if(video.paused){
video.play();
}
str.finish = true;
}
});
video.addEventListener('timeupdate',function(){
var timeDisplay = video.currentTime;
var progre = parseInt(parseInt(timeDisplay)/parseInt(video.duration) * 100, 10);
box.find('.progress-bar').css('width',progre+'%');
var time = secondToDate(timeDisplay,video.duration);
box.find('.time').text(time);
});
html_voice.click(function(){
if(str.finish){
if(video.muted){
jQuery(this).addClass('yes').removeClass('no');
video.muted = false;
}else{
jQuery(this).addClass('no').removeClass('yes');
video.muted = true;
}
}
return false;
});
html_box.bind('mouseenter',function(e){
if(str.finish){
video.currentTime = 0;
video.play();
}
});
var moveStr = {
time:true,
isMove:false
};
html_box.bind('mousemove',function(e){
var item = jQuery(this);
if(moveStr.time){
moveStr.time = false;
setTimeout(function(){
moveStr.isMove = true;
},600);
}
if(video && moveStr.isMove){
var parentOffset = item.offset();
var relX = e.clientX - parentOffset.left;
if(relX > 0 && relX <= item.width()){
var progre = parseInt(parseInt(relX)/item.width() * 100, 10);
item.find('.progress-bar').css('width',progre+'%');
var videoStime = parseInt(progre*(parseInt(video.duration) / 100));
video.currentTime = videoStime;
var time = secondToDate(videoStime,video.duration);
item.find('.time').text(time);
if(video.paused){
video.play();
}
}
}
});
html_box.bind('mouseleave',function(){
var item = jQuery(this);
video.pause();
moveStr = {
time:true,
isMove:false
};
item.find('.progress-bar').css('width','0%');
});
};
function handleMusic(box){
var str = {
loading:false,
finish:false,
fmousemove:0,
isplay:false,
};
if(str.loading){
return false;
}
str.loading = true;
var html_box = jQuery('<div class="movies-box"><div class="html-loading"><div class="el-loading-mask" style=""><div class="el-loading-spinner"><svg viewBox="25 25 50 50" class="circular"><circle cx="50" cy="50" r="20" fill="none" class="path"></circle></svg></div></div></div></div>');
var html_time = jQuery('<div class="time"></div>');
var html_line = jQuery('<div class="line"></div>');
var html_voice = jQuery('<div class="circulars voice no"><i class="ri-pause-line yes"></i><i class="ri-play-line no"></i></div>');
box.append(html_box);
var wavesurfer = WaveSurfer.create({
container: html_box.get(0),
waveColor: '#888888',
progressColor: 'purple',
hideScrollbar:true,
height:box.closest('.each-piece').find('.el-image__inner').height(),
});
wavesurfer.load(box.data('playurl'));
wavesurfer.on("ready", function(){
if(!str.finish){
html_box.find('.html-loading').remove();
html_box.append(html_voice);
html_box.append(html_time);
html_box.append(html_line);
var timeDisplay = parseInt(wavesurfer.getCurrentTime());
var count = parseInt(wavesurfer.getDuration());
var time = secondToDate(timeDisplay,count);
html_box.find('.time').text(time);
if(str.isplay && isVoice){
wavesurfer.play();
}
str.finish = true;
}
});
wavesurfer.on("audioprocess", function(){
isVoice = true;
var timeDisplay = parseInt(wavesurfer.getCurrentTime());
var count = parseInt(wavesurfer.getDuration());
var time = secondToDate(timeDisplay,count);
html_box.find('.time').text(time);
});
wavesurfer.on("seek", function(){
if(str.isplay){
wavesurfer.play();
}
});
wavesurfer.on("play", function(){
html_voice.removeClass('no').addClass('yes');
});
wavesurfer.on("pause", function(){
html_voice.removeClass('yes').addClass('no');
});
html_voice.click(function(){
if(str.isplay && str.finish){
wavesurfer.playPause();
}
});
html_box.bind('mouseenter',function(e){
str.isplay = true;
if(str.finish && isVoice){
var imgHeight = $(this).closest('.each-piece').find('.el-image__inner').height()
wavesurfer.setHeight(imgHeight);
wavesurfer.play(0);
}
});
html_box.bind('mousemove',function(e){
if(!str.finish){
return false;
}
var clientX = e.clientX;
var parentOffset = jQuery(this).offset();
var relX = clientX - (parentOffset.left+1);
if(relX<=0){
relX = 0;
}
if(relX>=jQuery(this).width()){
relX = jQuery(this).width();
}
str.fmousemove = relX;
// if(_filemanage.view == 2){
// jQuery(this).find('.line').css('left',parseInt(relX));
// }else{
var WaveHeight = jQuery(this).find('wave').height();
jQuery(this).find('.line').css({
left:parseInt(relX),
height:WaveHeight
});
// }
});
html_box.bind('mouseleave',function(){
str.isplay = false;
if(str.finish){
wavesurfer.pause();
}
});
};
function secondToDate(result,count){
var h = Math.floor(result / 3600) < 10 ? '0'+Math.floor(result / 3600) : Math.floor(result / 3600);
var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
if(count >= 3600){
return result = h + ":" + m + ":" + s;
}else if(count >= 60){
return result = m + ":" + s;
}else{
return result = s;
}
};
// })();

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,186 @@
var headerWatch = {
filterText(val){
var self = this;
self.$refs.tree[0].filter(val);
},
ParamsTagData(val){
var fstr = {};
var str1 = {};
if(this.GetParamsInit.tag.length){
for(var x in this.GetParamsInit.tag){
var p = this.GetParamsInit.tag[x];
if(fstr[p.cid]){
fstr[p.cid].text.push(p.tagname);
fstr[p.cid].value.push(p.tid);
}else{
fstr[p.cid] = {
search:'',
text:[p.tagname],
data:[],
value:[p.tid],
page:1,
finish:false,
loading:false
}
}
}
}
for(var i in val){
if(fstr[val[i].cid]){
fstr[val[i].cid].text = fstr[val[i].cid].text.join(',');
str1[val[i].cid] = fstr[val[i].cid];
}else{
str1[val[i].cid] = {
search:'',
text:'',
data:[],
page:1,
finish:false,
loading:false,
value:[],
};
}
}
this.modelParamsTag = str1;
},
GetParamsInit:{
handler(item){
if(item){
for(var i in item){
if(i == 'tag' && item[i]){
var newArrtid = [];
var newArrtxt = [];
var classs = {};
for(var t in item[i]){
newArrtid.push(item[i][t].tid);
newArrtxt.push(item[i][t].tagname);
}
var tagfid = localStorage.getItem("tagfid");
if(tagfid){
this.tagData.checkedsFid = tagfid;
}
this.tagData.checkedsId = newArrtid;
this.tagData.checkedstxt = newArrtxt.join(',');
}
}
}
},
deep:true
},
'link.val':debounce(function(val){//链接输入
VuexStore.commit('SetParams',{key:'linkval',val:val});
if(!this.FirstLoad&&val){
VuexStore.dispatch('handleHash');
}
},800),
'desc.val':debounce(function(val){//注释输入
VuexStore.commit('SetParams',{key:'descval',val:val});
if(!this.FirstLoad&&val){
VuexStore.dispatch('handleHash');
}
},800),
'duration.start':debounce(function(val){//时长输入
if(val || this.duration.end){
var str = val+'_'+this.duration.end;
VuexStore.commit('SetParams',{key:'duration',val:str});
VuexStore.commit('SetParams',{key:'dunit',val:this.duration.dunit});
if(!this.FirstLoad){
VuexStore.dispatch('handleHash');
}
}else{
if(!this.FirstLoad){
this.handleClickDelete('duration');
}
}
},800),
'duration.end':debounce(function(val){//时长输入
if(val || this.duration.start){
var str = this.duration.start+'_'+val;
VuexStore.commit('SetParams',{key:'duration',val:str});
VuexStore.commit('SetParams',{key:'dunit',val:this.duration.dunit});
if(!this.FirstLoad){
VuexStore.dispatch('handleHash');
}
}else{
if(!this.FirstLoad){
this.handleClickDelete('duration');
}
}
},800),
'wsize.start':debounce(function(val){//尺寸宽
if(val || this.wsize.end){
var str = val+'_'+this.wsize.end;
VuexStore.commit('SetParams',{key:'wsize',val:str});
}else{
VuexStore.commit('SetParams',{key:'wsize',val:''});
}
if(!this.FirstLoad){
VuexStore.dispatch('handleHash');
}
},800),
'wsize.end':debounce(function(val){//尺寸宽
if(val || this.wsize.start){
var str = this.wsize.start+'_'+val;
VuexStore.commit('SetParams',{key:'wsize',val:str});
}else{
VuexStore.commit('SetParams',{key:'wsize',val:''});
}
if(!this.FirstLoad){
VuexStore.dispatch('handleHash');
}
},800),
'hsize.start':debounce(function(val){//尺寸高
if(val || this.hsize.end){
var str = val+'_'+this.hsize.end;
VuexStore.commit('SetParams',{key:'hsize',val:str});
}else{
VuexStore.commit('SetParams',{key:'hsize',val:''});
}
if(!this.FirstLoad){
VuexStore.dispatch('handleHash');
}
},800),
'hsize.end':debounce(function(val){//尺寸高
if(val || this.hsize.start){
var str = this.hsize.start+'_'+val;
VuexStore.commit('SetParams',{key:'hsize',val:str});
}else{
VuexStore.commit('SetParams',{key:'hsize',val:''});
}
if(!this.FirstLoad){
VuexStore.dispatch('handleHash');
}
},800),
'GetParams.shape':{
handler(val){
if(val){
var data = val.split(',');
if(data.indexOf('自定义')>-1){
data.splice(data.indexOf('自定义'),1);
this.shape.txt = data.join(',');
}else{
this.shape.txt = val;
}
}else{
this.shape.txt = '';
}
},
deep:true,
},
'shape.width':debounce(function(val){
this.handleWatchShape();
},800),
'shape.height':debounce(function(val){
this.handleWatchShape();
},800),
GetclassifyInit(val){
this.classify.text = val;
}
}

View File

@@ -0,0 +1,8 @@
/*!
* jQuery Mousewheel 3.1.13
*
* Copyright 2015 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -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){
// arr[rowElem]['pbottom'] = self.RowgridParam.maxNewtop+maxNewHeight+self.RowgridParam.OtherHeight;
arr[rowElem]['pbottom'] += maxNewHeight-height;
arr[rowElem]['pheight'] = maxNewHeight;
}
}
self.RowgridParam.maxNewtop += maxNewHeight + Margin +self.RowgridParam.OtherHeight
self.RowgridParam.rowElems = [];
self.RowgridParam.rowWidth = 0;
self.RowgridParam.maxNewLeft = 0;
}
}
var surplusheight = 0;
self.SurplusImgdatas = {};
if (self.RowgridParam.rowElems.length) {
var maxNewHeight = 0;
for(var f in self.RowgridParam.rowElems){
var rowElem = self.RowgridParam.rowElems[f];
var rowElemWidth = arr[rowElem].pwidth;//获取一行每个都宽度
var rowElemHeight = arr[rowElem].pheight;//获取一行每个都宽度
arr[rowElem]['pwidth'] = rowElemWidth;
arr[rowElem]['pheight'] = rowElemHeight;
arr[rowElem]['ptop'] = self.RowgridParam.maxNewtop;
arr[rowElem]['pbottom'] = self.RowgridParam.maxNewtop+rowElemHeight+self.RowgridParam.OtherHeight;
if (rowElemHeight > 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<maxNewHeight){
arr[rowElem]['pbottom'] += maxNewHeight-height;
arr[rowElem]['pheight'] = maxNewHeight;
}
self.SurplusImgdatas[rowElem] = arr[rowElem];
}
surplusheight = maxNewHeight+self.RowgridParam.OtherHeight+Margin;
self.RowgridParam.maxNewLeft = 0;
}
$('.rowGrids-box').height(self.RowgridParam.maxNewtop+40+surplusheight);
if(self.GetScrollAppend){
for(var st in arr){
if(self.StoreImgdatas[st]){
self.StoreImgdatas[st] = JSON.parse(JSON.stringify(arr[st]));
delete arr[st];
}
}
var StoreImgdatas = JSON.parse(JSON.stringify(self.StoreImgdatas));
var result = $.extend(StoreImgdatas, arr);
self.StoreImgdatas = result;
}else{
self.StoreImgdatas = arr;
}
self.ImgRowGridhandleScroll();
},
ImgRowGridhandleScroll(){
var self = this;
var H = jQuery('.body_scroll>.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<item.pbottom) {
self.NewImgdatas[item.rid] = item;
}
}
},
};

View File

@@ -0,0 +1,106 @@
var ImgWaterfall = {
WaterfallInit(type){
var self = this;
if(type == 'append'){
self.WaterfallImgCompute(type);
}else if(type == 'refresh'){
self.WaterfallParam.imgArr = [];
self.WaterfallImgCompute();
}else{
self.WaterfallImgCompute();
}
},
WaterfallImgCompute(type){
var self = this;
if(type == 'append'){
// self.WaterfallParam.perpage += self.GetimgParameter.perpage;
}else{
self.WaterfallParam.perpage = 0;
var boxWidth = $('#waterfallCenter').width();
self.WaterfallParam.columns = parseInt(boxWidth/self.WaterfallParam.imgWidth);
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.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 && S<item.pbottom) {
self.NewImgdatas[item.rid] = item;
}
}
},
};

View File

@@ -21,6 +21,11 @@
$data['path'] = urlencode($data['path']); $data['path'] = urlencode($data['path']);
$data['filter'] = unserialize($data['filter']); $data['filter'] = unserialize($data['filter']);
$catdata = C::t('pichome_taggroup')->fetch_by_appid($appid); $catdata = C::t('pichome_taggroup')->fetch_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))); exit(json_encode(array('success' => true, 'data' => $data,'catdata'=>$catdata)));
}else{ }else{
exit(json_encode(array('error' => true))); exit(json_encode(array('error' => true)));
@@ -80,6 +85,6 @@
} }
else{ else{
$theme = GetThemeColor(); $theme = GetThemeColor();
include template('page/library'); include template('pc/page/library');
} }

View File

@@ -26,6 +26,11 @@ foreach($resourcesdata['foldernames'] as $fval){
$foldernames[] = $fval; $foldernames[] = $fval;
} }
$resourcesdata['foldernames'] = json_encode($foldernames); $resourcesdata['foldernames'] = json_encode($foldernames);
$theme = GetThemeColor(); $theme = GetThemeColor();
include template('page/share'); $ismobile = helper_browser::ismobile();
if (($ismobile)) {
include template('mobile/page/share');
} else {
include template('pc/page/share');
}

View File

@@ -0,0 +1,605 @@
<script type="text/javascript">
var CommonJs = {
CommonLibrary(){
if(this.ParamLibrary.data.length==0){
return false;
}
this.ParamLibrary.fdata = [{
text: '全部库',
value: '',
download:0,
share:0,
}];
for(var i in this.ParamLibrary.data){
var item = this.ParamLibrary.data[i];
var str = {
text: item['appname'],
value: item['appid'],
download:parseInt(item['download']),
share:parseInt(item['share']),
};
this.ParamLibrary.fdata.push(str);
}
if(this.ParamLibrary.fdata.length == 1){
var data = this.ParamLibrary.fdata[0];
this.ParamLibrary.activeId = data['appid'];
this.ParamLibrary.activeTxt = data['appname'];
}
this.CommonhandleHash('refresh');
},
CommonhandleHash(isreload){
var self = this;
if(isreload=="refresh"){
var param = (location.hash || "").replace(/^\?/,'').split("&");
for(var i=0; i<param.length; i++){
var item = param[i].split("=");
if(item.length == 2){
if(i==0){
item[0]=item[0].replace("#","");
}
var name = item[0];
var value = item[1];
var isget = true;
// if(self.ParamScreen.data.length == 0 && self.ParamScreen.dataTypes.indexOf(name) > -1){
// continue;
// }
switch(name){
case 'appid':
self.ParamLibrary.activeId = value;
break;
case 'keyword':
self.ParamSearch.keyword = decodeURI(value);
break;
case 'asc':
self.ParamSort.sortorder.value = value;
break;
case 'order':
self.ParamSort.Sorttype.value = parseInt(value);
break;
case 'classify':
self.ParamScreen.value.classify.value = value.split(',');
break;
case 'tag':
var fval = value.split(',');
for(var t in fval){
self.ParamScreen.value.tag.value.push(parseInt(fval[t]));
}
break;
case 'color':
self.ParamScreen.value.color.value = value;
break;
case 'persion':
self.ParamScreen.value.color.persion = value;
break;
case 'link':
self.ParamScreen.value.link.value = value;
break;
case 'linkval':
self.ParamScreen.value.link.input = value;
break;
case 'desc':
self.ParamScreen.value.desc.value = value;
break;
case 'descval':
self.ParamScreen.value.desc.input = value;
break;
case 'duration':
var p = value.split('_');
self.ParamScreen.value.duration.start = p[0];
self.ParamScreen.value.duration.end = p[1];
break;
case 'dunit':
self.ParamScreen.value.duration.unit = value;
break;
case 'wsize':
var p = value.split('_');
self.ParamScreen.value.size.wstart = p[0];
self.ParamScreen.value.size.wend = p[1];
break;
case 'hsize':
var p = value.split('_');
self.ParamScreen.value.size.hstart = p[0];
self.ParamScreen.value.size.hend = p[1];
break;
case 'ext':
self.ParamScreen.value.ext.value = value.split(',');
break;
case 'shape':
var arr = value.split(',');
var farr = [];
for(var s in arr){
for(var ss in self.ParamScreen.value.shape.fdata){
var sitem = self.ParamScreen.value.shape.fdata[ss];
if(sitem.name == decodeURI(arr[s])){
farr.push(parseInt(sitem.val));
}
}
}
self.ParamScreen.value.shape.value = farr;
break;
case 'shapesize':
self.ParamScreen.value.shape.value.push('custom');
var arr = value.split(':');
self.ParamScreen.value.shape.sizemin = arr[0];
self.ParamScreen.value.shape.sizemax = arr[1];
break;
case 'grade':
var arr = value.split(',');
var farr = [];
for(var g in arr){
if(decodeURI(arr[g]) == '未评分'){
farr.push(0);
}else{
farr.push(parseInt(arr[g]));
}
}
self.ParamScreen.value.grade.value = farr;
break;
case 'btime':
case 'dateline':
case 'mtime':
var len = decodeURI(value).split('_');
if(len.length>1){
self.ParamScreen.value[name].value = '自定义';
self.ParamScreen.value[name].customvalue = len[0]+' 至 '+len[1];
var start = len[0].split('-');
var end = len[1].split('-');
var defaulttime = [new Date(start[0], start[1], start[2]) ,new Date(end[0], end[1], end[2])];
self.ParamScreen.value[name].defaultdate = defaulttime;
}else{
self.ParamScreen.value[name].value = decodeURI(value);
}
break;
}
}
}
}
if(isreload!="scroll"){
if(jQuery('.pic-container-scroll').length){
jQuery('.pic-container-scroll')[0].scrollTop = 0;
}
self.ParamImages.type = 'refresh';
self.ParamBasic.page = 1;
self.ParamBasic.total = 0;
self.ParamBasic.totalpage = 0;
self.ParamImages.loading = true;
}else{
self.ParamImages.valloading = true;
}
var hash = '';
self.ParamData = {};
for(var x in self.ParamDataInit){
var value = self.ParamDataInit[x];
switch(x){
case 'appid':
if(self.ParamLibrary.activeId){
self.ParamData['appid'] = self.ParamLibrary.activeId;
hash += 'appid='+ self.ParamLibrary.activeId;
}
break;
case 'keyword':
if(value != self.ParamSearch.keyword){
self.ParamData['keyword'] = self.ParamSearch.keyword;
if(hash) hash += '&';
hash += 'keyword='+ self.ParamSearch.keyword;
}
break;
case 'classify':
if(self.ParamScreen.value.classify.value && self.ParamScreen.value.classify.value.length){
self.ParamData['fids'] = self.ParamScreen.value.classify.value.join(',');
if(hash) hash += '&';
hash += 'classify='+ self.ParamScreen.value.classify.value.join(',');
}
break;
case 'tag':
if(self.ParamScreen.value.tag.value && self.ParamScreen.value.tag.value.length){
self.ParamData['tag'] = self.ParamScreen.value.tag.value.join(',');
if(hash) hash += '&';
hash += 'tag='+ self.ParamScreen.value.tag.value.join(',');
}
break;
case 'color':
if(self.ParamScreen.value.color.value){
self.ParamData['color'] = self.ParamScreen.value.color.value;
self.ParamData['persion'] = self.ParamScreen.value.color.persion;
if(hash) hash += '&';
hash += 'color='+ self.ParamScreen.value.color.value;
if(hash) hash += '&';
hash += 'persion='+ self.ParamScreen.value.color.persion;
}
break;
case 'link':
if(value != self.ParamScreen.value.link.value){
self.ParamData['link'] = self.ParamScreen.value.link.value;
if(hash) hash += '&';
hash += 'link='+ self.ParamScreen.value.link.value;
if(parseInt(self.ParamScreen.value.link.value)>0 && self.ParamScreen.value.link.input){
if(hash) hash += '&';
hash += 'linkval='+ self.ParamScreen.value.link.input;
}
}
break;
case 'desc':
if(value != self.ParamScreen.value.desc.value){
self.ParamData['desc'] = self.ParamScreen.value.desc.value;
if(hash) hash += '&';
hash += 'desc='+ self.ParamScreen.value.desc.value;
if(parseInt(self.ParamScreen.value.desc.value)>0 && self.ParamScreen.value.desc.input){
if(hash) hash += '&';
hash += 'descval='+ self.ParamScreen.value.desc.input;
}
}
break;
case 'duration':
var start = self.ParamScreen.value.duration.start;
var end = self.ParamScreen.value.duration.end;
var fval = '';
if(start || end){
fval = start+'_'+end;
}
if(value != fval){
self.ParamData['duration'] = fval;
if(hash) hash += '&';
hash += 'duration='+ fval;
if(hash) hash += '&';
hash += 'dunit='+ self.ParamScreen.value.duration.unit;
}
break;
case 'wsize':
var start = self.ParamScreen.value.size.wstart;
var end = self.ParamScreen.value.size.wend;
var fval = '';
if(start || end){
fval = start+'_'+end;
}
if(value != fval){
self.ParamData['wsize'] = fval;
if(hash) hash += '&';
hash += 'wsize='+ fval;
}
break;
case 'hsize':
var start = self.ParamScreen.value.size.hstart;
var end = self.ParamScreen.value.size.hend;
var fval = '';
if(start || end){
fval = start+'_'+end;
}
if(value != fval){
self.ParamData['hsize'] = fval;
if(hash) hash += '&';
hash += 'hsize='+ fval;
}
break;
case 'ext':
var fval = self.ParamScreen.value.ext.value.join(',');
if(fval){
self.ParamData['ext'] = fval;
if(hash) hash += '&';
hash += 'ext='+ fval;
}
break;
case 'shape':
var index = self.ParamScreen.value.shape.value.indexOf('custom');
var newval = JSON.parse(JSON.stringify(self.ParamScreen.value.shape.value));
if(index > -1){
newval.splice(index,1);
}
var fval = newval.join(',');
if(fval){
self.ParamData['shape'] = fval;
if(hash) hash += '&';
var farr = [];
for(var s in self.ParamScreen.value.shape.value){
var sitem = self.ParamScreen.value.shape.value[s];
if(sitem == 'custom'){
continue;
}
for(var ss in self.ParamScreen.value.shape.fdata){
var ssitem = self.ParamScreen.value.shape.fdata[ss];
if(parseInt(ssitem.val) == parseInt(sitem)){
farr.push(ssitem.name);
}
}
}
hash += 'shape='+ farr.join(',');
}
break;
case 'shapesize':
var index = self.ParamScreen.value.shape.value.indexOf('custom');
var sizemin = self.ParamScreen.value.shape.sizemin;
var sizemax = self.ParamScreen.value.shape.sizemax;
if(index>-1 && sizemin && sizemax){
self.ParamData['shapesize'] = sizemin+':'+sizemax;
if(hash) hash += '&';
hash += 'shapesize='+ sizemin+':'+sizemax;
}
break;
case 'grade':
var fval = self.ParamScreen.value.grade.value.join(',');
var index = self.ParamScreen.value.grade.value.indexOf(0);
var newval = JSON.parse(JSON.stringify(self.ParamScreen.value.grade.value));
if(index > -1){
newval.splice(index,1,'未评分');
}
if(fval){
self.ParamData['grade'] = fval;
if(hash) hash += '&';
hash += 'grade='+ newval.join(',');
}
break;
case 'btime':
case 'dateline':
case 'mtime':
var fval = self.ParamScreen.value[x];
if(fval.value){
if(fval.value == '自定义'){
if(fval.customvalue){
var time = fval.customvalue.split('至');
var ftime = $.trim(time[0])+'_'+$.trim(time[1]);
self.ParamData[x] = ftime;
if(hash) hash += '&';
hash += x+'='+ ftime;
}
}else{
if(hash) hash += '&';
hash += x+'='+ fval.value;
self.ParamData[x] = GetDateVal(fval.value);
}
}
break;
case 'order':
self.ParamData['order'] = self.ParamSort.Sorttype.value;
if(value != self.ParamSort.Sorttype.value){
if(hash) hash += '&';
hash += 'order='+ self.ParamSort.Sorttype.value;
}
break;
case 'asc':
self.ParamData['asc'] = self.ParamSort.sortorder.value;
if(value != self.ParamSort.sortorder.value){
if(hash) hash += '&';
hash += 'asc='+ self.ParamSort.sortorder.value;
}
break;
case 'page':
if(isreload=='scroll'){
self.ParamBasic.page += 1;
}
self.ParamData[x] = self.ParamBasic[x];
// if(value != self.ParamBasic[x]){
// if(hash) hash += '&';
// hash += x+'='+ self.ParamBasic[x];
// }
break;
}
}
self.ParamData['perpage'] = self.ParamBasic['perpage'];
if(isreload != 'refresh'){
window.location.hash = hash;
}
this.CommonGetData(isreload);
},
CommonSetBadge(){
var self = this;
for(var i in self.ParamScreen.data){
var item = self.ParamScreen.data[i];
var type = item.type;
switch(type){
case 'classify':
case 'ext':
case 'shape':
case 'grade':
var fitem = self.ParamScreen.value[type];
if(fitem.value.length){
item.badge = fitem.value.length;
}else{
item.badge = '';
}
break;
case 'tag':
if(item.grouptag){
item.badge = item.value.length || '';
}else{
item.badge = self.ParamScreen.value[type].value.length || '';
}
break;
case 'color':
case 'link':
case 'desc':
item.dot = self.ParamScreen.value[type].value?true:false;
break;
case 'duration':
if(self.ParamScreen.value[type].start || self.ParamScreen.value[type].end){
item.dot = true;
}else{
item.dot = false;
}
break;
case 'size':
var fitem = self.ParamScreen.value[type];
if(fitem.wstart || fitem.wend || fitem.hstart || fitem.hend){
item.dot = true;
}else{
item.dot = false;
}
break;
case 'btime':
case 'dateline':
case 'mtime':
if(self.ParamScreen.value[type].value || self.ParamScreen.value[type].customvalue){
item.dot = true;
}else{
item.dot = false;
}
break;
}
}
self.CommonSetFooterBadge();
},
CommonSetFooterBadge(){
var self = this;
var num = 0;
for(var i in self.ParamScreen.data){
var item = self.ParamScreen.data[i];
switch(item.type){
case 'classify':
case 'tag':
case 'ext':
case 'shape':
case 'grade':
if(item.badge && parseInt(item.badge)){
num++;
}
break;
case 'color':
case 'link':
case 'desc':
case 'duration':
case 'size':
case 'btime':
case 'dateline':
case 'mtime':
if(item.dot){
num++;
}
break;
}
}
self.ParamScreen.ActiveNum = num || '';
if(self.ParamSearch.keyword || self.ParamScreen.ActiveNum){
self.ParamFooter.data.clear.show = true;
}else{
self.ParamFooter.data.clear.show = false;
}
},
CommonGetData(isreload){
var self = this;
if(self.ParamSearch.keyword || self.ParamScreen.ActiveNum){
self.ParamFooter.data.clear.show = true;
}else{
self.ParamFooter.data.clear.show = false;
}
$.post(MOD_URL+'&op=filelist&operation=filelist',self.ParamData,function(data){
var information = data.data;
var ftotal = Math.ceil(information.param.total / information.param.perpage);
if(isreload=='scroll'){
self.ParamImages.type = 'append';
self.ParamImages.data.push.apply(self.ParamImages.data,information.data);
self.ParamBasic.totalpage = ftotal;
}else{
self.ParamImages.type = 'refresh';
self.ParamImages.data = information.data;
self.ParamBasic.totalpage = ftotal<1?1:ftotal;
}
self.ParamBasic.total = information.param.total;
if(isreload == 'refresh'){
if(information.param.tagdata){
var tstr = {};
for(var t in information.param.tagdata){
var titem = information.param.tagdata[t];
if(!tstr[titem.cid]){
tstr[titem.cid] = [];
}
tstr[titem.cid].push(titem.tid);
}
self.ParamScreen.value.tag.refreshval = tstr;
}
self.CommonGetScreenData();
}
},'json');
},
CommonAddkeyword(keyword,ktype){//添加关键词次数
var self = this;
jQuery.post(MOD_URL+'&op=ajax&operation=addsearch',{
appid:self.ParamLibrary.activeId,
keyword:keyword,
ktype:ktype
});
},
CommonGetScreenData(){
var self = this;
$.post(MOD_URL+'&op=ajax&operation=getscreen',{
appid:self.ParamLibrary.activeId
},function(data){
if(data.success){
var fdata = data.data;
var arr = [];
var grouparr = {};
var index = 0;
for(var i in fdata){
var item = fdata[i];
if(parseInt(item.checked)){
if(item.key == 'tag' && parseInt(item.showtype)){
for(var g in item.group){
var gitem = item.group[g];
if(parseInt(gitem.checked)){
var str = {
text:gitem.catname,
type:'tag',
appid:gitem.appid,
cid:gitem.cid,
grouptag:true,
badge:'',
value: self.ParamScreen.value.tag.refreshval[gitem.cid] || [],
page:1,
keyword:'',
loading:true,
scrollloading:false,
searchloading:false,
data:[],
finish:false
};
grouparr[gitem.cid] = {
loading:true,
data:[]
};
arr.push(str);
}
}
}else{
var str = {
text:item.text,
type:item.key,
};
if(self.ParamScreen.dataBadge.indexOf(item.key)>-1){
str['badge'] = '';
}else{
str['dot'] = false;
}
arr.push(str);
}
index++;
}
}
self.ParamScreen.groupdata = grouparr;
self.ParamScreen.data = arr;
if(arr.length){
self.ParamFooter.data.screen.show = true;
self.CommonSetBadge();
}
}else{
}
},'json');
},
CommonCopyTxt(text){
var self = this;
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
input.setAttribute('value', text);
document.getElementsByTagName('body')[0].appendChild(input);
document.getElementById('copyInput').select();
document.execCommand('copy');
document.getElementById('copyInput').remove();
self.$toast.success('复制成功');
}
}
</script>

View File

@@ -0,0 +1,117 @@
<van-popup
v-model="InformationPopup"
class="detail-popup-message"
:class="showdata[rid] && !showdata[rid].data.footer?'noPadding':''"
position="right"
:overlay="false"
get-container="#DetailPopup">
<van-nav-bar class="header-top" title="详情信息" left-arrow @click-left="InformationPopup=false"></van-nav-bar>
<div style="position: relative;height: 100%;background: var(--bg-content);padding-top: 46px;" v-cloak>
<div class="DetailPopup-content" style="padding: 0 16px;">
<!-- <template v-if="ParamDetail.messageloading">
<van-loading class="custom-load" size="24px" type="spinner" color="var(--header-text)" vertical>加载中...</van-loading>
</template>
<template v-else> -->
<div class="name">{{showdata[rid].data.name}}.{{showdata[rid].data.ext}}</div>
<div class="block" v-if="showdata[rid].data.colors && showdata[rid].data.colors.length">
<div class="title">颜色</div>
<div class="block-item colors">
<div class="colors" v-for="item in showdata[rid].data.colors" @click="DetailMessageSearch('color',item)">
<div :style="{background: '#'+item}"></div>
</div>
</div>
</div>
<div class="block" v-if="showdata[rid].data.tag && showdata[rid].data.tag.length">
<div class="title">标签</div>
<div class="block-item tag">
<div class="tag" v-for="item in showdata[rid].data.tag" @click="DetailMessageSearch('tag',item.key)">{{item.val}}</div>
</div>
</div>
<div class="block" v-if="showdata[rid].data.link">
<div class="title">链接</div>
<div class="block-item link">
<span @click="DetailMessageSearch('link',showdata[rid].data.link)">{{showdata[rid].data.link}}</span>
<i class="ri-file-copy-line" @click="DetailMessageSearch('copy',showdata[rid].data.link)"></i>
</div>
</div>
<div class="block" v-if="showdata[rid].data.foldernames && showdata[rid].data.foldernames.length">
<div class="title">分类</div>
<div class="block-item tag">
<div class="tag" v-for="item in showdata[rid].data.foldernames" @click="DetailMessageSearch('classify',item.key)">{{item.val}}</div>
</div>
</div>
<div class="block">
<div class="title">基本信息</div>
<div class="block-item">
<van-row class="basic">
<van-col span="12">
<div class="label">评分</div>
</van-col>
<van-col span="12">
<div class="record">
<van-icon v-for="item in showdata[rid].data.grade" name="star" class="star active"></van-icon><van-icon v-for="item in showdata[rid].data.fgrade" name="star" class="star"></van-icon>
</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">尺寸</div>
</van-col>
<van-col span="12">
<div class="record">{{showdata[rid].data.width}}×{{showdata[rid].data.height}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">文件大小</div>
</van-col>
<van-col span="12">
<div class="record">{{showdata[rid].data.fsize}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">类型</div>
</van-col>
<van-col span="12">
<div class="record">{{showdata[rid].data.ext}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">创建时间</div>
</van-col>
<van-col span="12">
<div class="record">{{showdata[rid].data.mtime}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">添加时间</div>
</van-col>
<van-col span="12">
<div class="record">{{showdata[rid].data.btime}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">修改时间</div>
</van-col>
<van-col span="12">
<div class="record">{{showdata[rid].data.dateline}}</div>
</van-col>
</van-row>
</div>
</div>
<!-- </template> -->
</div>
</div>
</van-popup>
<script type="text/javascript">
var DetailMessageJs = {
}
</script>

View File

@@ -0,0 +1,757 @@
<div class="pic-container-scroll">
<div class="img-container">
<div id="imgContainer" :class="ParamSort.layout.value=='imageList'?'imagelist':''">
<div
class="imgitem"
v-for="item in ParamImages.Newdatas"
:style="{top:item.ptop+'px',left:item.pleft+'px',width:item.pwidth+'px'}"
:key="item.rid"
:rid="item.rid"
@click="ImagesDetailClick(item.rid,item.index)">
<div class="imgbox">
<div
class="imgbox-border radius"
:style="{height: item.pheight+'px',width: (item.pwidth-8)+'px',background:'#'+item.color}"
v-bind:class="item.opentype=='video'||item.opentype=='audio'?'border':''">
<div class="div-black" :data-rid="item.rid">
<div class="bck"></div>
<img
class="img el-image__inner opacity"
:ref="'ref_'+item.rid"
@load="ImagesImgload(item.rid)"
:src="item.icondata"
alt="" />
<!-- <img
class="img el-image__inner opacity"
:ref="'ref_'+item.rid"
@load="ImagesImgload(item.rid)"
:src="item.icondata"
@touchevent="ImagesTouchEvent"
@touchstart="ImagesTouchStart"
@touchmove="ImagesTouchMove"
@touchend="ImagesTouchEnd"
alt="" /> -->
<div class="circular-box">
<div class="circular-item-box">
<div class="circular-item first"><i class="ri-file-search-line icon"></i></div>
<div class="circular-item two"><i class="ri-share-line icon"></i></div>
<div class="circular-item three"><i class="ri-download-2-line icon"></i></div>
</div>
<div class="round"></div>
<div></div>
</div>
</div>
<div v-if="ParamSort.showinformation.value.indexOf('tagging')>-1&&parseInt(item.annonationnum)>0" class="annotation">{{item.annonationnum}}</div>
</div>
<div class="bottom-img-message">
<div class="name" v-if="ParamSort.showinformation.value.indexOf('name')>-1 || ParamSort.showinformation.value.indexOf('extension')>-1">
<span v-if="ParamSort.showinformation.value.indexOf('name')>-1" v-cloak>{{item.name}}</span>
<span v-if="ParamSort.showinformation.value.indexOf('extension')>-1" class="suffix" v-cloak>.{{item.ext}}</span>
</div>
<template v-if="ParamSort.showinformation.value.indexOf('other')>-1">
<div class="other" v-if="ParamSort.otherinformation.value=='size'">
<span>{{item.width}} × {{item.height}}</span>
</div>
<div class="other" v-else-if="ParamSort.otherinformation.value=='filesize'">
<span>{{item.fsize}}</span>
</div>
<div class="other" v-else-if="ParamSort.otherinformation.value=='tag'">
<span v-if="!item.tags" class="label">-</span>
<span v-else class="label" v-for="tg in item.tags">•{{tg}}</span>
</div>
<div class="other" v-else-if="ParamSort.otherinformation.value=='grade'">
<van-icon v-for="item in parseInt(item.grade)" class="score active" name="star"></van-icon><van-icon v-for="item in 5-parseInt(item.grade)" class="score" name="star"></van-icon>
</div>
<div class="other" v-else-if="ParamSort.otherinformation.value=='btime'">
<span>{{item.btime}}</span>
</div>
<div class="other" v-else-if="ParamSort.otherinformation.value=='dateline'">
<span>{{item.dateline}}</span>
</div>
<div class="other" v-else-if="ParamSort.otherinformation.value=='mtime'">
<span>{{item.mtime}}</span>
</div>
</template>
</div>
</div>
</div>
<template v-if="ParamImages.data.length&&ParamBasic.page>=ParamBasic.totalpage&&!ParamImages.loading&&!ParamImages.valloading">
<div style="position: absolute;bottom: 0;left: 0;width: 100%;line-height: 40px;text-align: center;color: var(--content-text);font-size: 14px;">没有更多了</div>
</template>
<template v-if="ParamImages.valloading">
<div style="position: absolute;bottom: 0;left: 0;width: 100%;line-height: 40px;text-align: center;color: var(--content-text);font-size: 14px;">
<van-loading type="spinner" size="24px">加载中...</van-loading>
</div>
</template>
</div>
<template v-if="ParamImages.data.length==0&&!ParamImages.loading&&!ParamImages.valloading">
<van-empty
class="custom-image"
image="dzz/pichome/image/nodata.svg"
description="暂无数据"
/>
</template>
</div>
</div>
<van-overlay :show="ParamImages.loading" :z-index="5000" />
<script type="text/javascript">
var ImagesData = {
ParamImages:{
resize:0,
data:[],
Newdatas:{},
type:'refresh',
operation:{
time:'',
istouch:false,
target:'',
click:true,
details:{
touchMinw:0,
touchMaxw:0,
touchMinh:0,
touchMaxh:0,
},
share:{
touchMinw:0,
touchMaxw:0,
touchMinh:0,
touchMaxh:0,
},
down:{
touchMinw:0,
touchMaxw:0,
touchMinh:0,
touchMaxh:0,
},
},
imageList:{
maxNewtop:0,
maxNewLeft:0,
perpage : 0,
Margin:4,
columns:0,
fcolumns:1,
newWidth:0,//图片宽度
newHeight:0,//图片高度
boxHeight:0,//总体高度
OtherHeight:0,//底部信息
StoreImgdatas:[],
},
imgageWaterfall:{
imgWidth : 252,
imgArr : [],
ImgAll : [],
total : 0,
columns:0,
boxHeight:0,
OtherHeight:0,
perpage:0,
Margin:8,
isMax:false,
StoreImgdatas:[],
},
imagerowGrid:{
maxNewtop:0,
maxNewLeft:0,
rowElems:[],
perpage : 0,
Margin:4,
rowWidth:0,
OtherHeight:0,
SurplusImgdatas:[],
StoreImgdatas:[],
},
loading:true,
valloading:false
}
};
var ImagesWatchJs = {
'ParamImages.resize':debounce(function(val){
var self = this;
self.ImagesLayoutInit();
},500),
'ParamImages.data':{
handler(val){
var self = this;
self.ImagesLayoutInit();
if(self.ParamImages.type == 'append'){
self.ParamImages.valloading = false;
}else{
self.ParamImages.loading = false;
}
},
deep:true,
// immediate:true
},
'ParamImages.loading':{
handler(val){
var self = this;
if(val){
self.$toast.loading({
message: '加载中...',
className:'conter-toast',
duration: 0,
forbidClick: true,
loadingType: 'spinner',
});
}else{
self.$toast.clear();
}
},
deep:true,
immediate:true
}
};
var ImagesJs = {
ImagesTouchEvent(){
console.log(1111)
},
ImagesTouchStart(e){
console.log(e)
// var self = this;
// self.ParamImages.operation.click = false;
// self.ParamImages.operation.time = setTimeout(function(){
// self.asdfasdfdsf(e);
// },600);
},
ImagesTouchStartLongpress(e){
var self = this;
var img = $(e.target);
self.ParamImages.operation.target = img.closest('.div-black');
var circular = img.siblings('.circular-box');
var style = {
width:img.width()+'px',
height:img.height()+'px',
top:img.offset().top+'px',
left:img.offset().left+'px',
}
var box = $(document).width();
var touch = e.touches[0];
var pageR = touch.pageX+22.5+62;
var pageT = 22.5+70;
var pageL = 62+22.5;
var pageB = touch.pageX+22.5+62;
circular.addClass('top');
if(pageR>box){
circular.addClass('right')
}
if(pageL>touch.pageX){
circular.addClass('left')
}
self.ParamImages.operation.istouch = true;
circular.css({
top:touch.pageY-((circular.width()+6)/2),
left:touch.pageX-((circular.height()+6)/2),
});
img.css(style);
img.closest('.div-black').addClass('fixed');
setTimeout(function(){
var first = circular.find('.circular-item.first');
self.ParamImages.operation.details = {
touchMinw:first.offset().left,
touchMaxw:first.offset().left+45,
touchMinh:first.offset().top,
touchMaxh:first.offset().top+45,
};
var two = circular.find('.circular-item.two');
self.ParamImages.operation.share = {
touchMinw:two.offset().left,
touchMaxw:two.offset().left+45,
touchMinh:two.offset().top,
touchMaxh:two.offset().top+45,
};
var three = circular.find('.circular-item.three');
self.ParamImages.operation.share = {
touchMinw:three.offset().left,
touchMaxw:three.offset().left+45,
touchMinh:three.offset().top,
touchMaxh:three.offset().top+45,
};
},500)
},
ImagesTouchMove(e){
var self = this;
var touch = e.touches[0];
var x = touch.pageX;
var y = touch.pageY;
},
ImagesTouchEnd(e){
var self = this;
// e.preventDefault();
clearTimeout(self.ParamImages.operation.time);
self.ParamImages.operation.click = true;
if(self.ParamImages.operation.istouch){
self.ParamImages.operation.target.removeClass('fixed');
self.ParamImages.operation.target.find('.circular-box').removeClass('top left right');
}
},
ImagesDetailClick(rid,index){
var self = this;
// this.ParamDetail.ridIndex = index;
// this.ParamDetail.rid = rid;
// this.ParamDetail.PopupVisible = true;
var arr = [];
for(var i in self.ParamImages.data){
arr.push(self.ParamImages.data[i].rid);
}
arr = arr.join(',');
window.localStorage.setItem('imgs',arr);
window.location.href = SITEURL+MOD_URL+'&op=details#rid='+rid;
},
ImagesMounted(){
var self = this;
var ParamBasic = self.ParamBasic;
var beforeScrollTop = document.body.scrollTop,fn = fn || function() {};
$('.pic-container-scroll').scroll(function(e){
var afterScrollTop = $(this).scrollTop(),
updown = afterScrollTop - beforeScrollTop;
if( updown === 0 ) return false;
beforeScrollTop = afterScrollTop;
self.ParamFooter.IsShow = updown > 0 ? "down" : "up"; //判断往上还是往下
self.ImagesLayoutScrollShow();
if($(this).scrollTop()+$(this).height()>=this.scrollHeight-80){
if(ParamBasic.page>=ParamBasic.totalpage || self.ParamImages.loading || self.ParamImages.valloading){
return false;
}
self.CommonhandleHash('scroll');
}
});
$('.div-black').click(function(){
})
window.addEventListener('resize',function(){
self.ParamImages.resize += 1;
});
},
ImagesImgload(rid){
var self = this;
var item = $(self.$refs['ref_'+rid]);
item.removeClass('opacity');
item.parents('.imgbox-border').css('background','').removeClass('radius');
self.ParamImages.operation.click = 0;
// item[0].addEventListener("touchstart",function(e){
// var touch = e.touches[0];
// self.ParamImages.operation.click = touch.clientY;
// self.ParamImages.operation.time = setTimeout(function(){
// self.ParamImages.operation.click = true;
// self.ImagesTouchStartLongpress(e);
// },600);
// },false);
// item[0].addEventListener("touchmove",function(e){
// var touch = e.touches[0];
// console.log(Math.abs(touch.clientY - self.ParamImages.operation.click))
// if(Math.abs(touch.clientY - self.ParamImages.operation.click) < 10){
// e.preventDefault();
// }
// clearTimeout(self.ParamImages.operation.time);
// },false);
// item[0].addEventListener("touchend",function(e){
// clearTimeout(self.ParamImages.operation.time);
// // if(self.ParamImages.operation.istouch){
// self.ParamImages.operation.target.removeClass('fixed');
// self.ParamImages.operation.target.find('.circular-box').removeClass('top left right');
// // }
// },false)
},
ImagesLayoutInit(){
var self = this;
if(self.ParamSort.layout.value == 'waterFall'){
self.ImagesWaterfalllayoutCompute();
}else if(self.ParamSort.layout.value == 'rowGrid'){
self.ImagesRowGridtlayoutCompute();
}else{
self.ImagesListlayoutCompute();
}
},
ImagesRowGridtlayoutCompute(){
var self = this;
var imagerowGrid = self.ParamImages.imagerowGrid;
if(self.ParamImages.type == 'refresh' || !self.ParamImages.data.length){
imagerowGrid.maxNewtop = 0;
imagerowGrid.rowWidth = 0;
imagerowGrid.rowElems = [];
imagerowGrid.maxNewLeft = 0;
imagerowGrid.perpage = 0;
imagerowGrid.SurplusImgdatas = [];
imagerowGrid.StoreImgdatas = [];
this.ParamImages.Newdatas = {};
}
if(!self.ParamImages.data.length){
$('#imgContainer').height(0);
return false;
}
var OtherHeight = 0
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
OtherHeight += 45;
}
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
OtherHeight += 20;
}
imagerowGrid.OtherHeight = OtherHeight;
var arr = {};
if(imagerowGrid.rowElems.length){
for(var s in imagerowGrid.rowElems){
arr[imagerowGrid.rowElems[s].rid] = JSON.parse(JSON.stringify(imagerowGrid.rowElems[s]));
}
imagerowGrid.rowWidth = 0;
imagerowGrid.rowElems = [];
imagerowGrid.maxNewLeft = 0;
}
for(var findex = imagerowGrid.perpage; findex < self.ParamImages.data.length;++findex){
var str = JSON.parse(JSON.stringify(self.ParamImages.data[findex]));
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 > 260) {
h = 260;
w = r * h;
} else if (w < 260) {
w = 260;
h = 260;
}
arr[rid]['pwidth'] = w;
arr[rid]['pheight'] = h;
}
var documentW = document.body.clientWidth;
var boxWidth = documentW-8;
$('#imgContainer').width(boxWidth);
for(var index in arr){
var item = arr[index];
imagerowGrid.rowWidth += item['pwidth'];
imagerowGrid.rowElems.push(item);
var fdiiff = imagerowGrid.rowWidth + imagerowGrid.Margin * (imagerowGrid.rowElems.length - 1);
var diff = fdiiff - boxWidth;//多出来的宽度
if (fdiiff > boxWidth){
var widthDiff = 0,maxNewHeight = 0;
for(var rowElemIndex in imagerowGrid.rowElems){
var rid = imagerowGrid.rowElems[rowElemIndex].rid;
var rowElemWidth = arr[rid]['pwidth'];//获取一行每个都宽度
var rowElemHeight = arr[rid]['pheight'];//获取一行每个都宽度
var newWidth = rowElemWidth - (rowElemWidth / imagerowGrid.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'] = imagerowGrid.maxNewtop;
arr[rid]['pbottom'] = imagerowGrid.maxNewtop+maxNewHeight+imagerowGrid.OtherHeight;
if(rowElemIndex > 0){
arr[rid]['pleft'] = imagerowGrid.maxNewLeft;
}else{
arr[rid]['pleft'] = 0;
}
imagerowGrid.maxNewLeft += newWidth + imagerowGrid.Margin;
}
for(var frowElemIndex in imagerowGrid.rowElems){//规整每行的高
var rowElem = imagerowGrid.rowElems[frowElemIndex].rid;
var height = arr[rowElem]['pheight'];//获取一行每个都宽度
if(height<maxNewHeight){
arr[rowElem]['pbottom'] += maxNewHeight-height;
arr[rowElem]['pheight'] = maxNewHeight;
}
}
imagerowGrid.maxNewtop += maxNewHeight + imagerowGrid.Margin +imagerowGrid.OtherHeight
imagerowGrid.rowElems = [];
imagerowGrid.rowWidth = 0;
imagerowGrid.maxNewLeft = 0;
}
}
var surplusheight = 0;
if (imagerowGrid.rowElems.length) {
var maxNewHeight = 0;
for(var f in imagerowGrid.rowElems){
var rowElem = imagerowGrid.rowElems[f].rid;
var rowElemWidth = arr[rowElem].pwidth;//获取一行每个都宽度
var rowElemHeight = arr[rowElem].pheight;//获取一行每个都宽度
arr[rowElem]['pwidth'] = rowElemWidth;
arr[rowElem]['pheight'] = rowElemHeight;
arr[rowElem]['ptop'] = imagerowGrid.maxNewtop;
arr[rowElem]['pbottom'] = imagerowGrid.maxNewtop+rowElemHeight+imagerowGrid.OtherHeight;
if (rowElemHeight > maxNewHeight){
maxNewHeight = rowElemHeight;
}
if(f > 0){
arr[rowElem]['pleft'] = imagerowGrid.maxNewLeft;
}else{
arr[rowElem]['pleft'] = 0;
}
imagerowGrid.maxNewLeft += rowElemWidth + imagerowGrid.Margin;
}
for(var ff in imagerowGrid.rowElems){
var rowElem = imagerowGrid.rowElems[ff].rid;
imagerowGrid.SurplusImgdatas.push(rowElem);
var height = arr[rowElem]['pheight'];
if(height<maxNewHeight){
arr[rowElem]['pbottom'] += maxNewHeight-height;
arr[rowElem]['pheight'] = maxNewHeight;
}
}
surplusheight = maxNewHeight+imagerowGrid.OtherHeight+imagerowGrid.Margin;
// imagerowGrid.maxNewLeft = 0;
}else{
imagerowGrid.SurplusImgdatas = [];
}
$('#imgContainer').height(imagerowGrid.maxNewtop+surplusheight+60);
imagerowGrid.perpage = self.ParamImages.data.length;
var newarr = [];
for(var n in arr){
newarr.push(arr[n]);
}
if(self.ParamImages.type == 'append'){
var StoreImgdatas = JSON.parse(JSON.stringify(imagerowGrid.StoreImgdatas));
if(imagerowGrid.SurplusImgdatas.length){
var splic = [];
for(var b in StoreImgdatas){
if(imagerowGrid.SurplusImgdatas.indexOf(StoreImgdatas[b].rid)>-1){
splic.push(b)
}
}
for(var h in splic){
imagerowGrid.StoreImgdatas.splice(parseInt(splic[h]),1);
}
}
// for(var y in newarr){
// imagerowGrid.StoreImgdatas.push(newarr[y])
// }
imagerowGrid.StoreImgdatas.push.apply(imagerowGrid.StoreImgdatas,newarr);
}else{
imagerowGrid.StoreImgdatas = newarr;
}
self.ImagesLayoutScrollShow()
},
ImagesListlayoutCompute(){
var self = this;
if(self.ParamImages.type == 'refresh' || !self.ParamImages.data.length){
self.ParamImages.imageList.perpage = 0;
var documentW = document.body.clientWidth;
var boxWidth = documentW-8;
$('#imgContainer').width(boxWidth);
var columns = 0;
if(documentW>=1024){
columns = 5;
}else if(documentW>=992){
columns = 4;
}else if(documentW>=768){
columns = 3;
}else{
columns = 2;
}
self.ParamImages.imageList.maxNewLeft = 0;
self.ParamImages.imageList.maxNewtop = 0;
self.ParamImages.imageList.fcolumns = 1;
self.ParamImages.imageList.boxHeight = 0;
self.ParamImages.imageList.StoreImgdatas = [];
self.ParamImages.Newdatas = {};
self.ParamImages.imageList.columns = columns;
self.ParamImages.imageList.newWidth = (boxWidth-(columns*self.ParamImages.imageList.Margin-self.ParamImages.imageList.Margin)) / columns;
self.ParamImages.imageList.newHeight = 2 / 3 * self.ParamImages.imageList.newWidth;
var OtherHeight = 0
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
OtherHeight += 45;
}
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
OtherHeight += 20;
}
self.ParamImages.imageList.OtherHeight = OtherHeight;
}
if(!self.ParamImages.data.length){
$('#imgContainer').height(0);
return false;
}
var arr = [];
var i = 0;
for(var index = self.ParamImages.imageList.perpage; index < self.ParamImages.data.length;++index){
var item = JSON.parse(JSON.stringify(self.ParamImages.data[index]));
arr[i] = item;
arr[i]['pwidth'] = self.ParamImages.imageList.newWidth;
arr[i]['pheight'] = self.ParamImages.imageList.newHeight;
arr[i]['ptop'] = self.ParamImages.imageList.maxNewtop;
arr[i]['pleft'] = self.ParamImages.imageList.maxNewLeft;
arr[i]['pbottom'] = self.ParamImages.imageList.maxNewtop + self.ParamImages.imageList.newHeight+self.ParamImages.imageList.OtherHeight;
self.ParamImages.imageList.maxNewLeft += self.ParamImages.imageList.newWidth+self.ParamImages.imageList.Margin;
self.ParamImages.imageList.fcolumns++;
if(self.ParamImages.imageList.fcolumns > self.ParamImages.imageList.columns){
self.ParamImages.imageList.maxNewLeft = 0;
self.ParamImages.imageList.maxNewtop += self.ParamImages.imageList.newHeight+self.ParamImages.imageList.Margin+self.ParamImages.imageList.OtherHeight;
self.ParamImages.imageList.fcolumns = 1;
self.ParamImages.imageList.boxHeight = self.ParamImages.imageList.maxNewtop;
}
i++;
}
self.ParamImages.imageList.perpage = self.ParamImages.data.length;
if(self.ParamImages.type == 'append'){
self.ParamImages.imageList.StoreImgdatas.push.apply(self.ParamImages.imageList.StoreImgdatas,arr);
}else{
self.ParamImages.imageList.StoreImgdatas = arr;
}
if(self.ParamImages.imageList.fcolumns>1&&self.ParamImages.imageList.fcolumns<self.ParamImages.imageList.columns+1){
self.ParamImages.imageList.boxHeight += self.ParamImages.imageList.newHeight+self.ParamImages.imageList.OtherHeight;
}
$('#imgContainer').height(self.ParamImages.imageList.boxHeight+60);
self.ImagesLayoutScrollShow()
},
ImagesWaterfalllayoutCompute(){
var self = this;
var boxWidth = $('.img-container').width()-8;
if(self.ParamImages.type == 'refresh' || !self.ParamImages.data.length){
self.ParamImages.imgageWaterfall.imgArr = [];
self.ParamImages.imgageWaterfall.perpage = 0;
self.ParamImages.imgageWaterfall.StoreImgdatas = [];
self.ParamImages.Newdatas = {};
var documentW = document.body.clientWidth;
if(documentW<768){
self.ParamImages.imgageWaterfall.isMax = false;
self.ParamImages.imgageWaterfall.columns = 2;
self.ParamImages.imgageWaterfall.imgWidth = boxWidth/2;
}else{
self.ParamImages.imgageWaterfall.isMax = true;
self.ParamImages.imgageWaterfall.imgWidth = 252;
self.ParamImages.imgageWaterfall.columns = parseInt(boxWidth/self.ParamImages.imgageWaterfall.imgWidth);
}
var OtherHeight = 0
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
OtherHeight += 45;
}
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
OtherHeight += 20;
}
self.ParamImages.imgageWaterfall.OtherHeight = OtherHeight;
}
if(!self.ParamImages.data.length){
$('#imgContainer').height(0);
return false;
}
var pwidth = self.ParamImages.imgageWaterfall.imgWidth;
var arr = [];
var i = 0;
for (var index = self.ParamImages.imgageWaterfall.perpage; index < self.ParamImages.data.length; index++){
arr[i] = JSON.parse(JSON.stringify(self.ParamImages.data[index]));
var ppwidth = pwidth-8;
if(self.ParamImages.imgageWaterfall.isMax){
arr[i]['pwidth'] = 252;
}else{
arr[i]['pwidth'] = pwidth;
}
var h = ppwidth/parseFloat(arr[i].width)*parseInt(arr[i].height)>120?ppwidth/parseFloat(arr[i].width)*parseInt(arr[i].height):120;
arr[i]['pheight'] = h;
if (index < self.ParamImages.imgageWaterfall.columns) {
arr[i]['ptop'] = 0;
arr[i]['pleft'] = pwidth*index;
arr[i]['pbottom'] = arr[i]['ptop']+arr[i]['pheight']+self.ParamImages.imgageWaterfall.Margin+self.ParamImages.imgageWaterfall.OtherHeight;
var imgArr = JSON.parse(JSON.stringify(arr[i]));
self.ParamImages.imgageWaterfall.imgArr.push(imgArr);
}else{
var minHeight = self.ParamImages.imgageWaterfall.imgArr[0]['pbottom'];
var findex = 0;
for (var j = 0; j < self.ParamImages.imgageWaterfall.imgArr.length; j++) {
if (minHeight > self.ParamImages.imgageWaterfall.imgArr[j]['pbottom']) {
minHeight = self.ParamImages.imgageWaterfall.imgArr[j]['pbottom'];
findex = j;
}
}
arr[i]['ptop'] = JSON.parse(JSON.stringify(self.ParamImages.imgageWaterfall.imgArr[findex]['pbottom']));
arr[i]['pleft'] = JSON.parse(JSON.stringify(self.ParamImages.imgageWaterfall.imgArr[findex]['pleft']));
arr[i]['pbottom'] = arr[i]['ptop']+arr[i]['pheight']+self.ParamImages.imgageWaterfall.Margin+self.ParamImages.imgageWaterfall.OtherHeight;
var imgArr = JSON.parse(JSON.stringify(arr[i]));
self.ParamImages.imgageWaterfall.imgArr[findex] = imgArr;
}
i++;
}
self.ParamImages.imgageWaterfall.perpage = self.ParamImages.data.length;
if(self.ParamImages.type == 'append'){
self.ParamImages.imgageWaterfall.StoreImgdatas.push.apply(self.ParamImages.imgageWaterfall.StoreImgdatas,arr);
}else{
self.ParamImages.imgageWaterfall.StoreImgdatas = arr;
}
var fminHeight = self.ParamImages.imgageWaterfall.imgArr[0]['pbottom'];
for (var j = 0; j < self.ParamImages.imgageWaterfall.imgArr.length; j++) {
if (fminHeight < self.ParamImages.imgageWaterfall.imgArr[j]['pbottom']) {
fminHeight = self.ParamImages.imgageWaterfall.imgArr[j]['pbottom'];
}
}
self.ParamImages.imgageWaterfall.boxHeight = fminHeight;
$('#imgContainer').css({
height:self.ParamImages.imgageWaterfall.boxHeight+60+'px',
width:self.ParamImages.imgageWaterfall.columns*pwidth+'px'
});
self.ImagesLayoutScrollShow();
},
ImagesLayoutScrollShow(){
var self = this;
var H = jQuery('.pic-container-scroll')[0].clientHeight;//获取可视区域高度
var S = jQuery('.pic-container-scroll')[0].scrollTop;
var arr = [];
if(self.ParamSort.layout.value == 'waterFall'){
var StoreImgdatas = JSON.parse(JSON.stringify(self.ParamImages.imgageWaterfall.StoreImgdatas));
}else if(self.ParamSort.layout.value == 'rowGrid'){
var StoreImgdatas = JSON.parse(JSON.stringify(self.ParamImages.imagerowGrid.StoreImgdatas));
}else{
var StoreImgdatas = JSON.parse(JSON.stringify(self.ParamImages.imageList.StoreImgdatas));
}
self.ParamImages.Newdatas = {};
for(var o in StoreImgdatas){
var item = JSON.parse(JSON.stringify(StoreImgdatas[o]));
if ((H+S) >= item.ptop && S<item.pbottom) {
item['index'] = parseInt(o);
self.ParamImages.Newdatas[item.rid] = item;
}
}
}
};
</script>

View File

@@ -0,0 +1,272 @@
<van-nav-bar class="header-top" :class="ParamFooter.IsShow=='up'?'':'headerhide'" title="" left-text="" left-arrow>
<template #left>
<div class="pic-logo" slot="left">
<a class="h-left" href="$_G[siteurl]">
<img src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" alt="">
<span class="text">$_G['setting'][sitename]</span>
</a>
</div>
</template>
<template #right>
<van-dropdown-menu>
<van-dropdown-item @change="ChangeLibrary" v-model="ParamLibrary.activeId" :options="ParamLibrary.fdata" />
</van-dropdown-menu>
</template>
</van-nav-bar>
<div class="pic-container">
<!--{template mobile/components/index/JsImages}-->
</div>
<footer class="pic-toolbar" :class="ParamFooter.IsShow=='up'?'footershow':'footerhide'">
<div class="tabbar">
<template v-for="item in ParamFooter.data">
<template v-if="item.show">
<template v-if="item.type == 'user'">
<div class="tab-item" @click="MyPopupVisible=true">
<div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div>
</div>
</template>
<template v-else>
<div class="tab-item" @click="handleFooterClick(item.type)">
<i :class="item.icon" style="position: relative;">
<template v-if="item.type == 'search'">
<div v-if="ParamSearch.keyword" class="van-info van-info--dot van-sidebar-item__info"></div>
</template>
<template v-else-if="item.type == 'screen'">
<div v-if="ParamScreen.ActiveNum" class="van-info van-info--dot van-sidebar-item__info"></div>
</template>
</i>
</div>
</template>
</template>
</template>
</div>
</footer>
<!--{template mobile/components/index/JsCommon}-->
<!--{template mobile/components/index/JsSearch}-->
<!--{template mobile/components/index/JsSort}-->
<!--{template mobile/components/index/JsScreen}-->
<!--{template mobile/components/index/JsMy}-->
<script type="text/javascript">
Vue.component('screenclassify', {
template: `<van-collapse v-model="parammodel.activeNames" :border="false">
<van-collapse-item v-for="item in paramdata" :key="item.fid" :name="item.fid" disabled :class="{'active':parammodel.value.indexOf(item.fid)>-1}" :ref="'collapse_'+item.fid">
<template #title>
<div @click.stop="ScreenClassifyClick(item)">
{{item.fname}}
</div>
</template>
<template #right-icon>
<template v-if="item.children && item.children.length">
<i @click.stop="ScreenClassifyToggle(item.fid)" class="van-icon van-icon-arrow van-cell__right-icon"></i>
</template>
<template v-else>
<div style="width: 20px;"></div>
</template>
</template>
<template v-if="item.children && item.children.length">
<screenclassify :parammodel="parammodel" :paramdata="item.children" @screenclassifychange="screenclassifychange"></screenclassify>
</template>
</van-collapse-item>
</van-collapse>`,
props:['paramdata','parammodel'],
data: function() {
return {}
},
created() {
},
methods:{
ScreenClassifyClick(item){
var self = this;
var index = this.parammodel.value.indexOf(item.fid);
if(index> -1){
this.parammodel.value.splice(index,1);
this.ScreenClassifyChild(item.children,'del');
}else{
this.parammodel.value.push(item.fid);
this.ScreenClassifyChild(item.children,'add');
}
self.$emit('screenclassifychange');
},
ScreenClassifyChild(item,type){
var classify = this.parammodel.value;
for(var i in item){
var fitem = item[i];
var index = classify.indexOf(fitem.fid);
if(type == 'add'){
if(index<0){
classify.push(fitem.fid)
}
}else{
if(index>-1){
classify.splice(index,1);
}
}
if(fitem.children && fitem.children.length){
this.ScreenClassifyChild(fitem.children,type);
}
}
},
screenclassifychange(){
var self = this;
self.$emit('screenclassifychange');
},
ScreenClassifyToggle(fid){
var self = this;
if(self.$refs['collapse_'+fid] && self.$refs['collapse_'+fid].length){
self.$refs['collapse_'+fid][0].toggle();
}
},
},
mounted() {
},
});
new Vue({
el: '#dzzoffice',
data: function() {
return $.extend({},MyData,SearchData,SortData,ImagesData,ScreenData,{
ParamFooter:{
IsShow:'up',
data:{
clear:{type:'clear',icon:'icon ri-brush-3-line',show:false},
search:{type:'search',icon:'icon ri-search-line',show:true},
screen:{type:'screen',icon:'icon ri-filter-2-fill',show:false},
sort:{type:'sort',icon:'icon ri-arrow-up-down-fill',show:true},
user:{type:'user',icon:'',show:true}
}
},
ParamDataInit:{
appid:'',
keyword:'',
asc: "desc",
order: 1,
page: 1,
classify:'',
tag:'',
color:'',
link:'',
desc:'',
duration:'',
wsize:'',
hsize:'',
ext:'',
shape:'',
shapesize:'',
grade:'',
btime:'',
dateline:'',
mtime:''
},
ParamData:{},
ParamBasic:{
page: 1,
perpage: 50,
total: 0,
totalpage:0,
},
ParamLibrary:{
activeId:'',
data:$apps || [],
fdata:[]
},
});
},
watch: $.extend({},ImagesWatchJs,{
}),
computed: {
},
created() {
var pagesetting = $pagesetting;
console.log(pagesetting)
if(pagesetting){
var show = [];
<!--{if $_G[uid]}-->
if(pagesetting.show){
show = pagesetting.show.split(',');
}
<!--{else}-->
var fshow = sessionStorage.getItem('InformationShow');
if(fshow){
show = fshow.split(',');
}else{
if(pagesetting.show){
show = pagesetting.show.split(',');
}
}
<!--{/if}-->
<!--{if $_G[uid]}-->
var other = pagesetting.other;
var Layout = pagesetting.layout;
var order = parseInt(pagesetting.sort);
var asc = pagesetting.desc;
<!--{else}-->
var other = sessionStorage.getItem('InformationOther');
if(!other){
other = pagesetting.other;
}
var Layout = sessionStorage.getItem('Layout');
if(!Layout){
Layout = pagesetting.layout;
}
var order = sessionStorage.getItem('order');
if(!order){
order = parseInt(pagesetting.sort);
}
var asc = sessionStorage.getItem('asc');
if(!asc){
asc = pagesetting.desc;
}
<!--{/if}-->
this.ParamSort.showinformation.value = show;
this.ParamSort.otherinformation.value = other || 'btime';
this.ParamSort.layout.value = Layout || 'waterFall';
this.ParamSort.Sorttype.value = order || 1;
this.ParamSort.sortorder.value = asc || 'desc';
this.ParamDataInit.order = order || 1;
this.ParamDataInit.asc = asc || 'desc';
}
this.StartData();
},
methods:$.extend({},CommonJs,SearchJs,MyJs,ScreenJs,SortJs,ImagesJs,{
StartData(){
this.CommonLibrary();
},
ChangeLibrary(val){//库改变
if(val){
window.location.hash = '#appid='+val;
}else{
window.location.hash = '';
}
window.location.reload();
},
handleFooterClick(type){
if(type == 'search'){
this.ParamSearch.PopupVisible = true;
}else if(type == 'screen'){
this.ParamScreen.PopupVisible = true;
}else if(type == 'sort'){
this.ParamSort.PopupVisible = true;
}else if(type == 'clear'){
this.ParamSearch.keyword = '';
this.ScreenReset();
this.CommonSetFooterBadge();
this.CommonhandleHash();
}
}
}),
mounted() {
this.ImagesMounted();
// this.DetailMounted();
}
});
</script>

View File

@@ -0,0 +1,100 @@
<van-popup v-model="MyPopupVisible" class="my-popup" position="right">
<van-nav-bar title="我的设置" left-arrow @click-left="MyNavbarLeftClick"></van-nav-bar>
<div class="scroll-box">
<van-cell-group>
<!--{if $_G[uid]}-->
<van-cell clickable title="个人设置" is-link @click="MyClick('person')"></van-cell>
<!--{/if}-->
<van-cell clickable title="帮助文档" @click="MyClick('help')">
<template #right-icon>
<i class="ri-arrow-right-up-line"></i>
</template>
</van-cell>
<van-cell clickable title="问题反馈" @click="MyClick('question')">
<template #right-icon>
<i class="ri-arrow-right-up-line"></i>
</template>
</van-cell>
<van-cell clickable title="关于PicHome" is-link @click="MyClick('about')"></van-cell>
<!--{if $_G[uid]}-->
<van-cell clickable title="退出登录" @click="MyClick('out')">
<template #right-icon>
<i class="ri-logout-box-r-line"></i>
</template>
</van-cell>
<!--{else}-->
<van-cell clickable title="登录PicHome" @click="MyClick('login')" is-link></van-cell>
<!--{/if}-->
</van-cell-group>
</div>
</van-popup>
<van-popup v-model="AboutPopupVisible" class="about-popup" position="right">
<van-nav-bar title="关于PicHome" left-arrow @click-left="AboutNavbarLeftClick"></van-nav-bar>
<div class="scroll-box">
<div class="aboutlogo">
<img src="dzz/pichome/image/phlogo.png" alt="">
</div>
<div class="aboutmessage">
<div class="aboutlist">
<span class="title">软件名称:</span><span class="mes">欧奥PicHome</span>
</div>
<div class="aboutlist">
<span class="title">版本信息:</span><span class="mes">$_G[setting][version]</span>
</div>
<div class="aboutlist">
<span class="title">版权信息:</span><span class="mes">Powered By oaooa PicHome © 2020-2021 欧奥图文</span>
</div>
<div class="aboutlist">
<span class="title">网站地址:</span><span class="mes"><a class="address" href="https://oaooa.com/" target="_blank">oaooa.com</a></span>
</div>
</div>
</div>
</van-popup>
<script type="text/javascript">
var MyData = {
MyPopupVisible:false,
AboutPopupVisible:false,
};
var MyJs = {
MyNavbarLeftClick(){
this.MyPopupVisible = false;
},
AboutNavbarLeftClick(){
this.AboutPopupVisible = false;
},
MyClick(type){
var self = this;
switch(type){
case 'person':
window.location.href = MOD_URL + '&op=user&do=personal';
break;
case 'help':
window.location.href = "https://www.yuque.com/pichome";
break;
case 'question':
window.location.href = "https://support.qq.com/products/340252";
break;
case 'about':
this.AboutPopupVisible = true;
break;
case 'out':
self.$dialog.confirm({
title: '提示',
message: '您确定要注销登录?',
}).then(() => {
// on confirm
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
window.location.reload();
});
}).catch(() => {
// on cancel
});
break;
case 'login':
window.location.href = SITEURL+'user.php?mod=login';
break;
}
}
};
</script>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,161 @@
<van-popup class="seasrch-popup footer-popup" v-model="ParamSearch.PopupVisible" round position="bottom" :style="{ height: '90%' }" @open="SearchPopupOpen" @close="SearchPopupClose">
<div class="vam-popup-title" @click="ParamSearch.PopupVisible=false">搜索</div>
<div class="van-search-box">
<van-search class="popup-search-input" v-model.trim="ParamSearch.keyword" shape="round" placeholder="输入关键词" @input="SearchInputKeyword" maxlength="50" :clearable="false">
<template #right-icon>
<van-icon v-show="ParamSearch.keyword" @click="SearchClearKeyword" name="cross" />
</template>
</van-search>
</div>
<div class="search-val-box">
<template v-if="ParamSearch.keyword">
<template v-if="ParamSearch.likeloading">
<van-loading class="custom-load" size="24px" type="spinner" color="var(--color-primary)" vertical>加载中...</van-loading>
</template>
<template v-else>
<van-list>
<van-cell v-for="(item,index) in ParamSearch.likedata" :key="index" @click="SearchClickLike(item.text)">
<template #title>
<div v-html="item.highlight"></div>
</template>
</van-cell>
</van-list>
</template>
</template>
<template v-else>
<template v-if="ParamSearch.hostloading">
<van-loading class="custom-load" size="24px" type="spinner" color="var(--color-primary)" vertical>加载中...</van-loading>
</template>
<template v-else>
<div class="search-host">
<div class="search-host-list" v-for="item in ParamSearch.hostdata" :style="{backgroundImage: 'url('+item.icondata+')'}" @click="SearchClickLike(item.keyword)">
<div class="bg"></div>
<div class="text">{{item.keyword}}</div>
</div>
</div>
</template>
</template>
</div>
<div class="btn-bottom">
<van-row gutter="20">
<van-col span="12" style="text-align: center;">
<van-button round plain type="primary" size="large" @click="SearchClearKeyword">重置</van-button>
</van-col>
<van-col span="12" style="text-align: center;">
<van-button round type="info" size="large" @click="SearchConfirmval">确定</van-button>
</van-col>
</van-row>
</div>
</van-popup>
<script type="text/javascript">
var SearchData = {
ParamSearch:{
PopupVisible:false,
keyword: '',
keywordDefault:'',
hostloading:true,
hostdata:[],
likeloading:true,
likedata:[]
}
};
var SearchJs = {
SearchPopupOpen() {
var self = this;
if(self.ParamSearch.keyword){
self.SearchLikeword();
}else{
self.SearchHottag();
}
self.ParamSearch.keywordDefault = self.ParamSearch.keyword;
},
SearchPopupClose(){
var self = this;
if(self.ParamSearch.keywordDefault == self.ParamSearch.keyword){
return false;
}
self.CommonhandleHash();
self.CommonAddkeyword(self.ParamSearch.keyword,0);
},
SearchClearKeyword(){
this.ParamSearch.keyword = '';
if(this.ParamSearch.hostloading){
this.SearchHottag();
}
},
SearchInputKeyword(val){
if(val){
this.SearchLikeword();
}else{
if(this.ParamSearch.hostloading){
this.SearchHottag();
}
}
},
SearchConfirmval(){
this.ParamSearch.PopupVisible = false;
},
SearchHottag(){
var self = this;
self.ParamSearch.hostloading = true;
$.post(MOD_URL+'&op=ajax&operation=getsearchtag',{
appid:self.ParamLibrary.activeId
},function(data){
self.ParamSearch.hostdata = data.hottags?data.hottags:[];
self.ParamSearch.hostloading = false;
},'json');
},
SearchLikeword(){
var self = this;
this.ParamSearch.likeloading = true;
$.post(MOD_URL+'&op=ajax&operation=likewords',{
keyword:self.ParamSearch.keyword,
appid:self.ParamLibrary.activeId
},function(data){
self.ParamSearch.likedata = [];
if(data && data.likewords){
for(var i in data.likewords){
var text = data.likewords[i];
var highlight = self.SearchHighlight(text,self.ParamSearch.keyword);
self.ParamSearch.likedata.push({
text:text,
highlight:highlight
});
}
}
self.ParamSearch.likeloading = false;
},'json');
},
SearchHighlight(text,words){
// 默认的标签如果没有指定使用span
var i, len = words.length,
re;
//匹配每一个特殊字符 ,进行转义
var specialStr = ["*", ".", "?", "+", "$", "^", "[", "]", "{", "}", "|", "\\", "(", ")", "/", "%"];
$.each(specialStr, function(i, item) {
if(words.indexOf(item) != -1) {
words = words.replace(new RegExp("\\" + item, 'g'), "\\" + item);
}
});
//匹配整个关键词
re = new RegExp(words, 'g');
if(re.test(text)) {
text = text.replace(re, '<span class="highlight">$&</span>');
}
return text;
},
SearchClickLike(val){
var self = this;
if(self.ParamSearch.keyword != val){
self.ParamSearch.keyword = val;
self.ParamSearch.PopupVisible = false;
}
}
};
</script>

View File

@@ -0,0 +1,270 @@
<van-popup class="sort-popup footer-popup" v-model="ParamSort.PopupVisible" round position="bottom" style="height: 90%;padding-top: 10px;" @open="sortpopupopen">
<div class="vam-popup-title" v-if="ParamSort.data[ParamSort.labelActive]" @click="SortPopupTitleClick">{{ParamSort.data[ParamSort.labelActive].text}}</div>
<van-tree-select
height="100%"
:items="ParamSort.data"
:main-active-index.sync="ParamSort.labelActive">
<template #content>
<template v-if="ParamSort.data[ParamSort.labelActive]['type'] == 'showinformation'">
<div class="screen-item" style="padding: 0;">
<van-checkbox-group v-model="ParamSort.showinformation.value" @change="SortShowinformationChange">
<van-cell-group>
<van-cell v-for="(item,index) in ParamSort.showinformation.data" clickable :title="item.val" @click="SortShowinformationClick(index)">
<template #right-icon>
<van-checkbox shape="square" :name="item.key" ref="showinformation" />
</template>
</van-cell>
</van-cell-group>
</van-checkbox-group>
</div>
</template>
<template v-if="ParamSort.data[ParamSort.labelActive]['type'] == 'otherinformation'">
<div class="screen-item" style="padding: 0;">
<van-radio-group v-model="ParamSort.otherinformation.value">
<van-cell-group>
<van-cell v-for="item in ParamSort.otherinformation.data" :title="item.val" clickable @click="SortotherinformationChange(item.key)">
<template #right-icon>
<van-radio :name="item.key"></van-radio>
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
</template>
<template v-if="ParamSort.data[ParamSort.labelActive]['type'] == 'Sorttype'">
<div class="screen-item" style="padding: 0;">
<van-radio-group v-model="ParamSort.Sorttype.value">
<van-cell-group>
<van-cell v-for="item in ParamSort.Sorttype.data" :title="item.val" clickable @click="SortSorttypeChange (item.key)">
<template #right-icon>
<van-radio :name="item.key"></van-radio>
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
</template>
<template v-if="ParamSort.data[ParamSort.labelActive]['type'] == 'sortorder'">
<div class="screen-item" style="padding: 0;">
<van-radio-group v-model="ParamSort.sortorder.value">
<van-cell-group>
<van-cell v-for="item in ParamSort.sortorder.data" :title="item.val" clickable @click="SortsortorderChange(item.key)">
<template #right-icon>
<van-radio :name="item.key"></van-radio>
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
</template>
<template v-if="ParamSort.data[ParamSort.labelActive]['type'] == 'layout'">
<div class="screen-item" style="padding: 0;">
<van-radio-group v-model="ParamSort.layout.value">
<van-cell-group>
<van-cell v-for="item in ParamSort.layout.data" :title="item.val" clickable @click="SortlayoutChange(item.key)">
<template #right-icon>
<van-radio :name="item.key"></van-radio>
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
</template>
</template>
</van-tree-select>
<div class="btn-bottom">
<van-row>
<van-col span="24" style="text-align: center;">
<van-button round plain type="primary" size="large" @click="ParamSort.PopupVisible=false">关闭</van-button>
</van-col>
</van-row>
</div>
</van-popup>
<script type="text/javascript">
var SortData = {
ParamSort:{
PopupVisible:false,
labelActive:0,
data:[
{text:'显示信息',type:'showinformation'},
{text:'排序类型',type:'Sorttype'},
{text:'排序方式',type:'sortorder'},
{text:'布局',type:'layout',},
],
showinformation:{
value:[],
data:[{key:'name',val:'名称'},
{key:'tagging',val:'标注数'},
{key:'extension',val:'扩展名'},
{key:'other',val:'其它信息'}]
},
otherinformation:{
value:'btime',
data:[{key:'size',val:'尺寸'},
{key:'filesize',val:'文件大小'},
{key:'tag',val:'标签'},
{key:'grade',val:'评分'},
{key:'btime',val:'添加时间'},
{key:'dateline',val:'修改时间'},
{key:'mtime',val:'创建日期'}]
},
Sorttype:{
value:1,
data:[{key:1,val:'添加时间',field:'btime'},
{key:3,val:'修改时间',field:'dateline'},
{key:2,val:'创建日期',field:'mtime'},
{key:4,val:'标题',field:'name'},
{key:8,val:'文件大小',field:'filesize'},
{key:5,val:'尺寸',field:'size'},
{key:6,val:'评分',field:'grade'},
{key:7,val:'时长',field:'duration'}]
},
sortorder:{
value:'desc',
data:[{key:'desc',val:'降序'},{key:'asc',val:'升序'}]
},
layout:{
value:'waterFall',
data:[{key:'waterFall',val:'瀑布流'},{key:'rowGrid',val:'自适应'},{key:'imageList',val:'网格'}]
},
}
};
var SortJs = {
sortpopupopen(){
if(this.ParamSort.showinformation.value.indexOf('other')>-1){
var status = true;
for(var i in this.ParamSort.data){
var item = this.ParamSort.data[i];
if(item.type == 'otherinformation'){
status = false;
}
}
if(status){
var str = {text:'其它信息',type:'otherinformation'};
this.ParamSort.data.splice(1,0,str);
}
}
},
SortPopupTitleClick(){
this.ParamSort.PopupVisible = false;
},
SortShowinformationClick(index){
var self = this;
self.$refs.showinformation[index].toggle();
},
SortShowinformationChange(val){
if(val.indexOf('other')>-1){
var status = true;
for(var i in this.ParamSort.data){
var item = this.ParamSort.data[i];
if(item.type == 'otherinformation'){
status = false;
}
}
if(status){
var str = {text:'其它信息',type:'otherinformation'};
this.ParamSort.data.splice(1,0,str);
}
}else{
if(this.ParamSort.data.length==5){
this.ParamSort.data.splice(1,1);
}
}
this.ParamImages.type = 'refresh';
this.ImagesLayoutInit();
<!--{if $_G[uid]}-->
this.SortSaveinformation();
<!--{else}-->
sessionStorage.setItem('InformationShow',val.join(','));
<!--{/if}-->
},
SortotherinformationChange(val){
this.ParamSort.otherinformation.value = val;
<!--{if $_G[uid]}-->
this.SortSaveinformation();
<!--{else}-->
sessionStorage.setItem('InformationOther',val);
<!--{/if}-->
},
SortSorttypeChange(val){
if(val != this.ParamSort.Sorttype.value){
this.ParamSort.Sorttype.value = val;
this.CommonhandleHash();
<!--{if $_G[uid]}-->
this.SortSaveSorttype();
<!--{else}-->
sessionStorage.setItem('order',val);
<!--{/if}-->
}
},
SortsortorderChange(val){
if(val != this.ParamSort.sortorder.value){
this.ParamSort.sortorder.value = val;
this.CommonhandleHash();
<!--{if $_G[uid]}-->
this.SortSaveSorttype();
<!--{else}-->
sessionStorage.setItem('asc',val);
<!--{/if}-->
}
},
SortSaveSorttype(){//保存排序方式
var self = this;
var sortfiles = '';
for(var x in self.ParamSort.Sorttype.data){
var item = self.ParamSort.Sorttype.data[x];
if(item.key == parseInt(self.ParamSort.Sorttype.value)){
sortfiles = item.field;
}
}
var param = {
sortfiled:sortfiles,
sort:self.ParamSort.sortorder.value
};
$.post(MOD_URL+'&op=ajax&operation=setsort',param,function(json){
if(json.success){
}else{
self.$toast.fail('排序数据保存失败')
}
},'json');
},
SortSaveinformation(){//保存显示信息
var self = this;
var param = {
showfileds:self.ParamSort.showinformation.value.join(','),
other:self.ParamSort.otherinformation.value
};
$.post(MOD_URL+'&op=ajax&operation=setshow',param,function(json){
if(json.success){
}else{
self.$toast.fail('显示信息数据保存失败')
}
},'json')
},
SortlayoutChange(val){
this.ParamSort.layout.value = val;
this.ParamImages.type = 'refresh';
this.ImagesLayoutInit();
<!--{if $_G[uid]}-->
$.post('{MOD_URL}&op=ajax&operation=setlayout',{
layout:val
},function(json){
if(json.success){
}else{
self.$toast.fail('布局数据保存失败')
}
},'json');
<!--{else}-->
sessionStorage.setItem('Layout',val);
<!--{/if}-->
}
};
</script>

View File

@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title><!--{if !empty($navtitle)}-->$navtitle - <!--{/if}-->$_G[setting][sitename] </title>
<meta name="keywords" content="{if !empty($_G[setting][metakeywords])}{echo htmlspecialchars($_G[setting][metakeywords])}{/if}" />
<meta name="description" content="{if !empty($_G[setting][metadescription])}{echo htmlspecialchars($_G[setting][metadescription])} {/if}" />
<meta name="generator" content="oaooa" />
<meta name="author" content="oaooa" />
<meta name="copyright" content="2012-{eval echo dgmdate(TIMESTAMP,'Y-m-d');} www.oaooa.com" />
<meta name="MSSmartTagsPreventParsing" content="True" />
<meta http-equiv="MSThemeCompatible" content="Yes" />
<meta name="renderer" content="webkit">
<base href="{$_G['siteurl']}" />
<script src="{MOD_PATH}/js/vue/vue.js?{VERHASH}"></script>
<link rel="stylesheet" href="{MOD_PATH}/css/theme/$theme/root.css?{VERHASH}">
<link rel="stylesheet" href="{MOD_PATH}/js/mobile/plug/vant/index.css?{VERHASH}">
<link rel="stylesheet" href="{MOD_PATH}/css/mobile/common.css?{VERHASH}">
<script type="text/javascript" src="{MOD_PATH}/js/mobile/plug/vant/vant.min.js?{VERHASH}"></script>
<script type="text/javascript" src="static/jquery/jquery.min.js?{VERHASH}"></script>
<script type="text/javascript" src="static/jquery/jquery.json-2.4.min.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/common.js?{VERHASH}"></script>
<link rel="stylesheet" href="{MOD_PATH}/css/fonts/remixicon.css?{VERHASH}">
<script type="text/javascript">var DZZSCRIPT='{DZZSCRIPT}',LANG='{$_G[language]}', STATICURL = 'static/', IMGDIR = '{$_G[setting][imgdir]}', VERHASH = '{VERHASH}', charset = '{CHARSET}', dzz_uid = '$_G[uid]', cookiepre = '{$_G[config][cookie][cookiepre]}', cookiedomain = '{$_G[config][cookie][cookiedomain]}', cookiepath = '{$_G[config][cookie][cookiepath]}',attackevasive = '{$_G[config][security][attackevasive]}', disallowfloat = '{$_G[setting][disallowfloat]}', REPORTURL = '$_G[currenturl_encode]', SITEURL = '$_G[siteurl]', JSPATH = '$_G[setting][jspath]',MOD_PATH='{MOD_PATH}',APP_URL='{MOD_URL}',MOD_URL='{MOD_URL}';</script>

View File

@@ -0,0 +1,593 @@
<!--{template mobile/frame/header_simple_start}-->
<script src="{MOD_PATH}/js/mobile/pinchzoom.js?{VERHASH}" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/details.css?{VERHASH}" />
<!--{template mobile/frame/header_simple_end}-->
<div id="dzzoffice">
<div
id="DetailPopup"
class="detail-popup"
:class="{'NotFooter':showdata[rid]&&!showdata[rid].data.footer,'full':full}"
@touchstart="DetailPageTouchStart"
@touchmove="DetailPageTouchMove"
@touchend="DetailPageTouchEnd">
<!--{template mobile/components/index/JsDetailMessage}-->
<van-nav-bar class="header-top" :title="rids.indexOf(rid)+1+'/'+rids.length">
<template #left>
<div style="width: 25px;text-align: center;height: 25px;line-height: 25px;" @click.stop="DetailNavbarLeftClick">
<van-icon name="arrow-left" size="18" />
</div>
</template>
<template #right>
<div style="width: 25px;text-align: center;height: 25px;line-height: 25px;" @click.stop="InformationPopup=true">
<van-icon name="warning-o" size="18" />
</div>
</template>
</van-nav-bar>
<div class="detail-popup-translate" ref="detail_popup_translate" @click="DetailImageFulloverlay">
<div
class="detail-popup-content"
v-for="item in showdata"
:class="{'prev':item.type=='left','next':item.type=='right','center':item.type=='center','opacity':item.loading}"
:key="item.data.opentype!='video'?item.data.rid:''"
:ref="'Detail_'+item.data.rid">
<template v-if="item.loading">
<van-loading class="custom-load" size="24px" type="spinner" color="var(--header-text)" vertical>加载中...</van-loading>
</template>
<template v-else>
<div class="detail-popup-img">
<template v-if="item.data.opentype=='video'">
<div class="video-box" :style="{'height':item.data.fheight+'px'}">
<iframe
style="border: 0px;"
:src="'index.php?mod=xgplayer&src='+item.data.realpath"
width="100%"
height="100%"></iframe>
</div>
</template>
<template v-else-if="item.data.opentype=='pdf'">
<iframe
style="border: 0px;"
:src="'index.php?mod=pdf&src='+item.data.realpath"
width="100%"
height="100%"></iframe>
</template>
<template v-else-if="item.data.opentype=='text'">
<div style="padding: 10px;height: 100%;">
<iframe
style="border: 0px;border-radius: 18px;"
:src="'index.php?mod=textviewer&src='+item.data.realpath"
width="100%"
height="100%"></iframe>
</div>
</template>
<template v-else-if="item.data.opentype=='other'">
<div class="img-box" :ref="'BoxImg_'+item.data.rid">
<img
@load="DetailImgload"
:src="item.data.icondata"
:data-rid="item.data.rid"
class="image-viewer__img" />
</div>
</template>
<template v-else>
<div class="img-box" :ref="'BoxImg_'+item.data.rid">
<img :src="item.data.icondata" class="image-viewer__img thumbnail" />
<img
@load="DetailImgload"
:data-rid="item.data.rid"
:src="item.data.realpath"
class="image-viewer__img opacity" />
</div>
</template>
</div>
</template>
</div>
</div>
<div class="footer-tabbar" v-if="showdata[rid] && showdata[rid].data.footer">
<div class="footer-tabbar-item" v-if="showdata[rid].data.link" @click="DetailFooterClick('link')">
<i class="ri-links-line"></i>
</div>
<div class="footer-tabbar-item" v-if="showdata[rid].data.download" @click="DetailFooterClick('download')">
<i class="ri-download-2-line"></i>
</div>
<div class="footer-tabbar-item" v-if="showdata[rid].data.share" @click="DetailFooterClick('share')">
<i class="ri-share-line"></i>
</div>
</div>
</div>
<script type="text/javascript">
new Vue({
el: '#dzzoffice',
data: function() {
return {
rids:[],
rid:'',
ridIndex:0,
dataList:{},
showdata:{},
showdataIndex:[],
PinchZoom:{},
TouchPage:{
clickX:0,
distance:0,
move:true
},
TouchImg:{
move:false,
},
full:false,
InformationPopup:false
};
},
watch:{
full:{
handler(val){
var self = this;
for(var i in this.PinchZoom){
var item = this.PinchZoom[i];
if(val){
item.enable();
}else{
item.disable();
}
}
self.$nextTick(function(){
var boxH = $('.detail-popup-content').height();
$('.img-box').height(boxH);
})
},
deep:true
},
showdata:{
handler(val){
var self = this;
self.$nextTick(function(){
for(var i in val){
var item = val[i];
var rid = item.data.rid;
if(!item.loading && (item.data.opentype == 'image' || item.data.opentype == 'other')){
if(self.PinchZoom[rid]){
if(!self.full){
self.PinchZoom[rid].disable()
}
}else{
if(self.$refs['BoxImg_'+rid]){
var dom = $(self.$refs['BoxImg_'+rid][0]);
dom.height($('.detail-popup-content').height());
self.PinchZoom[rid] = new PinchZoom(self.$refs['BoxImg_'+rid][0]);
if(!self.full){
self.PinchZoom[rid].disable()
}
}
}
}
}
})
},
deep:true,
},
},
computed: {
},
created() {
var arr = (location.hash || "").replace(/^\?/,'').split("&");
if(arr.length){
rid=arr[0].replace("#","").split('=')[1];
this.rid = rid;
}
var rids = window.localStorage.getItem('imgs');
if(rids && rids.indexOf(this.rid)>-1){
this.rids = rids.split(',');
}
this.handleRidsOrder();
},
methods:{
DetailImgload(event){
var self = this;
$(event.target).removeClass('opacity').siblings('.thumbnail').remove();
},
DetailImageFulloverlay(){
if(this.full){
if(this.PinchZoom[this.rid]){
if(this.PinchZoom[this.rid].zoomFactor>1){
}else{
this.full = false;
}
}else{
this.full = false;
}
}else{
this.full = true;
}
},
DetailPageTouchStart(event){
var self = this;
if(self.showdata[self.rid].loading || self.TouchImg.move || self.InformationPopup){
self.TouchPage.move = false;
return false;
}
self.TouchPage.clickX = event.touches[0].pageX;
self.TouchPage.distance = 0;
self.TouchPage.move = true;
},
DetailPageTouchMove(event){
var self = this;
if(self.showdata[self.rid].loading || self.TouchImg.move || self.InformationPopup){
self.TouchPage.move = false;
return false;
}
event.preventDefault();
var sectouch = event.touches[0];
self.TouchPage.distance = sectouch.pageX - self.TouchPage.clickX;
var Index = self.showdataIndex.indexOf(self.rid);
if(self.TouchPage.distance>0){
if(self.ridIndex == 0){
self.$toast('已经是第一张');
self.TouchPage.move = false;
return false;
}
var firstrid = self.showdataIndex[Index-1];
if(self.showdata[firstrid] && self.showdata[firstrid].loading){
self.TouchPage.move = false;
return false;
}
}
if(self.TouchPage.distance<0){
if(self.ridIndex == self.rids.length-1){
self.$toast('已经是最后一张');
self.TouchPage.move = false;
return false;
}
var tworid = self.showdataIndex[Index+1];
if(self.showdata[tworid] && self.showdata[tworid].loading){
self.TouchPage.move = false;
return false;
}
}
self.TouchPage.move = true;
$(self.$refs['detail_popup_translate']).css("transform","translate3d("+self.TouchPage.distance+"px,0,0)");
},
DetailPageTouchEnd(event){
var self = this;
if(!self.TouchPage.move || self.InformationPopup){
return false;
}
var dom = self.$refs['detail_popup_translate'];
var screenWidth = document.body.clientWidth+10;
$(dom).css("transition","transform 0.2s cubic-bezier(0,0,0.4,1) 0s,-webkit-transform 0.2s");
if(Math.abs(self.TouchPage.distance)>100){
var Index = self.showdataIndex.indexOf(self.rid);
if(self.TouchPage.distance>0){
$(self.$refs['detail_popup_translate']).css("transform","translate3d("+(screenWidth)+"px,0,0)");
self.rid = self.showdataIndex[Index-1];
self.ridIndex -= 1;
}else{
self.rid = self.showdataIndex[Index+1];
self.ridIndex += 1;
$(dom).css("transform","translate3d("+(-screenWidth)+"px,0,0)");
}
setTimeout(function(){
$(dom).css({
transform:"none",
transition:''
});
self.handleRidsOrder();
},300);
}else{
$(dom).css("transform","translate3d(0,0,0)");
setTimeout(function(){
$(dom).css({
transform:"none",
transition:''
});
},300);
}
},
handleRidsOrder(){
var self = this;
var str = {};
var index = self.rids.indexOf(self.rid);
// var Oldshowdata = JSON.parse(JSON.stringify(self.showdata));
var NewShowData = {};
var showdataIndex = [];
self.ridIndex = index;
showdataIndex = [self.rid];
// self.showdata = {};
if(self.dataList[self.rid]){
NewShowData[self.rid] = {
type:'center',
loading:false,
data:self.dataList[self.rid]
};
}else{
NewShowData[self.rid] = {
type:'center',
loading:true,
data:{}
};
}
if(self.rids[index-1]){
var first = self.rids[index-1];
showdataIndex.unshift(first);
if(self.dataList[first]){
NewShowData[first] = {
type:'left',
loading:false,
data:self.dataList[first]
};
}else{
NewShowData[first] = {
type:'left',
loading:true,
data:{}
};
}
}
if(self.rids[index+1]){
var two = self.rids[index+1];
showdataIndex.push(two);
if(self.dataList[two]){
NewShowData[two] = {
type:'right',
loading:false,
data:self.dataList[two]
};
}else{
NewShowData[two] = {
type:'right',
loading:true,
data:{}
};
}
}
self.showdataIndex = showdataIndex;
self.showdata = NewShowData;
var dels = [];
for(var s in self.PinchZoom){
if(showdataIndex.indexOf(s)<0){
dels.push(s)
}
}
if(dels.length){
for(var h in dels){
if(self.PinchZoom[h]){
delete self.PinchZoom[h];
}
}
}
for(var i in NewShowData){
if(NewShowData[i].loading){
this.GetData(i);
}
}
},
GetData(rid){
var self = this;
$.post(MOD_URL+'&op=details&operation=fetch',{
rid:rid
},function(json){
var item = json.resourcesdata;
// document.title = item.name+'-$_G[setting][sitename]';
var colors = [];
if(item.colors){
for(var c in item.colors){
colors.push(item.colors[c]);
}
}
item.colors = colors;
var tags = [];
if(item.tag){
for(var t in item.tag){
var tstr = {
key:t,
val:item.tag[t]
};
tags.push(tstr);
}
}
item.tag = tags;
var foldernames = [];
if(item.foldernames){
for(var f in item.foldernames){
var fstr = {
key:f,
val:item.foldernames[f]
};
foldernames.push(fstr);
}
}
item.foldernames = foldernames;
item.download = parseInt(item.download);
item.share = parseInt(item.share);
if(item.link || item.share || item.download){
item['footer'] = true;
}else{
item['footer'] = false;
}
// if(item.opentype == 'other' || item.opentype == 'image'){
// var size = self.DetailImgSize(item);
// item['width'] = size['width'];
// item['height'] = size['height'];
// item['left'] = size['left'];
// item['top'] = size['top'];
// }
if(item.opentype == 'video'){
var boxW = document.body.clientWidth;
var ra = boxW/parseFloat(item['width'])
item['fwidth'] = boxW;
item['fheight'] = ra*parseFloat(item['height']);
}
self.showdata[rid].loading = false;
self.showdata[rid].data = item;
self.dataList[item.rid] = item;
self.$forceUpdate();
},'json');
},
DetailImgSize(item){
var str = {
width:0,
height:0,
left:0,
top:0
};
var boxW = document.body.clientWidth;
var boxH = document.body.clientHeight
if(!this.full){
if(item.footer){
boxH -= 106;
}
}
var imgW = parseFloat(item.width);
var imgH = parseFloat(item.height);
var ra1 = boxW/boxH;
var ra2 = imgW/imgH;
if(ra2 > ra1){
if(imgW>boxW){
str.width = boxW;
var ratio = boxW/imgW;
str.height = ratio*imgH;
}else{
str.width = imgW;
str.height = imgH;
}
}else{
if(imgH>boxH){
str.height = boxH;
var ratio = boxH/imgH;
str.width = ratio*imgW;
}else{
str.width = imgW;
str.height = imgH;
}
}
str.left = (boxW-str.width)/2;
str.top = (boxH-str.height)/2;
return str;
},
DetailFooterClick(type){
var self = this;
var rid = self.rid;
if(!self.showdata[rid]){
self.$toast({
message: '参数错误',
icon: 'cross',
});
return false;
}
if(type == 'link'){
window.open(self.showdata[rid].data.link);
return false;
}
if(type == 'download'){
if (self.showdata[rid].data.dpath) {
window.open(SITEURL + MOD_URL + '&op=download&dpath=' + self.showdata[rid].data.dpath)
} else {
self.$toast({
message: '数据错误',
icon: 'cross',
});
}
return false;
}
if(type == 'share'){
if (self.showdata[rid].data.rid) {
$.post('{MOD_URL}&op=ajax&operation=createshare', {
rid: rid
}, function(data) {
if (data.success) {
self.$dialog.confirm({
title: '分享成功',
message: data.success,
confirmButtonText:'复制地址',
cancelButtonText:'关闭'
}).then(() => {
self.CommonCopyTxt(data.success);
}).catch(() => {
// on cancel
});
} else {
self.$toast({
message: '分享失败',
icon: 'cross',
});
}
}, 'json')
} else {
self.$toast({
message: '数据错误',
icon: 'cross',
});
}
}
},
DetailMessageSearch(type,val){
var self = this;
var item = self.showdata[self.rid].data;
switch(type){
case 'color':
window.location.href = SITEURL+'#appid=' + item.appid + '&color=#' + val;
// window.location.reload();
break;
case 'tag':
window.location.href = SITEURL+'#appid=' + item.appid + '&tag=' + val;
// window.location.reload();
break;
case 'link':
window.open(val);
break;
case 'classify':
window.location.href = SITEURL+'#appid=' + item.appid + '&classify=' + val;
// window.location.reload();
break;
case 'copy':
self.CommonCopyTxt(val);
break;
}
},
DetailNavbarLeftClick(){
window.history.go(-1);
},
CommonCopyTxt(text){
var self = this;
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
input.setAttribute('value', text);
document.getElementsByTagName('body')[0].appendChild(input);
document.getElementById('copyInput').select();
document.execCommand('copy');
document.getElementById('copyInput').remove();
self.$toast.success('复制成功');
}
},
mounted() {
}
});
</script>
<!--{template mobile/frame/footer_simple}-->

View File

@@ -0,0 +1,7 @@
<!--{template mobile/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/index.css?{VERHASH}" />
<!--{template mobile/frame/header_simple_end}-->
<div id="dzzoffice">
<!--{template mobile/components/index/JsIndex}-->
</div>
<!--{template mobile/frame/footer_simple}-->

View File

@@ -0,0 +1,163 @@
<!--{template mobile/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/personal.css?{VERHASH}" />
<!--{template mobile/frame/header_simple_end}-->
<div id="dzzoffice">
<van-nav-bar title="个人设置" left-arrow @click-left="NavbarLeftClick"></van-nav-bar>
<div class="scroll-box">
<van-form @submit="handleSubmit">
<div style="text-align: center;">
<div>
<van-image
width="100px"
height="100px"
fit="contain"
:src="avatarstatus&&ruleForm.imgpath?ruleForm.imgpath:'avatar.php?uid=1&random='+Math.ceil(Math.random()*100)">
<template v-slot:default >
<template v-if="parseInt(avatarstatus)==0">
<van-icon class="not-img" name="photograph" />
</template>
</template>
</van-image>
</div>
<van-uploader
:after-read="ImageafterRead"
:max-size="1024*1024*2"
@oversize="ImageOversize"
accept="image/png,image/jpg,image/jpeg,image/gif">
<van-button type="primary" size="small">修改头像</van-button>
</van-uploader>
</div>
<van-field
v-model.trim="ruleForm.email"
type="email"
required
:rules="[{ required: true, message: '请填写邮箱' }]">
<template #label>
邮箱:<span class="tip">(用于登录)</span>
</template>
</van-field>
<van-field
v-model.trim="ruleForm.nickname"
required
:rules="[{ required: true, message: '请填写用户名' }]">
<template #label>
用户名:<span class="tip">(用于登录,站点中不显示)</span>
</template>
</van-field>
<van-field
v-model.trim="ruleForm.username"
required
:rules="[{ required: true, message: '请填写姓名' }]">
<template #label>
姓名:<span class="tip">(用于登录,站点中不显示)</span>
</template>
</van-field>
<van-field v-model.number="ruleForm.phone" type="tel" label="手机号:"></van-field>
<van-field v-model.trim="ruleForm.weixinid" label="微信号:"></van-field>
<van-field v-model.trim="ruleForm.password" label="新密码:"></van-field>
<van-field style="overflow: unset;" v-model.trim="ruleForm.password2" label="确认新密码:" :error-message="passwordMessage"></van-field>
<div class="van-cell van-field">
<div>主题色</div>
<ul class="thems">
<li class="thems-item" v-for="item in themes">
<div class="bg" :style="item.color" :class="item.val==ruleForm.themecolor?'active':''" @click="handleChangeThemes(item.val)">
<van-icon name="success" />
</div>
</li>
</ul>
</div>
<div class="footer">
<van-button round type="info" size="large" native-type="submit">提交</van-button>
</div>
</van-form>
</div>
</div>
<script type="text/javascript">
new Vue({
el: '#dzzoffice',
data: function() {
return {
avatarstatus:$userdata[avatarstatus],
ruleForm: {
imgpath:'',
email:'$userdata[email]',
nickname:'$userdata[nickname]',
username:'$userdata[username]',
phone:'$userdata[phone]',
weixinid:'$userdata[weixinid]',
password:'',
password2:'',
themecolor:'$theme'
},
themes:[
{txt:'自动(依系统设置)',color:'',val:''},
{txt:'白色',color:'background:#D0D0D0',val:'white'},
{txt:'浅灰色',color:'background:#808080',val:'lightgrey'},
{txt:'深灰色',color:'background:#444444',val:'darkgrey'},
{txt:'黑色',color:'background:#333333',val:'black'},
{txt:'深蓝色',color:'background:#2A356D',val:'navyblue'},
{txt:'紫色',color:'background:#463275',val:'purple'},
],
passwordMessage:'',
};
},
computed: {
},
created() {
},
methods:{
ImageafterRead(file){
this.ruleForm.imgpath = file.content;
this.avatarstatus = 1;
},
ImageOversize(file){
var self = this;
self.$toast.fail('图片大小不能超过 2MB!');
},
NavbarLeftClick(){
window.location.href="{MOD_URL}"
},
handleChangeThemes(val){
this.ruleForm.themecolor = val;
},
handleSubmit(){
self = this;
if((self.ruleForm.password || self.ruleForm.password2) && self.ruleForm.password != self.ruleForm.password2){
self.passwordMessage = '两次输入密码不一致';
return false;
}else{
self.passwordMessage = '';
}
var params = {
'accountedit':true,
'formhash':'{FORMHASH}',
'uid':'$uid',
'email':self.ruleForm.email,
'nickname':self.ruleForm.nickname,
'username':self.ruleForm.username,
'phone':self.ruleForm.phone,
'weixinid':self.ruleForm.weixinid,
'password':self.ruleForm.password,
'password2':self.ruleForm.password2,
'themecolor':self.ruleForm.themecolor,
};
if(self.ruleForm.imgpath){
params['imgpath'] = self.ruleForm.imgpath;
}
$.post(MOD_URL+"&op=user&do=personal",params,function(res){
if(res.success){
self.$toast.success('提交成功');
}else{
self.$toast.fail('提交失败');
}
},'json');
}
},
mounted() {
}
});
</script>
<!--{template mobile/frame/footer_simple}-->

View File

@@ -0,0 +1,315 @@
<!--{template mobile/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/share.css?{VERHASH}" />
<!--{template mobile/frame/header_simple_end}-->
<div id="dzzoffice">
<div
id="DetailPopup"
class="detail-popup-box"
:class="imagesData.footer?'':'NotFooter'">
<van-nav-bar>
<template #left>
<div class="pic-logo" slot="left">
<a class="h-left" href="{MOD_URL}">
<img src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" alt="">
<span class="text">$_G['setting'][sitename]</span>
</a>
</div>
</template>
<template #right>
<div style="width: 25px;text-align: center;height: 25px;line-height: 25px;" @click.stop="PopupInformation=true">
<van-icon name="warning-o" size="18" />
</div>
</template>
</van-nav-bar>
<div class="detail-popup-translate">
<div class="detail-popup-content">
<div class="detail-popup-img">
<div class="detail-between">
<template v-if="imagesData.opentype=='video'">
<div class="video-box" :style="{'height':imagesData.videoH+'px'}">
<iframe
style="border: 0px;"
:src="'index.php?mod=xgplayer&src='+imagesData.realpath"
width="100%"
height="100%"></iframe>
</div>
</template>
<template v-else-if="imagesData.opentype=='pdf'">
<iframe
style="border: 0px;"
:src="'index.php?mod=pdf&src='+imagesData.realpath"
width="100%"
height="100%"></iframe>
</template>
<template v-else-if="imagesData.opentype=='text'">
<div style="padding: 10px;height: 100%;">
<iframe
style="border: 0px;border-radius: 18px;"
:src="'index.php?mod=textviewer&src='+imagesData.realpath"
width="100%"
height="100%"></iframe>
</div>
</template>
<template v-else-if="imagesData.opentype=='other'">
<div class="img-box">
<img
@load="DetailImgload"
:src="imagesData.icondata"
class="image-viewer__img opacity" />
</div>
</template>
<template v-else>
<div class="img-box">
<img :src="imagesData.icondata" class="image-viewer__img thumbnail" />
<img
@load="DetailImgload"
:src="imagesData.realpath"
class="image-viewer__img opacity" />
</div>
</template>
</div>
</div>
</div>
</div>
<div class="footer-tabbar" v-if="imagesData.footer">
<div class="footer-tabbar-item" v-if="imagesData.link" @click="DetailFooterClick('link')">
<i class="ri-links-line"></i>
</div>
<div class="footer-tabbar-item" v-if="imagesData.download" @click="DetailFooterClick('download')">
<i class="ri-download-2-line"></i>
</div>
<div class="footer-tabbar-item" v-if="imagesData.share" @click="DetailFooterClick('share')">
<i class="ri-share-line"></i>
</div>
</div>
<van-popup
v-model="PopupInformation"
class="detail-popup-message"
:class="imagesData.footer?'':'NotFooter'"
position="right"
:overlay="false"
get-container="#DetailPopup">
<div style="position: relative;height: 100%;background: var(--bg-content);padding-top: 2.875rem;">
<van-nav-bar title="详情信息" left-arrow @click-left="PopupInformation=false"></van-nav-bar>
<div class="DetailPopup-content" style="padding: 0 16px;">
<div class="name">{{imagesData.name}}.{{imagesData.ext}}</div>
<div class="block" v-if="imagesData.colors && imagesData.colors.length">
<div class="title">颜色</div>
<div class="block-item colors">
<div class="colors" v-for="item in imagesData.colors">
<div :style="{background: '#'+item}"></div>
</div>
</div>
</div>
<div class="block" v-if="imagesData.tag && imagesData.tag.length">
<div class="title">标签</div>
<div class="block-item tag">
<div class="tag" v-for="item in imagesData.tag">{{item}}</div>
</div>
</div>
<div class="block" v-if="imagesData.link">
<div class="title">链接</div>
<div class="block-item link">
<span>{{imagesData.link}}</span>
<i class="ri-file-copy-line" @click="CommonCopyTxt(imagesData.link)"></i>
</div>
</div>
<div class="block" v-if="imagesData.foldernames && imagesData.foldernames.length">
<div class="title">分类</div>
<div class="block-item tag">
<div class="tag" v-for="item in imagesData.foldernames">{{item}}</div>
</div>
</div>
<div class="block">
<div class="title">基本信息</div>
<div class="block-item">
<van-row class="basic">
<van-col span="12">
<div class="label">评分</div>
</van-col>
<van-col span="12">
<div class="record">
<van-icon v-for="item in imagesData.grade" name="star" class="star active"></van-icon><van-icon v-for="item in imagesData.fgrade" name="star" class="star"></van-icon>
</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">尺寸</div>
</van-col>
<van-col span="12">
<div class="record">{{imagesData.width}}×{{imagesData.height}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">文件大小</div>
</van-col>
<van-col span="12">
<div class="record">{{imagesData.fsize}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">类型</div>
</van-col>
<van-col span="12">
<div class="record">{{imagesData.ext}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">创建时间</div>
</van-col>
<van-col span="12">
<div class="record">{{imagesData.mtime}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">添加时间</div>
</van-col>
<van-col span="12">
<div class="record">{{imagesData.btime}}</div>
</van-col>
</van-row>
<van-row class="basic">
<van-col span="12">
<div class="label">修改时间</div>
</van-col>
<van-col span="12">
<div class="record">{{imagesData.dateline}}</div>
</van-col>
</van-row>
</div>
</div>
</div>
</div>
</van-popup>
</div>
</div>
<script type="text/javascript">
new Vue({
el: '#dzzoffice',
data: function() {
return {
imagesData: {
rid : '$resourcesdata[rid]',
appid : '$resourcesdata[appid]',
name : '$resourcesdata[name]',
type : '$resourcesdata[type]',
ext : '$resourcesdata[ext]',
height : $resourcesdata[height],
width : $resourcesdata[width],
dateline : '$resourcesdata[dateline]',
grade : $resourcesdata[grade],
mtime : '$resourcesdata[mtime]',
btime : '$resourcesdata[btime]',
colors : $resourcesdata[colors],
desc : '$resourcesdata[desc]',
link : '$resourcesdata[link]',
tag :$resourcesdata[tag],
opentype : '$resourcesdata[opentype]',
icondata:'$resourcesdata[icondata]',
iconwidth : $resourcesdata[iconwidth],
iconheight : $resourcesdata[iconheight],
share : $resourcesdata[share],
download : $resourcesdata[download],
originalimg : '$resourcesdata[originalimg]',
realpath : '$resourcesdata[realpath]',
fsize : '$resourcesdata[fsize]',
foldernames :$resourcesdata[foldernames],
dpath:'$resourcesdata[dpath]',
footer:false
},
PopupInformation:false
};
},
computed: {
},
created() {
if(this.imagesData.link ||this.imagesData.share || this.imagesData.download){
this.imagesData['footer'] = true;
}else{
this.imagesData['footer'] = false;
}
if(this.imagesData.opentype=='video'){
var ratio = parseFloat(this.imagesData.width)/document.body.clientWidth;
var h = parseFloat(this.imagesData.height)/ratio;
this.imagesData['videoH'] = h;
}
},
methods:{
DetailImgload(event){
$(event.target).removeClass('opacity').siblings('.thumbnail').remove();
},
DetailFooterClick(type){
var self = this;
var rid = self.imagesData.rid;
if(type == 'link'){
window.open(self.imagesData.link);
return false;
}
if(type == 'download'){
if (self.imagesData.dpath) {
window.open(SITEURL + MOD_URL + '&op=download&dpath=' + self.imagesData.dpath)
} else {
self.$toast({
message: '数据错误',
icon: 'cross',
});
}
return false;
}
if(type == 'share'){
if (self.imagesData.rid) {
$.post('{MOD_URL}&op=ajax&operation=createshare', {
rid: self.imagesData.rid
}, function(data) {
if (data.success) {
self.$dialog.confirm({
title: '分享成功',
message: data.success,
confirmButtonText:'复制地址',
cancelButtonText:'关闭'
}).then(() => {
self.CommonCopyTxt(data.success);
}).catch(() => {
// on cancel
});
} else {
self.$toast({
message: '分享失败',
icon: 'cross',
});
}
}, 'json')
} else {
self.$toast({
message: '数据错误',
icon: 'cross',
});
}
}
},
CommonCopyTxt(text){
var self = this;
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
input.setAttribute('value', text);
document.getElementsByTagName('body')[0].appendChild(input);
document.getElementById('copyInput').select();
document.execCommand('copy');
document.getElementById('copyInput').remove();
self.$toast.success('复制成功');
}
},
mounted() {
}
});
</script>
<!--{template mobile/frame/footer_simple}-->

View File

@@ -10,7 +10,7 @@
</div> </div>
<div class="h-right"> <div class="h-right">
<div class="r-option"> <div class="r-option">
<el-dropdown trigger="click" @command="handleavatar"> <el-dropdown v-cloak trigger="click" @command="handleavatar">
<div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div> <div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div>
<el-dropdown-menu slot="dropdown" style="width: 165px;"> <el-dropdown-menu slot="dropdown" style="width: 165px;">
<el-dropdown-item command="personal">个人设置</el-dropdown-item> <el-dropdown-item command="personal">个人设置</el-dropdown-item>
@@ -35,7 +35,6 @@
<script type="text/javascript"> <script type="text/javascript">
Vue.component('page-header', { Vue.component('page-header', {
template: '#PageHeader', template: '#PageHeader',
props: ['isscreenshow'],
data: function() { data: function() {
return { return {
} }

View File

@@ -8,7 +8,7 @@
</a> </a>
<div class="h-center"> <div class="h-center">
<div class="result-section"> <div class="result-section">
<div class="library-classification"> <div class="library-classification" v-if="librarys.length>1">
<span class="el-dropdown-link block" @click="handleRefreshLibrary"> <span class="el-dropdown-link block" @click="handleRefreshLibrary">
<span>{{librarysName}}</span> <span>{{librarysName}}</span>
</span> </span>
@@ -24,10 +24,10 @@
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
<div class="input-box"> <div class="input-box" :class="librarys.length<2?'radius':''">
<div class="InputKeyword" @click="ShowPopoverSearch"> <div class="InputKeyword" @click="ShowPopoverSearch">
<div class="el-popover-search"> <div class="el-popover-search">
<el-input class="search-keyword" @input="handleKeywordInput" v-model="keyword" clearable></el-input> <el-input class="search-keyword" @input="handleKeywordInput" v-model="keyword" clearable placeholder=""></el-input>
<div style="padding: 0px 15px;"> <div style="padding: 0px 15px;">
<el-divider></el-divider> <el-divider></el-divider>
</div> </div>
@@ -61,7 +61,7 @@
</div> </div>
</el-scrollbar> </el-scrollbar>
</div> </div>
<!--{template components/headerindex/searchScreen}--> <!--{template pc/components/headerindex/searchScreen}-->
</div> </div>
</div> </div>
@@ -101,7 +101,7 @@
</div> </div>
</div> </div>
<!--{template components/headerindex/screen}--> <!--{template pc/components/headerindex/screen}-->
</div> </div>
@@ -168,6 +168,7 @@
</template> </template>
<script type="text/javascript"> <script type="text/javascript">
Vue.component('page-header', { Vue.component('page-header', {
name:'PageHeader',
template: '#PageHeader', template: '#PageHeader',
props: [], props: [],
data: function() { data: function() {
@@ -194,9 +195,12 @@
}, },
classify:{ classify:{
childFids:[],
DefaultFids:[],
folderdatanum:[], folderdatanum:[],
hotsearchnum:[], hotsearchnum:[],
text:'', text:'',
loading:true
}, },
tagData:{//标签数据 tagData:{//标签数据
alltagdata:{ alltagdata:{
@@ -208,7 +212,8 @@
checkedsId:[], checkedsId:[],
checkedstxt:'', checkedstxt:'',
tagrelative:'1', tagrelative:'1',
search:'' search:'',
loading:true
}, },
paramsTag:{}, paramsTag:{},
modelParamsTag:{}, modelParamsTag:{},
@@ -240,7 +245,8 @@
ext:{ ext:{
val:[], val:[],
height:0, height:0,
data:[] data:[],
loading:true
}, },
shape:{ shape:{
shape:[], shape:[],
@@ -249,25 +255,30 @@
height:'', height:'',
txt:'', txt:'',
data:[], data:[],
loading:true
}, },
grade:{ grade:{
grade:[], grade:[],
data:[] data:[],
loading:true
}, },
btime:{ btime:{
btime:'', btime:'',
datelinepicker:[], datelinepicker:[],
data:[], data:[],
loading:true
}, },
mtime:{ mtime:{
mtime:'', mtime:'',
datelinepicker:[], datelinepicker:[],
data:[], data:[],
loading:true
}, },
dateline:{ dateline:{
dateline:'', dateline:'',
datelinepicker:[], datelinepicker:[],
data:[], data:[],
loading:true
}, },
FirstLoad:true FirstLoad:true
} }
@@ -309,6 +320,12 @@
} }
}, },
created() { created() {
var tagfid = window.sessionStorage.getItem("tagfid");
if(tagfid){
this.tagData.checkedsFid = tagfid;
}else{
this.tagData.checkedsFid = 'all';
}
this.GetHashParams(); this.GetHashParams();
this.handleSearchresize(); this.handleSearchresize();
}, },

View File

@@ -2,32 +2,41 @@
<template v-for="sitem in ScreenData"> <template v-for="sitem in ScreenData">
<template v-if="sitem.key=='classify'&&GetAppid"> <template v-if="sitem.key=='classify'&&GetAppid">
<div class="block"> <div class="block">
<el-popover placement="bottom" width="auto" trigger="click" ref="ScreenPopoverRef" @show="handleShowclassify"> <el-popover placement="bottom" width="auto" trigger="click" ref="ScreenPopoverRef" @show="handleShowafteclassify">
<div class="classification-box"> <template v-if="classify.loading">
<el-input v-model="filterText" size="mini" clearable placeholder="输入关键字进行过滤"></el-input> <div class="img-loading" style="position: relative;">
<div class="classification-all-box"> <span class="el-icon-loading"></span>加载中...
<el-scrollbar class="page-component__scroll" style="height: 300px;"> </div>
<el-tree </template>
class="tree-line" <template v-else>
ref="tree" <div class="classification-box">
show-checkbox <el-input v-model="filterText" size="mini" clearable placeholder="输入关键字进行过滤"></el-input>
check-strictly <div class="classification-all-box">
node-key="fid" <el-scrollbar class="page-component__scroll" style="height: 300px;">
default-expand-all <el-tree
:expand-on-click-node="false" class="tree-line"
check-on-click-node ref="tree"
@check="handleCheck" show-checkbox
:filter-node-method="filterClassify" check-strictly
:data="classify.folderdatanum" node-key="fid"
:props="defaultProps"> default-expand-all
</el-tree> :expand-on-click-node="false"
check-on-click-node
</el-scrollbar> @check="handleCheck"
:filter-node-method="filterClassify"
:data="classify.folderdatanum"
:default-checked-keys="classify.DefaultFids"
:props="defaultProps">
</el-tree>
</el-scrollbar>
</div>
</div> </div>
</div> </template>
<div class="field-single" :class="classify.text?'active':''" slot="reference"> <div class="field-single" :class="classify.text?'active':''" slot="reference">
分类 分类
<span v-if="classify.text">{{classify.text}}</span> <span class="screen-show-val" v-if="classify.text">{{classify.text}}</span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
<span v-if="classify.text" class="delBtn el-icon-close" @click.stop="handleClickDelete('classify')"></span> <span v-if="classify.text" class="delBtn el-icon-close" @click.stop="handleClickDelete('classify')"></span>
</div> </div>
@@ -51,7 +60,7 @@
</span> </span>
</div> </div>
<div class="slider" v-if="colors.color"> <div class="slider" v-if="colors.color">
<span class="txt">精确</span> <span class="txt">精确</span>
<el-slider v-model="colors.persion" @change="handleColoSlider"></el-slider> <el-slider v-model="colors.persion" @change="handleColoSlider"></el-slider>
</div> </div>
</div> </div>
@@ -192,19 +201,27 @@
</template> </template>
<template v-else-if="sitem.key=='ext'"> <template v-else-if="sitem.key=='ext'">
<div class="block"> <div class="block">
<el-popover popper-class="PopoverNotPadding" placement="bottom" width="225" trigger="click" @show="handleShowPopover('ext')" ref="ScreenPopoverRef"> <el-popover popper-class="PopoverNotPadding" placement="bottom" width="225" trigger="click" @show="handleShowPopover('ext')" @after-enter="handleShowafterPopover('ext')" ref="ScreenPopoverRef">
<div class="field-select-box dzz-dropdown-menu scroll" :style="{height: ext.height+'px'}"> <div class="field-select-box dzz-dropdown-menu scroll" :style="{height: ext.height+'px'}">
<el-scrollbar class="page-component__scroll"> <el-scrollbar class="page-component__scroll">
<div style="padding: 12px;"> <div style="padding: 12px;">
<template v-if="ext.data && ext.data.length"> <template v-if="ext.loading">
<div class="dzz-dropdown-menu__item single" v-for="item in ext.data"> <div class="img-loading" style="position: relative;">
<el-checkbox v-model="ext.val" :label="item.ext" @change="handleChangeExt"></el-checkbox> <span class="el-icon-loading"></span>加载中...
<span class="quantity">{{item.num}}</span>
</div> </div>
</template> </template>
<template v-else> <template v-else>
<div class="dzz-dropdown-menu__item single screen-notdata">没有找到相关项目</div> <template v-if="ext.data && ext.data.length">
<div class="dzz-dropdown-menu__item single" v-for="item in ext.data">
<el-checkbox v-model="ext.val" :label="item.ext" @change="handleChangeExt"></el-checkbox>
<span class="quantity">{{item.num}}</span>
</div>
</template>
<template v-else>
<div class="dzz-dropdown-menu__item single screen-notdata">没有找到相关项目</div>
</template>
</template> </template>
</div> </div>
</el-scrollbar> </el-scrollbar>
</div> </div>
@@ -218,27 +235,34 @@
</template> </template>
<template v-else-if="sitem.key=='shape'"> <template v-else-if="sitem.key=='shape'">
<div class="block"> <div class="block">
<el-popover popper-class="PopoverNotPadding" placement="bottom" width="225" trigger="click" @show="handleShowPopover('shape')" ref="ScreenPopoverRef"> <el-popover popper-class="PopoverNotPadding" placement="bottom" width="225" trigger="click" @show="handleShowPopover('shape')" @after-enter="handleShowafterPopover('shape')" ref="ScreenPopoverRef">
<div class="field-select-box dzz-dropdown-menu"> <div class="field-select-box dzz-dropdown-menu">
<div style="padding:12px;"> <div style="padding:12px;">
<div class="dzz-dropdown-menu__item single" v-for="item in shape.data"> <template v-if="shape.loading">
<el-checkbox v-model="shape.shape" :label="item.lablename" @change="handleChangeShape"></el-checkbox> <div class="img-loading" style="position: relative;">
<span class="quantity">{{item.num}}</span> <span class="el-icon-loading"></span>加载中...
</div> </div>
<div class="dzz-dropdown-menu__item single"> </template>
<el-checkbox v-model="shape.custom" label="自定义" @change="handleChangeShapeCustom"></el-checkbox> <template v-else>
</div> <div class="dzz-dropdown-menu__item single" v-for="item in shape.data">
<div class="dzz-dropdown-menu__item single nothover" v-if="shape.custom"> <el-checkbox v-model="shape.shape" :label="item.lablename" @change="handleChangeShape"></el-checkbox>
<el-row :gutter="0"> <span class="quantity">{{item.num}}</span>
<el-col :span="10"> </div>
<el-input v-model.number="shape.width" size="mini"></el-input> <div class="dzz-dropdown-menu__item single">
</el-col> <el-checkbox v-model="shape.custom" label="自定义" @change="handleChangeShapeCustom"></el-checkbox>
<el-col :span="4" style="text-align: center;">:</el-col> </div>
<el-col :span="10"> <div class="dzz-dropdown-menu__item single nothover" v-if="shape.custom">
<el-input v-model.number="shape.height" size="mini"></el-input> <el-row :gutter="0">
</el-col> <el-col :span="10">
</el-row> <el-input v-model.number="shape.width" size="mini"></el-input>
</div> </el-col>
<el-col :span="4" style="text-align: center;">:</el-col>
<el-col :span="10">
<el-input v-model.number="shape.height" size="mini"></el-input>
</el-col>
</el-row>
</div>
</template>
</div> </div>
</div> </div>
<div class="field-single" :class="GetParams.shape||GetParams.shapesize?'active':''" slot="reference"> <div class="field-single" :class="GetParams.shape||GetParams.shapesize?'active':''" slot="reference">
@@ -254,16 +278,23 @@
</template> </template>
<template v-else-if="sitem.key=='grade'"> <template v-else-if="sitem.key=='grade'">
<div class="block"> <div class="block">
<el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('grade')" ref="ScreenPopoverRef"> <el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('grade')" @after-enter="handleShowafterPopover('grade')" ref="ScreenPopoverRef">
<ul class="field-select-box dzz-dropdown-menu"> <template v-if="grade.loading">
<li class="dzz-dropdown-menu__item single" v-for="item in grade.data"> <div class="img-loading" style="position: relative;">
<el-checkbox v-if="item.grade == 0" v-model="grade.grade" label="未评分" @change="handleChangeGrade">未评分</el-checkbox> <span class="el-icon-loading"></span>加载中...
<el-checkbox v-else v-model="grade.grade" name="type" :label="item.grade" @change="handleChangeGrade"> </div>
<i class="ri-star-fill stars" v-for="fitem in parseInt(item.grade)"></i> </template>
</el-checkbox> <template v-else>
<span class="quantity">{{item.num}}</span> <ul class="field-select-box dzz-dropdown-menu">
</li> <li class="dzz-dropdown-menu__item single" v-for="item in grade.data">
</ul> <el-checkbox v-if="item.grade == 0" v-model="grade.grade" label="未评分" @change="handleChangeGrade">未评分</el-checkbox>
<el-checkbox v-else v-model="grade.grade" name="type" :label="item.grade" @change="handleChangeGrade">
<i class="ri-star-fill stars" v-for="fitem in parseInt(item.grade)"></i>
</el-checkbox>
<span class="quantity">{{item.num}}</span>
</li>
</ul>
</template>
<div class="field-single" :class="GetParams.grade?'active':''" slot="reference"> <div class="field-single" :class="GetParams.grade?'active':''" slot="reference">
<span>评分<template v-if="GetParams.grade">{{GetParams.grade}}</template></span> <span>评分<template v-if="GetParams.grade">{{GetParams.grade}}</template></span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
@@ -274,30 +305,37 @@
</template> </template>
<template v-else-if="sitem.key=='btime'"> <template v-else-if="sitem.key=='btime'">
<div class="block"> <div class="block">
<el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('btime')" ref="ScreenPopoverRef"> <el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('btime')" @after-enter="handleShowafterPopover('btime')" ref="ScreenPopoverRef">
<ul class="field-select-box dzz-dropdown-menu"> <template v-if="btime.loading">
<li class="dzz-dropdown-menu__item single" v-for="item in btime.data"> <div class="img-loading" style="position: relative;">
<el-radio v-model="btime.btime" :label="item.label" @click.native.prevent="handleScreenTime('btime',item.label)"></el-radio> <span class="el-icon-loading"></span>加载中...
<span class="quantity">{{item.num}}</span> </div>
</li> </template>
<li class="dzz-dropdown-menu__item single"> <template v-else>
<el-radio v-model="btime.btime" label="自定义范围" @click.native.prevent="handleScreenTime('btime','自定义范围')"></el-radio> <ul class="field-select-box dzz-dropdown-menu">
</li> <li class="dzz-dropdown-menu__item single" v-for="item in btime.data">
<li class="dzz-dropdown-menu__item single nothover" style="padding: 5px 0;" v-if="btime.btime.indexOf('自定义范围')>-1"> <el-radio v-model="btime.btime" :label="item.label" @click.native.prevent="handleScreenTime('btime',item.label)"></el-radio>
<el-date-picker <span class="quantity">{{item.num}}</span>
class="dateline" </li>
v-model="btime.datelinepicker" <li class="dzz-dropdown-menu__item single">
size="mini" <el-radio v-model="btime.btime" label="自定义范围" @click.native.prevent="handleScreenTime('btime','自定义范围')"></el-radio>
:clearable="false" </li>
@change="handleChangebtimepicker" <li class="dzz-dropdown-menu__item single nothover" style="padding: 5px 0;" v-if="btime.btime.indexOf('自定义范围')>-1">
value-format="yyyy-MM-dd" <el-date-picker
type="daterange" class="dateline"
range-separator="至" v-model="btime.datelinepicker"
start-placeholder="开始日期" size="mini"
end-placeholder="结束日期"> :clearable="false"
</el-date-picker> @change="handleChangebtimepicker"
</li> value-format="yyyy-MM-dd"
</ul> type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</li>
</ul>
</template>
<div class="field-single" :class="GetParams.btime?'active':''" slot="reference"> <div class="field-single" :class="GetParams.btime?'active':''" slot="reference">
<span>添加时间<template v-if="GetParams.btime">{{GetParams.btime}}</template></span> <span>添加时间<template v-if="GetParams.btime">{{GetParams.btime}}</template></span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
@@ -308,30 +346,38 @@
</template> </template>
<template v-else-if="sitem.key=='dateline'"> <template v-else-if="sitem.key=='dateline'">
<div class="block"> <div class="block">
<el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('dateline')" ref="ScreenPopoverRef"> <el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('dateline')" @after-enter="handleShowafterPopover('dateline')" ref="ScreenPopoverRef">
<ul class="field-select-box dzz-dropdown-menu"> <template v-if="dateline.loading">
<li class="dzz-dropdown-menu__item single" v-for="item in dateline.data"> <div class="img-loading" style="position: relative;">
<el-radio v-model="dateline.dateline" :label="item.label" @click.native.prevent="handleScreenTime('dateline',item.label)"></el-radio> <span class="el-icon-loading"></span>加载中...
<span class="quantity">{{item.num}}</span> </div>
</li> </template>
<li class="dzz-dropdown-menu__item single"> <template v-else>
<el-radio v-model="dateline.dateline" label="自定义范围" @click.native.prevent="handleScreenTime('dateline','自定义范围')"></el-radio> <ul class="field-select-box dzz-dropdown-menu">
</li> <li class="dzz-dropdown-menu__item single" v-for="item in dateline.data">
<li class="dzz-dropdown-menu__item single nothover" style="padding: 5px 0;" v-if="dateline.dateline.indexOf('自定义范围')>-1"> <el-radio v-model="dateline.dateline" :label="item.label" @click.native.prevent="handleScreenTime('dateline',item.label)"></el-radio>
<el-date-picker <span class="quantity">{{item.num}}</span>
class="dateline" </li>
v-model="dateline.datelinepicker" <li class="dzz-dropdown-menu__item single">
size="mini" <el-radio v-model="dateline.dateline" label="自定义范围" @click.native.prevent="handleScreenTime('dateline','自定义范围')"></el-radio>
:clearable="false" </li>
@change="handleChangedatelinepicker" <li class="dzz-dropdown-menu__item single nothover" style="padding: 5px 0;" v-if="dateline.dateline.indexOf('自定义范围')>-1">
value-format="yyyy-MM-dd" <el-date-picker
type="daterange" class="dateline"
range-separator="至" v-model="dateline.datelinepicker"
start-placeholder="开始日期" size="mini"
end-placeholder="结束日期"> :clearable="false"
</el-date-picker> @change="handleChangedatelinepicker"
</li> value-format="yyyy-MM-dd"
</ul> type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</li>
</ul>
</template>
<div class="field-single" :class="GetParams.dateline?'active':''" slot="reference"> <div class="field-single" :class="GetParams.dateline?'active':''" slot="reference">
<span>修改时间<template v-if="GetParams.dateline">{{GetParams.dateline}}</template></span> <span>修改时间<template v-if="GetParams.dateline">{{GetParams.dateline}}</template></span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
@@ -342,30 +388,38 @@
</template> </template>
<template v-else-if="sitem.key=='mtime'"> <template v-else-if="sitem.key=='mtime'">
<div class="block"> <div class="block">
<el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('mtime')" ref="ScreenPopoverRef"> <el-popover placement="bottom" width="225" trigger="click" @show="handleShowPopover('mtime')" @after-enter="handleShowafterPopover('mtime')" ref="ScreenPopoverRef">
<ul class="field-select-box dzz-dropdown-menu"> <template v-if="mtime.loading">
<li class="dzz-dropdown-menu__item single" v-for="item in mtime.data"> <div class="img-loading" style="position: relative;">
<el-radio v-model="mtime.mtime" :label="item.label" @click.native.prevent="handleScreenTime('mtime',item.label)"></el-radio> <span class="el-icon-loading"></span>加载中...
<span class="quantity">{{item.num}}</span> </div>
</li> </template>
<li class="dzz-dropdown-menu__item single"> <template v-else>
<el-radio v-model="mtime.mtime" label="自定义范围" @click.native.prevent="handleScreenTime('mtime','自定义范围')"></el-radio> <ul class="field-select-box dzz-dropdown-menu">
</li> <li class="dzz-dropdown-menu__item single" v-for="item in mtime.data">
<li class="dzz-dropdown-menu__item single nothover" style="padding: 5px 0;" v-if="mtime.mtime.indexOf('自定义范围')>-1"> <el-radio v-model="mtime.mtime" :label="item.label" @click.native.prevent="handleScreenTime('mtime',item.label)"></el-radio>
<el-date-picker <span class="quantity">{{item.num}}</span>
class="dateline" </li>
v-model="mtime.datelinepicker" <li class="dzz-dropdown-menu__item single">
size="mini" <el-radio v-model="mtime.mtime" label="自定义范围" @click.native.prevent="handleScreenTime('mtime','自定义范围')"></el-radio>
:clearable="false" </li>
@change="handleChangemtimepicker" <li class="dzz-dropdown-menu__item single nothover" style="padding: 5px 0;" v-if="mtime.mtime.indexOf('自定义范围')>-1">
value-format="yyyy-MM-dd" <el-date-picker
type="daterange" class="dateline"
range-separator="至" v-model="mtime.datelinepicker"
start-placeholder="开始日期" size="mini"
end-placeholder="结束日期"> :clearable="false"
</el-date-picker> @change="handleChangemtimepicker"
</li> value-format="yyyy-MM-dd"
</ul> type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</li>
</ul>
</template>
<div class="field-single" :class="GetParams.mtime?'active':''" slot="reference"> <div class="field-single" :class="GetParams.mtime?'active':''" slot="reference">
<span><span>创建时间</span><template v-if="GetParams.mtime">{{GetParams.mtime}}</template></span> <span><span>创建时间</span><template v-if="GetParams.mtime">{{GetParams.mtime}}</template></span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
@@ -376,27 +430,44 @@
</template> </template>
<template v-else-if="sitem.key=='tag'"> <template v-else-if="sitem.key=='tag'">
<template v-if="sitem.showtype"> <template v-if="sitem.showtype">
<template v-for="bitem in ParamsTagData"> <template v-for="(bitem,index) in ParamsTagData">
<div class="block"> <div class="block">
<el-popover popper-class="PopoverNotPadding" placement="bottom" @show="handleShowPopover('grouptag',bitem.cid)" width="255" trigger="click" ref="ScreenPopoverRef"> <el-popover popper-class="PopoverNotPadding" placement="bottom" @show="handleShowPopover('grouptag',index)" @after-enter="handleShowafterPopover('grouptag',bitem.cid,index)" width="255" trigger="click" ref="ScreenPopoverRef">
<div class="field-select-box">
<div class="tags-box clearfix">
<div class="right"> <div class="field-select-box">
<div style="padding: 0 12px;margin-bottom: 8px;"> <div class="tags-box clearfix">
<el-input size="small" placeholder="请输入内容" prefix-icon="el-icon-search" v-model.trim="modelParamsTag[bitem.cid].search" clearable @input="handleRightGroupTagSearch(bitem.cid)"></el-input> <div class="right">
<template v-if="!bitem.loading">
<div style="padding: 0 12px;margin-bottom: 8px;">
<el-input size="small" placeholder="请输入内容" prefix-icon="el-icon-search" v-model.trim="modelParamsTag[bitem.cid].search" clearable @input="handleRightGroupTagSearch(bitem.cid,index)"></el-input>
</div>
</template>
<el-scrollbar class="page-component__scroll scrollbarTag" style="height: 357px;" :ref="'scrollbarTag'+bitem.cid">
<template v-if="bitem.loading">
<div style="padding:12px;">
<div class="img-loading" style="position: relative;">
<span class="el-icon-loading"></span>加载中...
</div>
</div>
</template>
<template v-else>
<ul class="el-popper">
<!-- <el-checkbox-group v-model="tagData.checkedsId"> -->
<li class="el-dropdown-menu__item" v-for="vitem in modelParamsTag[bitem.cid].data">
<el-checkbox class="txt" v-model="modelParamsTag[bitem.cid].value" :label="vitem.tid" @change="handleClickRightGroupTag(bitem.cid,vitem.tid)">{{vitem.tagname}}</el-checkbox>
<span class="num">{{vitem.num}}</span>
</li>
<!-- </el-checkbox-group> -->
</ul>
</template>
</el-scrollbar>
</div> </div>
<el-scrollbar class="page-component__scroll" style="height: 357px;">
<ul class="el-popper">
<li class="el-dropdown-menu__item" v-for="vitem in paramsTag[bitem.cid].newVal">
<el-checkbox class="txt" v-model="modelParamsTag[bitem.cid].data" :label="vitem.tid" @change="handleClickRightGroupTag(bitem.cid,vitem.tid)">{{vitem.tagname}}</el-checkbox>
<span class="num">{{vitem.num}}</span>
</li>
</ul>
</el-scrollbar>
</div> </div>
</div> </div>
</div>
<div class="field-single" :class="modelParamsTag[bitem.cid].text?'active':''" slot="reference"> <div class="field-single" :class="modelParamsTag[bitem.cid].text?'active':''" slot="reference">
<span>{{bitem.catname}} <span v-if="modelParamsTag[bitem.cid].text">:{{modelParamsTag[bitem.cid].text}}</span> </span> <span>{{bitem.catname}} <span v-if="modelParamsTag[bitem.cid].text">:{{modelParamsTag[bitem.cid].text}}</span> </span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
@@ -408,21 +479,25 @@
</template> </template>
<template v-else> <template v-else>
<div class="block alltag-block"> <div class="block alltag-block">
<el-popover popper-class="PopoverNotPadding" placement="bottom" @show="handleShowPopover('tag')" :width="GetAppid?508:255" trigger="click" ref="ScreenPopoverRef"> <el-popover popper-class="PopoverNotPadding" placement="bottom" @show="handleShowPopover('tag')" @after-enter="handleShowafterPopover('tag')" :width="GetAppid?508:255" trigger="click" @after-leave="handleHideafterPopover('tag')" ref="ScreenPopoverRef">
<div class="field-select-box"> <div class="field-select-box">
<div class="tags-box clearfix"> <div class="tags-box clearfix">
<div class="left" v-if="GetAppid"> <div class="left" v-if="GetAppid">
<p class="title">标签分类</p> <p class="title">标签分类</p>
<el-scrollbar class="page-component__scroll" style="height: 308px;"> <el-scrollbar class="page-component__scroll" style="height: 308px;">
<ul class="el-popper"> <template v-if="tagData.loading">
<li class="el-dropdown-menu__item" :class="tagData.checkedsFid=='all'?'active':''" @click="handleClickLeftTag('all')"> <div class="img-loading center">
<div class="txt">全部</div> <span class="el-icon-loading"></span>加载中...
</li> </div>
<li class="el-dropdown-menu__item" v-for="(item,index) in tagData.alltagdata.catdata" :class="tagData.checkedsFid==index?'active':''" @click="handleClickLeftTag(index)"> </template>
<div class="txt">{{item.catname}}</div> <template v-else>
<span class="num">{{item.num}}</span> <ul class="el-popper">
</li> <li class="el-dropdown-menu__item" v-for="(item,index) in tagData.alltagdata.catdata" :class="tagData.checkedsFid==index?'active':''" @click="handleClickLeftTag(index)" v-key="index">
</ul> <div class="txt">{{item.catname}}</div>
<span class="num">{{item.num}}</span>
</li>
</ul>
</template>
</el-scrollbar> </el-scrollbar>
<div class="logic"> <div class="logic">
<span>逻辑:</span> <span>逻辑:</span>
@@ -447,21 +522,42 @@
<div style="padding: 0 12px;margin-bottom: 8px;"> <div style="padding: 0 12px;margin-bottom: 8px;">
<el-input size="small" placeholder="请输入内容" prefix-icon="el-icon-search" v-model.trim="tagData.search" clearable @input="handleRightTagSearch"></el-input> <el-input size="small" placeholder="请输入内容" prefix-icon="el-icon-search" v-model.trim="tagData.search" clearable @input="handleRightTagSearch"></el-input>
</div> </div>
<el-scrollbar class="page-component__scroll" style="height: 357px;"> <el-scrollbar class="page-component__scroll scrollbarTag" style="height: 357px;" ref="scrollbarTag">
<ul class="el-popper"> <template v-if="tagData.alltagdata.catdata[tagData.checkedsFid]">
<li class="el-dropdown-menu__item" v-for="item in tagData.Rightdata"> <template v-if="tagData.alltagdata.catdata[tagData.checkedsFid].loading">
<el-checkbox class="txt" v-model="tagData.checkedsId" :label="item.tid" @change="handleClickRightTag(item.tid)">{{item.tagname}}</el-checkbox> <div class="img-loading center">
<span class="num">{{item.num}}</span> <span class="el-icon-loading"></span>加载中...
</li> </div>
</ul> </template>
<template v-else>
<el-checkbox-group v-model="tagData.checkedsId" @change="handleClickRightTag">
<ul class="el-popper">
<li class="el-dropdown-menu__item" v-for="item in tagData.alltagdata.catdata[tagData.checkedsFid].tdatas" v-key="item.tid">
<el-checkbox class="txt" :label="item.tid">{{item.tagname}}</el-checkbox>
<span class="num">{{item.num}}</span>
</li>
</ul>
</el-checkbox-group>
<template v-if="tagData.alltagdata.catdata[tagData.checkedsFid].valloading">
<div class="img-loading" style="position: relative;">
<span class="el-icon-loading"></span>加载中...
</div>
</template>
</template>
</template>
<template v-else>
<div class="img-loading center">
<span class="el-icon-loading"></span>加载中...
</div>
</template>
</el-scrollbar> </el-scrollbar>
</div> </div>
</div> </div>
</div> </div>
<div class="field-single" :class="tagData.checkedstxt?'active':''" slot="reference"> <div class="field-single" :class="tagData.checkedstxt?'active':''" slot="reference">
<span v-if="tagData.checkedstxt">标签:{{tagData.checkedstxt}}</span> 标签
<span v-else>标签</span> <span class="screen-show-val" v-if="tagData.checkedstxt">{{tagData.checkedstxt}}</span>
<i class="ri-arrow-down-s-fill icon"></i> <i class="ri-arrow-down-s-fill icon"></i>
<span v-if="tagData.checkedstxt" class="delBtn el-icon-close" @click.stop="handleClickDelete('tag')"></span> <span v-if="tagData.checkedstxt" class="delBtn el-icon-close" @click.stop="handleClickDelete('tag')"></span>
</div> </div>

View File

@@ -1,6 +1,6 @@
<template id="images"> <template id="images">
<div style="position: relative;min-height: 300px;"> <div style="position: relative;min-height: 300px;">
<components v-if="imgdatas.length" :is="GetLayout" :imgdatas="imgdatas" @handleoperation="handleoperation" ref="mychild"></components> <components v-if="imgdatas.length" :is="GetLayout" :imgdatas="imgdatas" @handleoperation="handleoperation" ref="mychild" @opentype="opentype"></components>
<div v-if="!imageLoading&&imgdatas.length==0&&!GetFirstLoading" class="el-empty"> <div v-if="!imageLoading&&imgdatas.length==0&&!GetFirstLoading" class="el-empty">
<div class="el-empty__image"> <div class="el-empty__image">
<img src="{MOD_PATH}/image/nodata.svg" /> <img src="{MOD_PATH}/image/nodata.svg" />
@@ -10,7 +10,7 @@
</div> </div>
</div> </div>
<div class="img-loading" v-if="imageLoading"> <div class="img-loading" v-if="imageLoading">
<span class="el-icon-loading"></span>拼命加载中... <span class="el-icon-loading"></span>加载中...
</div> </div>
<div class="img-loading" v-if="imgdatas.length&&Parameter.page>=Parameter.totalpage&&!GetFirstLoading&&!imageLoading">没有更多了</div> <div class="img-loading" v-if="imgdatas.length&&Parameter.page>=Parameter.totalpage&&!GetFirstLoading&&!imageLoading">没有更多了</div>
@@ -59,7 +59,7 @@
str.push(val[i].rid); str.push(val[i].rid);
} }
str = str.join(','); str = str.join(',');
window.localStorage.setItem('imgs',str) window.localStorage.setItem('imgs',str);
}, },
deep:true, deep:true,
immediate:true immediate:true
@@ -102,6 +102,9 @@
}, },
methods: { methods: {
opentype(val){
this.$emit('opentype',val);
},
handleScroll(){ handleScroll(){
var self = this; var self = this;
var Parameter = self.Parameter; var Parameter = self.Parameter;
@@ -150,7 +153,6 @@
} }
}, },
}, },
mounted() { mounted() {
var self = this; var self = this;
@@ -211,7 +213,7 @@
<div v-if="InformationShow.indexOf('tagging')>-1&&parseInt(item.annonationnum)>0" class="annotation">{{item.annonationnum}}</div> <div v-if="InformationShow.indexOf('tagging')>-1&&parseInt(item.annonationnum)>0" class="annotation">{{item.annonationnum}}</div>
<div class="bottom-img-message" v-if="InformationShow.length"> <div class="bottom-img-message" v-if="InformationShow.length">
<div class="name"> <div class="name" v-if="InformationShow.indexOf('name')>-1 || InformationShow.indexOf('extension')>-1">
<span v-if="InformationShow.indexOf('name')>-1">{{item.name}}</span> <span v-if="InformationShow.indexOf('name')>-1">{{item.name}}</span>
<span v-if="InformationShow.indexOf('extension')>-1" class="suffix">.{{item.ext}}</span> <span v-if="InformationShow.indexOf('extension')>-1" class="suffix">.{{item.ext}}</span>
</div> </div>
@@ -302,10 +304,19 @@
GetimgParameter(){ GetimgParameter(){
return VuexStore.getters.GetimgParameter; return VuexStore.getters.GetimgParameter;
}, },
Getinformation_Opentype(){
return VuexStore.getters.Getinformation_Opentype;
},
}, },
methods:$.extend({},ImgRowGrid,{ methods:$.extend({},ImgRowGrid,{
handleDetails(rid){ handleDetails(rid){
window.open(SITEURL+MOD_URL+'&op=details#rid='+rid); if(this.Getinformation_Opentype == 'new'){
window.open(SITEURL+MOD_URL+'&op=details#rid='+rid);
}else{
this.$emit('opentype',rid);
// window.location.href = SITEURL+MOD_URL+'&op=details#rid='+rid;
}
}, },
handleoperation(type,val){ handleoperation(type,val){
this.$emit('handleoperation',{ this.$emit('handleoperation',{
@@ -426,7 +437,7 @@
maxNewtop:0, maxNewtop:0,
maxNewLeft:0, maxNewLeft:0,
perpage : 0, perpage : 0,
Margin:10, Margin:8,
columns:0, columns:0,
fcolumns:1, fcolumns:1,
newWidth:0,//图片宽度 newWidth:0,//图片宽度
@@ -439,7 +450,6 @@
} }
}, },
watch:{ watch:{
imgdatas:{ imgdatas:{
handler(val){ handler(val){
@@ -484,6 +494,9 @@
GetScrollAppend(){ GetScrollAppend(){
return VuexStore.getters.GetScrollAppend; return VuexStore.getters.GetScrollAppend;
}, },
Getinformation_Opentype(){
return VuexStore.getters.Getinformation_Opentype;
},
}, },
created() { created() {
}, },
@@ -590,7 +603,11 @@
}) })
}, },
handleDetails(rid){ handleDetails(rid){
window.open(SITEURL+MOD_URL+'&op=details#rid='+rid); if(this.Getinformation_Opentype == 'new'){
window.open(SITEURL+MOD_URL+'&op=details#rid='+rid);
}else{
this.$emit('opentype',rid);
}
}, },
handleoperation(type,val){ handleoperation(type,val){
this.$emit('handleoperation',{ this.$emit('handleoperation',{
@@ -625,7 +642,6 @@
}, },
}, },
waterFall:{ waterFall:{
props:['imgdatas'], props:['imgdatas'],
template:`<div id="waterfallCenter"> template:`<div id="waterfallCenter">
@@ -770,13 +786,20 @@
GetScrollAppend(){ GetScrollAppend(){
return VuexStore.getters.GetScrollAppend; return VuexStore.getters.GetScrollAppend;
}, },
Getinformation_Opentype(){
return VuexStore.getters.Getinformation_Opentype;
},
}, },
created() { created() {
}, },
methods:$.extend({},ImgWaterfall,{ methods:$.extend({},ImgWaterfall,{
handleDetails(rid){ handleDetails(rid){
window.open(SITEURL+MOD_URL+'&op=details#rid='+rid); if(this.Getinformation_Opentype == 'new'){
window.open(SITEURL+MOD_URL+'&op=details#rid='+rid);
}else{
this.$emit('opentype',rid);
}
}, },
handleoperation(type,val){ handleoperation(type,val){
this.$emit('handleoperation',{ this.$emit('handleoperation',{
@@ -812,4 +835,4 @@
} }
}) })
</script> </script>

View File

@@ -1,5 +1,4 @@
<script type="text/javascript"> <script type="text/javascript">
var VuexStore = new Vuex.Store({ var VuexStore = new Vuex.Store({
state: { state: {
Uid:'$_G[uid]', Uid:'$_G[uid]',
@@ -9,7 +8,9 @@
information:{ information:{
show:[], show:[],
other:'', other:'',
layout:'' layout:'',
opentype:'',
opentype:''
} }
}, },
ScreenData:[], ScreenData:[],
@@ -93,6 +94,9 @@
SetParamsTagData(state,val){//设置标签分类筛选值 SetParamsTagData(state,val){//设置标签分类筛选值
state.ParamsTagData = val; state.ParamsTagData = val;
}, },
SetParamsTagDataLoading(state,val){//设置标签分类loading
state.ParamsTagData[val.index]['loading'] = val.val;
},
SetimageLoading(state,val){//设置图片时的loading SetimageLoading(state,val){//设置图片时的loading
state.imageLoading = val; state.imageLoading = val;
}, },
@@ -102,7 +106,6 @@
}else{ }else{
state.imgdatas = val.data; state.imgdatas = val.data;
} }
}, },
SetShowScreen(state,val){//设置筛选显示或者隐藏 SetShowScreen(state,val){//设置筛选显示或者隐藏
state.ShowScreen = val; state.ShowScreen = val;
@@ -124,6 +127,9 @@
seTHeader_Information_Layout(state,val){//设置图片显示方式 seTHeader_Information_Layout(state,val){//设置图片显示方式
state.header.information.layout = val; state.header.information.layout = val;
}, },
seTHeader_Information_Opentype(state,val){//设置图片打开方式
state.header.information.opentype = val;
},
SetimgParameter(state,val){//设置图片参数 SetimgParameter(state,val){//设置图片参数
state.imgParameter[val.key] = val.val; state.imgParameter[val.key] = val.val;
}, },
@@ -174,6 +180,9 @@
Getinformation_other(state){//获取图片显示内容 Getinformation_other(state){//获取图片显示内容
return state.header.information.other; return state.header.information.other;
}, },
Getinformation_Opentype(state){//获取图片打开方式
return state.header.information.opentype;
},
GetimgParameter(state){//获取图片排序方式 GetimgParameter(state){//获取图片排序方式
return state.imgParameter; return state.imgParameter;
}, },
@@ -280,15 +289,21 @@
// commit('SetAppid',value.appid); // commit('SetAppid',value.appid);
for(var i in value.param){ for(var i in value.param){
if(i == 'tagdata'){ if(i == 'tagdata'){
if(value.param[i] && value.param[i].length){ if(state.FirstLoading){
commit('SetParamsInit',{key:'tag',val:value.param[i]}); if(state.ParamsInit.tag && state.ParamsInit.tag.length == 0){
if(value.param[i] && value.param[i].length){
commit('SetParamsInit',{key:'tag',val:value.param[i]});
}
}
} }
}else if(i == 'folderdata'){ }else if(i == 'folderdata'){
var txts = []; if(!state.classifyInit){
for(var t in value.param[i]){ var txts = [];
txts.push(value.param[i][t]) for(var t in value.param[i]){
txts.push(value.param[i][t])
}
commit('SetclassifyInit',txts.join(','));
} }
commit('SetclassifyInit',txts.join(','));
}else{ }else{
var str = { var str = {
key:i, key:i,
@@ -407,7 +422,7 @@
if(type == 'scroll'){ if(type == 'scroll'){
commit('SetimgParameter',{key:'page',val:parseInt(search.page)+1}); commit('SetimgParameter',{key:'page',val:parseInt(search.page)+1});
}else{ }else{
$('.el-scrollbar__wrap').scrollTop(0) jQuery('.body_scroll>.el-scrollbar__wrap').scrollTop(0)
commit('SetimgParameter',{key:'page',val:1}); commit('SetimgParameter',{key:'page',val:1});
} }
var imgParameterInit = state.imgParameterInit; var imgParameterInit = state.imgParameterInit;
@@ -454,6 +469,7 @@
var group = []; var group = [];
for(var t in item.group){ for(var t in item.group){
if(parseInt(item.group[t].checked)){ if(parseInt(item.group[t].checked)){
item.group[t]['loading'] = true;
group.push(item.group[t]); group.push(item.group[t]);
} }
} }
@@ -483,7 +499,7 @@
if(json.success){ if(json.success){
}else{ }else{
self.$message.error('数据失败') self.$message.error('显示信息数据保存失败')
} }
},'json') },'json')
}, },
@@ -508,7 +524,6 @@
sortfiled:sortfiles, sortfiled:sortfiles,
sort:state.imgParameter.asc sort:state.imgParameter.asc
}; };
var self = pvue;
$.post(MOD_URL+'&op=ajax&operation=setsort',param,function(json){ $.post(MOD_URL+'&op=ajax&operation=setsort',param,function(json){
if(json.success){ if(json.success){

View File

@@ -0,0 +1,21 @@
<!--{if $_G[uid] && $_G['adminid'] == 1}-->
<!--{if !isset($_G['cookie']['checkupgrade'])}-->
<script type="text/javascript">jQuery.getScript('misc.php?mod=upgrade&action=checkupgrade&rand=$_G[timestamp]');</script>
<!--{/if}-->
<!--{if !isset($_G['cookie']['checkappupgrade'])}-->
<script type="text/javascript">jQuery.getScript('misc.php?mod=upgrade&action=checkappupgrade&rand=$_G[timestamp]');</script>
<!--{/if}-->
<!--{if !isset($_G['cookie']['upgradenotice'] )}-->
<script type="text/javascript">
jQuery(document).ready(function(){
try{jQuery('#systemNotice').load('misc.php?mod=upgrade&action=upgradenotice');}catch(e){};
});
</script>
<div id="systemNotice" class="systemNotice" style="position: fixed;right:10px;bottom:10px;max-width:50%;box-shadow:0px 5px 10px RGBA(0,0,0,0.3);z-index:999999"></div>
<!--{/if}-->
<!--{/if}-->
<!--{if $_G['setting']['statcode']}-->
$_G['setting']['statcode']
<!--{/if}-->
</body>
</html>

View File

@@ -0,0 +1,2 @@
</head>
<body>

View File

@@ -19,10 +19,10 @@
<script src="{MOD_PATH}/js/vue/vue.js?{VERHASH}"></script> <script src="{MOD_PATH}/js/vue/vue.js?{VERHASH}"></script>
<link rel="stylesheet" href="{MOD_PATH}/css/theme/$theme/index.css?{VERHASH}"> <link rel="stylesheet" href="{MOD_PATH}/css/theme/$theme/index.css?{VERHASH}">
<link rel="stylesheet" href="{MOD_PATH}/css/theme/$theme/root.css?{VERHASH}"> <link rel="stylesheet" href="{MOD_PATH}/css/theme/$theme/root.css?{VERHASH}">
<script type="text/javascript" src="{MOD_PATH}/js/plug/element-ui.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/plug/element-ui.js?{VERHASH}"></script>
<script type="text/javascript" src="static/jquery/jquery.min.js?{VERHASH}"></script> <script type="text/javascript" src="static/jquery/jquery.min.js?{VERHASH}"></script>
<script type="text/javascript" src="static/jquery/jquery.json-2.4.min.js?{VERHASH}"></script> <script type="text/javascript" src="static/jquery/jquery.json-2.4.min.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/common.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/common.js?{VERHASH}"></script>
<link rel="stylesheet" href="{MOD_PATH}/css/common.css?{VERHASH}"> <link rel="stylesheet" href="{MOD_PATH}/css/pc/common.css?{VERHASH}">
<link rel="stylesheet" href="{MOD_PATH}/css/fonts/remixicon.css?{VERHASH}"> <link rel="stylesheet" href="{MOD_PATH}/css/fonts/remixicon.css?{VERHASH}">
<script type="text/javascript">var DZZSCRIPT='{DZZSCRIPT}',LANG='{$_G[language]}', STATICURL = 'static/', IMGDIR = '{$_G[setting][imgdir]}', VERHASH = '{VERHASH}', charset = '{CHARSET}', dzz_uid = '$_G[uid]', cookiepre = '{$_G[config][cookie][cookiepre]}', cookiedomain = '{$_G[config][cookie][cookiedomain]}', cookiepath = '{$_G[config][cookie][cookiepath]}',attackevasive = '{$_G[config][security][attackevasive]}', disallowfloat = '{$_G[setting][disallowfloat]}', REPORTURL = '$_G[currenturl_encode]', SITEURL = '$_G[siteurl]', JSPATH = '$_G[setting][jspath]',MOD_PATH='{MOD_PATH}',APP_URL='{MOD_URL}',MOD_URL='{MOD_URL}';</script> <script type="text/javascript">var DZZSCRIPT='{DZZSCRIPT}',LANG='{$_G[language]}', STATICURL = 'static/', IMGDIR = '{$_G[setting][imgdir]}', VERHASH = '{VERHASH}', charset = '{CHARSET}', dzz_uid = '$_G[uid]', cookiepre = '{$_G[config][cookie][cookiepre]}', cookiedomain = '{$_G[config][cookie][cookiedomain]}', cookiepath = '{$_G[config][cookie][cookiepath]}',attackevasive = '{$_G[config][security][attackevasive]}', disallowfloat = '{$_G[setting][disallowfloat]}', REPORTURL = '$_G[currenturl_encode]', SITEURL = '$_G[siteurl]', JSPATH = '$_G[setting][jspath]',MOD_PATH='{MOD_PATH}',APP_URL='{MOD_URL}',MOD_URL='{MOD_URL}';</script>

View File

@@ -1,6 +1,6 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/admin.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}"/>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="auto" style="padding: 0;z-index: 10;"> <el-header height="auto" style="padding: 0;z-index: 10;">
@@ -101,7 +101,7 @@
</el-container> </el-container>
</el-container> </el-container>
</div> </div>
<!--{template components/headerAdmin/index}--> <!--{template pc/components/headerAdmin/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
el: '#dzzoffice', el: '#dzzoffice',
@@ -182,7 +182,7 @@
formhash:'{FORMHASH}', formhash:'{FORMHASH}',
settingnew:self.formdata, settingnew:self.formdata,
},function(data){ },function(data){
console.log(data) // console.log(data)
if(data){ if(data){
self.$message({ self.$message({
type:'success', type:'success',
@@ -199,4 +199,4 @@
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,7 +1,7 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<script type="text/javascript" src="{MOD_PATH}/js/plug/sortable.min.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/plug/sortable.min.js?{VERHASH}"></script>
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/admin.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}"/>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="auto" style="padding: 0;z-index: 10;"> <el-header height="auto" style="padding: 0;z-index: 10;">
@@ -44,7 +44,7 @@
</el-container> </el-container>
</el-container> </el-container>
</div> </div>
<!--{template components/headerAdmin/index}--> <!--{template pc/components/headerAdmin/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
el: '#dzzoffice', el: '#dzzoffice',
@@ -139,4 +139,4 @@
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,6 +1,6 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/admin.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}"/>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="auto" style="padding: 0;z-index: 10;"> <el-header height="auto" style="padding: 0;z-index: 10;">
@@ -58,7 +58,7 @@
</el-container> </el-container>
</el-container> </el-container>
</div> </div>
<!--{template components/headerAdmin/index}--> <!--{template pc/components/headerAdmin/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
el: '#dzzoffice', el: '#dzzoffice',
@@ -106,4 +106,4 @@
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,6 +1,6 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/admin.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}"/>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="auto" style="padding: 0;z-index: 10;"> <el-header height="auto" style="padding: 0;z-index: 10;">
@@ -83,6 +83,12 @@
<el-radio border label="desc">降序</el-radio> <el-radio border label="desc">降序</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="默认打开文件窗口方式:">
<el-radio-group v-model="formdata.pichomepagesetting.opentype">
<el-radio border label="new">新窗口</el-radio>
<el-radio border label="current">当前窗口</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleSubmit" :loading="btnloading">保存更改</el-button> <el-button type="primary" @click="handleSubmit" :loading="btnloading">保存更改</el-button>
</el-form-item> </el-form-item>
@@ -95,7 +101,7 @@
</el-container> </el-container>
</el-container> </el-container>
</div> </div>
<!--{template components/headerAdmin/index}--> <!--{template pc/components/headerAdmin/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
el: '#dzzoffice', el: '#dzzoffice',
@@ -119,6 +125,7 @@
other:'btime', other:'btime',
sort: '2', sort: '2',
desc: 'desc', desc: 'desc',
opentype:'new'
} }
} }
} }
@@ -131,6 +138,7 @@
other:'$setting[pichomepagesetting][other]', other:'$setting[pichomepagesetting][other]',
sort: '$setting[pichomepagesetting][sort]', sort: '$setting[pichomepagesetting][sort]',
desc: '$setting[pichomepagesetting][desc]', desc: '$setting[pichomepagesetting][desc]',
opentype: '$setting[pichomepagesetting][opentype]',
}; };
var oldshow = params.show; var oldshow = params.show;
var newshow = []; var newshow = [];
@@ -150,6 +158,7 @@
other:params.other?params.other:'btime', other:params.other?params.other:'btime',
sort: params.sort?params.sort:'2', sort: params.sort?params.sort:'2',
desc: params.desc?params.desc:'desc', desc: params.desc?params.desc:'desc',
opentype: params.opentype?params.opentype:'new',
}; };
this.formdata.pichomepagesetting = Newparams; this.formdata.pichomepagesetting = Newparams;
}, },
@@ -186,4 +195,4 @@
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,5 +1,5 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/admin.css?{VERHASH}" /> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}" />
<style type="text/css"> <style type="text/css">
.tipTxt{ .tipTxt{
margin-left: 6px; margin-left: 6px;
@@ -12,8 +12,11 @@
.avatarstatus .img-circle{ .avatarstatus .img-circle{
border-radius: 0; border-radius: 0;
} }
.page-content .Topcarousel{
line-height: 148px;
}
</style> </style>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="auto" style="padding: 0;z-index: 10;"> <el-header height="auto" style="padding: 0;z-index: 10;">
@@ -35,17 +38,15 @@
:before-upload="beforeLogoUpload" :before-upload="beforeLogoUpload"
:show-file-list="false"> :show-file-list="false">
<el-progress v-show="ispercentage" type="circle" :width="148" :percentage="percentage"></el-progress> <el-progress v-show="ispercentage" type="circle" :width="148" :percentage="percentage"></el-progress>
<template v-if="ruleForm.imgpath||avatarstatus==1"> <template v-if="ruleForm.imgpath||avatarstatus=='1'">
<template v-if="ruleForm.imgpath"> <template v-if="ruleForm.imgpath">
<el-image class="avatarimg" fit="contain" :src="ruleForm.imgpath"></el-image> <el-image class="avatarimg" fit="contain" :src="ruleForm.imgpath"></el-image>
</template> </template>
<template v-else> <template v-else>
<div class="avatarstatus"> <div class="avatarstatus">
{eval echo avatar_block($_G[uid]);} <img :src="'avatar.php?uid=1&random='+Math.ceil(Math.random()*100)" title="admin" class="img-circle special_avatar_class">
</div> </div>
</template> </template>
</template> </template>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
@@ -95,7 +96,7 @@
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
<!--{template components/headerAdmin/index}--> <!--{template pc/components/headerAdmin/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
el: '#dzzoffice', el: '#dzzoffice',
@@ -172,6 +173,7 @@
} }
}, },
created() { created() {
// console.log(11111)
// var avatarstatus = // var avatarstatus =
}, },
@@ -252,4 +254,4 @@
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,17 +1,52 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/details.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/xuanzhuan/index.css?{VERHASH}"/>
<!--{template frame/header_simple_end}--> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/details.css?{VERHASH}"/>
<style type="text/css">
.el-page-header__left{
/* position: fixed;
top: 90px;
left: 20px; */
z-index: 100;
color: var(--header-text);
margin-right: 0;
}
.el-page-header__left:hover{
color: var(--header-active);
}
.el-page-header__left .el-icon-back{
font-size: 21px;
font-weight: 700;
}
.el-page-header__left .el-page-header__title{
font-size: 16px;
font-weight: 700;
}
.el-page-header__left::after{
display: none;
}
</style>
<!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<!--{if $opentype=='current'}-->
<!--{/if}-->
<el-header height="70" style="padding: 0;z-index: 10;"> <el-header height="70" style="padding: 0;z-index: 10;">
<div id="top_header"> <div id="top_header">
<div class="header-content"> <div class="header-content">
<!--{if $opentype=='current'}-->
<div class="h-left">
<div class="el-page-header__left" @click="goBack"><i class="el-icon-back"></i><div class="el-page-header__title">返回</div></div>
</div>
<!--{else}-->
<a class="h-left" href="{MOD_URL}"> <a class="h-left" href="{MOD_URL}">
<el-image src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain"></el-image> <el-image src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain"></el-image>
<span class="text">$_G['setting'][sitename]</span> <span class="text">$_G['setting'][sitename]</span>
</a> </a>
<!--{/if}-->
<div class="h-center"> <div class="h-center">
<span>{{ImgParam.index}}&nbsp;&nbsp;/&nbsp;&nbsp;{{ImgParam.total}}</span> <span v-cloak>{{ImgParam.index}}&nbsp;&nbsp;/&nbsp;&nbsp;{{ImgParam.total}}</span>
<div class="carousel__arrow-box clearfix"> <div class="carousel__arrow-box clearfix">
<el-tooltip effect="dark" content="上一张" placement="bottom"> <el-tooltip effect="dark" content="上一张" placement="bottom">
<div @click="handleCarouselArrow('left')" class="carousel__arrow carousel__arrow--left"><i class="el-icon-arrow-left icon"></i></div> <div @click="handleCarouselArrow('left')" class="carousel__arrow carousel__arrow--left"><i class="el-icon-arrow-left icon"></i></div>
@@ -31,7 +66,8 @@
</div> </div>
</div> </div>
</div> </div>
<el-dropdown trigger="click" @command="handleImgScale">
<el-dropdown trigger="click" @command="handleImgScale" v-cloak>
<span class="text proportionnum">{{ImgParam.fproportion}}%</span> <span class="text proportionnum">{{ImgParam.fproportion}}%</span>
<el-dropdown-menu slot="dropdown" style="width: 125px;" class="proportionnum-box"> <el-dropdown-menu slot="dropdown" style="width: 125px;" class="proportionnum-box">
<el-dropdown-item command="5">5%</el-dropdown-item> <el-dropdown-item command="5">5%</el-dropdown-item>
@@ -55,25 +91,32 @@
</el-tooltip> </el-tooltip>
<span class="text" @click="handleImgOperation(2)">自适应</span> <span class="text" @click="handleImgOperation(2)">自适应</span>
<el-tooltip effect="dark" content="旋转" placement="bottom"> <el-tooltip effect="dark" content="旋转" placement="bottom">
<span class="text" @click="handleImgOperation(3)"><i class="el-icon-refresh-right icon"></i></span> <span class="text" @click="handleImgOperation(3)"><i class="el-icon-refresh-right icon"></i></span>
</el-tooltip> </el-tooltip>
<el-tooltip effect="dark" content="左右镜像" placement="bottom">
<span class="text"><i class="iconfont icon-zuoyoufanzhuan_huaban1 icon" @click="handleImgOperation(4)" style="font-size: 21px;font-weight: 500;"></i></span>
</el-tooltip>
<el-tooltip effect="dark" content="上下镜像" placement="bottom">
<span class="text"><i class="iconfont icon-chuizhifanzhuan_huaban1 icon" @click="handleImgOperation(5)" style="font-size: 21px;font-weight: 500;"></i></span>
</el-tooltip>
</div> </div>
</div> </div>
<div class="h-right"> <div class="h-right">
<div class="r-option"> <div class="r-option">
<el-tooltip effect="dark" :content="IsFullScreen?'退出全屏':'全屏'" placement="bottom"> <el-tooltip effect="dark" :content="IsFullScreen?'退出全屏':'全屏'" placement="bottom">
<div class="right-block" @click="handleFullScreen(IsFullScreen?false:true)"><i v-if="IsFullScreen" class="ri-fullscreen-exit-line"></i><i v-else class="ri-fullscreen-line"></i></div> <div class="right-block" @click="handleFullScreen(IsFullScreen?false:true)"><i v-if="IsFullScreen" v-cloak class="ri-fullscreen-exit-line"></i><i v-else class="ri-fullscreen-line"></i></div>
</el-tooltip> </el-tooltip>
<el-tooltip effect="dark" :content="HideInformation?'显示信息':'隐藏信息'" placement="bottom"> <el-tooltip effect="dark" :content="HideInformation?'显示信息':'隐藏信息'" placement="bottom">
<div class="right-block" @click="handleHideInformation(HideInformation?false:true)"> <div class="right-block" @click="handleHideInformation(HideInformation?false:true)">
<i v-if="HideInformation" class="ri-layout-right-2-line"></i><i v-else class="ri-layout-right-line"></i> <i v-if="HideInformation" v-cloak class="ri-layout-right-2-line"></i><i v-else class="ri-layout-right-line"></i>
</div> </div>
</el-tooltip> </el-tooltip>
<!--{if $_G[uid]}-->
<el-dropdown trigger="click" @command="handleavatar"> <el-dropdown trigger="click" @command="handleavatar" v-cloak>
<div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div> <div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div>
<el-dropdown-menu slot="dropdown" style="width: 165px;"> <el-dropdown-menu slot="dropdown" style="width: 165px;">
<el-dropdown-item command="personal">个人设置</el-dropdown-item> <el-dropdown-item command="personal">个人设置</el-dropdown-item>
@@ -88,6 +131,9 @@
<el-dropdown-item command="OutLogin">退出站点</el-dropdown-item> <el-dropdown-item command="OutLogin">退出站点</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<!--{else}-->
<el-button type="primary" size="mini" @click="GoLogin">登录</el-button>
<!--{/if}-->
</div> </div>
</div> </div>
</div> </div>
@@ -147,7 +193,7 @@
<div class="information-box"> <div class="information-box">
<el-scrollbar class="page-component__scroll"> <el-scrollbar class="page-component__scroll">
<div class="title">{{imagesData.name}}.{{imagesData.ext}}</div> <div class="title"><span v-cloak>{{imagesData.name}}</span>.<span v-cloak>{{imagesData.ext}}</span></div>
<div class="operation clearfix" v-if="(imagesData.opentype!='video'&&imagesData.opentype!='pdf'&&imagesData.opentype!='text') || parseInt(imagesData.download) || parseInt(imagesData.share)"> <div class="operation clearfix" v-if="(imagesData.opentype!='video'&&imagesData.opentype!='pdf'&&imagesData.opentype!='text') || parseInt(imagesData.download) || parseInt(imagesData.share)">
<div v-if="parseInt(imagesData.download)" class="circular bg" @click="handleDown">立即下载</div> <div v-if="parseInt(imagesData.download)" class="circular bg" @click="handleDown">立即下载</div>
<el-tooltip v-if="imagesData.opentype!='video'&&imagesData.opentype!='pdf'&&imagesData.opentype!='text'" class="item" effect="dark" content="查看原图" placement="bottom"> <el-tooltip v-if="imagesData.opentype!='video'&&imagesData.opentype!='pdf'&&imagesData.opentype!='text'" class="item" effect="dark" content="查看原图" placement="bottom">
@@ -165,9 +211,9 @@
<div class="message"> <div class="message">
<div class="thesis-wrap" v-if="imagesData.colors && imagesData.colors.length"> <div class="thesis-wrap" v-if="imagesData.colors && imagesData.colors.length">
<div class="tip-title">颜色</div> <div class="tip-title">颜色</div>
<ul class="color clearfix"> <ul class="color clearfix" v-cloak>
<li class="color-list" v-for="citem in imagesData.colors"> <li class="color-list" v-for="citem in imagesData.colors">
<el-dropdown trigger="click" @visible-change="ShowPopoverColor(citem.val)" @command="handleCommandColor" placement="bottom"> <el-dropdown v-cloak trigger="click" @visible-change="ShowPopoverColor(citem.val)" @command="handleCommandColor" placement="bottom">
<el-tooltip :content="'#'+citem.val" effect="light" placement="top" popper-class="color-top"> <el-tooltip :content="'#'+citem.val" effect="light" placement="top" popper-class="color-top">
<div class="bg" :style="{background: '#'+citem.val}"></div> <div class="bg" :style="{background: '#'+citem.val}"></div>
</el-tooltip> </el-tooltip>
@@ -189,27 +235,27 @@
<div class="thesis-wrap" v-if="imagesData.tag && imagesData.tag.length"> <div class="thesis-wrap" v-if="imagesData.tag && imagesData.tag.length">
<div class="tip-title">标签</div> <div class="tip-title">标签</div>
<div v-if="imagesData.tag" class="label clearfix"> <div v-if="imagesData.tag" class="label clearfix" v-cloak>
<el-tag v-for="item in imagesData.tag" effect="plain" @click="handleClickTag(item.key)">{{item.val}}</el-tag> <el-tag v-for="item in imagesData.tag" effect="plain" @click="handleClickTag(item.key)">{{item.val}}</el-tag>
</div> </div>
</div> </div>
<div class="thesis-wrap" v-if="imagesData.desc"> <div class="thesis-wrap" v-if="imagesData.desc" v-cloak>
<div class="tip-title">注释</div> <div class="tip-title">注释</div>
<div v-if="imagesData.desc" class="notes">{{imagesData.desc}}</div> <div v-if="imagesData.desc" class="notes">{{imagesData.desc}}</div>
</div> </div>
<div class="thesis-wrap" v-if="imagesData.link"> <div class="thesis-wrap" v-if="imagesData.link" v-cloak>
<div class="tip-title">链接</div> <div class="tip-title">链接</div>
<p class="link"> <p class="link">
<span id="copyText" @click="handleClickLink(imagesData.link)">{{imagesData.link}}</span> <span id="copyText" @click="handleClickLink(imagesData.link)">{{imagesData.link}}</span>
<i class="ri-file-copy-line" @click="copyText"></i> <i class="ri-file-copy-line" @click="copyText"></i>
</p> </p>
</div> </div>
<div class="thesis-wrap" v-if="imagesData.fids"> <div class="thesis-wrap" v-if="imagesData.foldernames && imagesData.foldernames.length">
<div class="tip-title">分类</div> <div class="tip-title">分类</div>
<div class="label clearfix" style="padding: 0;"> <div class="label clearfix" style="padding: 0;" v-cloak>
<el-tag v-for="item in imagesData.fids" effect="plain" @click="handleClickClass(item)"> <el-tag v-for="item in imagesData.foldernames" effect="plain" @click="handleClickClass(item.key)">
{{imagesData.foldernames[item]}}</el-tag> {{item.val}}</el-tag>
</div> </div>
</div> </div>
@@ -221,7 +267,7 @@
<div class="name">评分</div> <div class="name">评分</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record"> <div class="record" v-cloak>
<i v-for="item in parseInt(imagesData.grade)" <i v-for="item in parseInt(imagesData.grade)"
class="ri-star-fill star active"></i> class="ri-star-fill star active"></i>
<i v-for="item in 5-parseInt(imagesData.grade)" <i v-for="item in 5-parseInt(imagesData.grade)"
@@ -234,7 +280,7 @@
<div class="name">尺寸</div> <div class="name">尺寸</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record">{{imagesData.width}}×{{imagesData.height}}</div> <div class="record" v-cloak>{{imagesData.width}}×{{imagesData.height}}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" class="field"> <el-row type="flex" class="field">
@@ -242,7 +288,7 @@
<div class="name">文件大小</div> <div class="name">文件大小</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record">{{imagesData.fsize}}</div> <div class="record" v-cloak>{{imagesData.fsize}}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" class="field"> <el-row type="flex" class="field">
@@ -250,7 +296,7 @@
<div class="name">类型</div> <div class="name">类型</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record">{{imagesData.ext}}</div> <div class="record" v-cloak>{{imagesData.ext}}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" class="field"> <el-row type="flex" class="field">
@@ -258,7 +304,7 @@
<div class="name">创建时间</div> <div class="name">创建时间</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record">{{imagesData.mtime}}</div> <div class="record" v-cloak>{{imagesData.mtime}}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" class="field"> <el-row type="flex" class="field">
@@ -266,7 +312,7 @@
<div class="name">添加时间</div> <div class="name">添加时间</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record">{{imagesData.btime}}</div> <div class="record" v-cloak>{{imagesData.btime}}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" class="field"> <el-row type="flex" class="field">
@@ -274,7 +320,7 @@
<div class="name">修改时间</div> <div class="name">修改时间</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div class="record">{{imagesData.dateline}}</div> <div class="record" v-cloak>{{imagesData.dateline}}</div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@@ -293,7 +339,7 @@
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
<!--{template components/header/index}--> <!--{template pc/components/header/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
@@ -318,10 +364,12 @@
slider:0, slider:0,
proportion:0, proportion:0,
fproportion:0, fproportion:0,
index:0,
LoadFirst:false,
scaleX:0,
scaleY:0,
rotate:0, rotate:0,
total:0, total:0,
index:0,
LoadFirst:false
}, },
} }
@@ -339,9 +387,13 @@
this.handleImgSize(val); this.handleImgSize(val);
}, },
'ImgParam.rotate':function(val){ 'ImgParam.rotate':function(val){
$('.image-viewer__img').css({ this.handleImgTransform();
transform:'rotate('+val+'deg)' },
}) 'ImgParam.scaleX':function(val){
this.handleImgTransform();
},
'ImgParam.scaleY':function(val){
this.handleImgTransform();
}, },
rids:{ rids:{
handler(data){ handler(data){
@@ -382,6 +434,22 @@
}, },
methods: { methods: {
handleImgTransform(){
var self = this;
var str = '';
if(self.ImgParam.rotate != 0){
str += ' rotate('+self.ImgParam.rotate+'deg)';
}
if(self.ImgParam.scaleX != 0){
str += ' scaleX('+self.ImgParam.scaleX+')';
}
if(self.ImgParam.scaleY != 0){
str += ' scaleY('+self.ImgParam.scaleY+')';
}
$('.image-viewer__img').css({
transform:str
})
},
handleImgSize(proportion){ handleImgSize(proportion){
var self = this; var self = this;
// if(self.ImgParam.LoadFirst){ // if(self.ImgParam.LoadFirst){
@@ -454,7 +522,10 @@
}, },
handleImgSet(){ handleImgSet(){
var self = this; var self = this;
self.ImgParam.rotate = 0; // self.ImgParam.rotate = 0;
// self.ImgParam.scaleX = 0;
// self.ImgParam.scaleY = 0;
var img = $('.image-viewer__img'); var img = $('.image-viewer__img');
var canva = $('#ImgScroll .el-scrollbar__view'); var canva = $('#ImgScroll .el-scrollbar__view');
var Bw = $('#ImgScroll').width(); var Bw = $('#ImgScroll').width();
@@ -567,11 +638,12 @@
rid:self.rid rid:self.rid
},function(json){ },function(json){
var item = json.resourcesdata; var item = json.resourcesdata;
if(item.opentype=='image' || item.opentype=='other'){ // if(item.opentype=='image' || item.opentype=='other'){
item['icondata'] = (item['icondata']); // item['icondata'] = (item['icondata']);
item['realpath'] = (item['realpath']); // item['realpath'] = (item['realpath']);
item['originalimg'] = (item['originalimg']); // item['originalimg'] = (item['originalimg']);
} // }
document.title = item.name+'-$_G[setting][sitename]';
var colors = []; var colors = [];
if(item.colors){ if(item.colors){
for(var c in item.colors){ for(var c in item.colors){
@@ -595,6 +667,18 @@
} }
} }
item.tag = tags; item.tag = tags;
var foldernames = [];
if(item.foldernames){
for(var f in item.foldernames){
var fstr = {
key:f,
val:item.foldernames[f]
};
foldernames.push(fstr);
}
}
item.foldernames = foldernames;
self.imagesData = item self.imagesData = item
self.HtmlLoading = false; self.HtmlLoading = false;
},'json'); },'json');
@@ -660,6 +744,20 @@
num=0; num=0;
} }
this.ImgParam.rotate = num; this.ImgParam.rotate = num;
}else if(type==4){
var scaleX = this.ImgParam.scaleX;
if(scaleX == 0){
this.ImgParam.scaleX = -1;
}else{
this.ImgParam.scaleX = 0;
}
}else if(type==5){
var scaleY = this.ImgParam.scaleY;
if(scaleY == 0){
this.ImgParam.scaleY = -1;
}else{
this.ImgParam.scaleY = 0;
}
} }
}, },
@@ -723,7 +821,12 @@
}, },
handleCommandColor(val){ handleCommandColor(val){
if(val == 'common'){ if(val == 'common'){
<!--{if $opentype=='current'}-->
window.parent.window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&color=' + this.ColorPopver.base;
window.parent.window.location.reload()
<!--{else}-->
window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&color=' + this.ColorPopver.base; window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&color=' + this.ColorPopver.base;
<!--{/if}-->
}else{ }else{
CopyTxt(this,val) CopyTxt(this,val)
} }
@@ -774,10 +877,21 @@
}, },
handleClickTag(tid){ handleClickTag(tid){
<!--{if $opentype=='current'}-->
window.parent.window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&tag=' + tid;
window.parent.window.location.reload()
<!--{else}-->
window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&tag=' + tid; window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&tag=' + tid;
<!--{/if}-->
}, },
handleClickClass(cid){ handleClickClass(cid){
<!--{if $opentype=='current'}-->
window.parent.window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&classify=' + cid;
window.parent.window.location.reload()
<!--{else}-->
window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&classify=' + cid; window.location.href = MOD_URL + '#appid=' + this.imagesData.appid + '&classify=' + cid;
<!--{/if}-->
}, },
handleClickLink(val){ handleClickLink(val){
window.open(val); window.open(val);
@@ -860,7 +974,11 @@
handleavatar(type) {//头像点击 handleavatar(type) {//头像点击
switch(type){ switch(type){
case 'personal': case 'personal':
<!--{if $opentype=='current'}-->
window.parent.window.location.href = MOD_URL + '&op=user&do=personal';
<!--{else}-->
window.location.href = MOD_URL + '&op=user&do=personal'; window.location.href = MOD_URL + '&op=user&do=personal';
<!--{/if}-->
break; break;
case 'help': case 'help':
window.open('https://www.yuque.com/pichome'); window.open('https://www.yuque.com/pichome');
@@ -869,10 +987,18 @@
window.open('https://support.qq.com/products/340252'); window.open('https://support.qq.com/products/340252');
break; break;
case 'setting': case 'setting':
<!--{if $opentype=='current'}-->
window.parent.window.location.href = MOD_URL + '&op=admin&do=basic';
<!--{else}-->
window.location.href = MOD_URL + '&op=admin&do=basic'; window.location.href = MOD_URL + '&op=admin&do=basic';
<!--{/if}-->
break; break;
case 'library': case 'library':
<!--{if $opentype=='current'}-->
window.parent.window.location.href = MOD_URL + '&op=library';
<!--{else}-->
window.location.href = MOD_URL + '&op=library'; window.location.href = MOD_URL + '&op=library';
<!--{/if}-->
break; break;
case 'about': case 'about':
this.$alert( this.$alert(
@@ -921,7 +1047,12 @@
} }
}, },
goBack(){
window.parent.pvue.DetailsIframe = ''
},
GoLogin(){
window.location.href = SITEURL+'user.php?mod=login';
},
}, },
mounted() { mounted() {
var self = this; var self = this;
@@ -958,5 +1089,5 @@
</script> </script>
<script type="text/javascript" src="{MOD_PATH}/js/jquery.mousewheel.min.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/jquery.mousewheel.min.js?{VERHASH}"></script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,20 +1,21 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/index.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/index.css?{VERHASH}"/>
<script type="text/javascript" src="{MOD_PATH}/js/vue/vuex.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/vue/vuex.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/row-grid.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/row-grid.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/waterfall.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/waterfall.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/plug/wavesurfer.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/plug/wavesurfer.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/audioPlay.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/audioPlay.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/headerWatch.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/headerWatch.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/headerMethods.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/headerMethods.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/js/plug/DomResize.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/plug/DomResize.js?{VERHASH}"></script>
<style type="text/css"> <style type="text/css">
.el-header{ .el-header{
border-bottom: 0; border-bottom: 0;
} }
</style> </style>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="auto" style="padding: 0;z-index: 10;"> <el-header height="auto" style="padding: 0;z-index: 10;">
@@ -24,23 +25,28 @@
<div class="page-content"> <div class="page-content">
<el-scrollbar class="page-component__scroll body_scroll"> <el-scrollbar class="page-component__scroll body_scroll">
<div class="content" style="padding: 0px 16px 0;"> <div class="content" style="padding: 0px 16px 0;">
<images></images> <images @opentype="opentype"></images>
</div> </div>
</el-scrollbar> </el-scrollbar>
<el-backtop target=".body_scroll>.el-scrollbar__wrap"></el-backtop> <el-backtop target=".body_scroll>.el-scrollbar__wrap"></el-backtop>
</div> </div>
</el-main> </el-main>
</el-container> </el-container>
<div id="Details_Iframe" v-if="DetailsIframe">
<iframe id="iframesrc" :src="DetailsIframe" width="100%" height="100%" style="border: 0;"></iframe>
</div>
</div> </div>
<!--{template components/index/indexVuex}--> <!--{template pc/components/index/indexVuex}-->
<!--{template components/headerindex/index}--> <!--{template pc/components/headerindex/index}-->
<!--{template components/index/images}--> <!--{template pc/components/index/images}-->
<script type="text/javascript"> <script type="text/javascript">
var pvue = new Vue({ var pvue = new Vue({
el: '#dzzoffice', el: '#dzzoffice',
data: function() { data: function() {
return { return {
DetailsIframe:''
} }
}, },
watch:{ watch:{
@@ -99,14 +105,14 @@
if(other){ if(other){
VuexStore.commit('seTHeader_Information_other', other); VuexStore.commit('seTHeader_Information_other', other);
}else{ }else{
VuexStore.commit('seTHeader_Information_other', 'btime'); VuexStore.commit('seTHeader_Information_other', pagesetting.other);
} }
var Layout = sessionStorage.getItem('Layout'); var Layout = sessionStorage.getItem('Layout');
if(Layout){ if(Layout){
VuexStore.commit('seTHeader_Information_Layout', Layout); VuexStore.commit('seTHeader_Information_Layout', Layout);
}else{ }else{
VuexStore.commit('seTHeader_Information_Layout', 'waterFall'); VuexStore.commit('seTHeader_Information_Layout', pagesetting.layout);
} }
var order = sessionStorage.getItem('order'); var order = sessionStorage.getItem('order');
@@ -114,8 +120,8 @@
VuexStore.commit('SetimgParameter', {key:'order',val:parseInt(order)}); VuexStore.commit('SetimgParameter', {key:'order',val:parseInt(order)});
VuexStore.commit('SetimgParameterInit', {key:'order',val:parseInt(order)}); VuexStore.commit('SetimgParameterInit', {key:'order',val:parseInt(order)});
}else{ }else{
VuexStore.commit('SetimgParameter', {key:'order',val:'1'}); VuexStore.commit('SetimgParameter', {key:'order',val:parseInt(pagesetting.sort)});
VuexStore.commit('SetimgParameterInit', {key:'order',val:'1'}); VuexStore.commit('SetimgParameterInit', {key:'order',val:parseInt(pagesetting.sort)});
} }
var asc = sessionStorage.getItem('asc'); var asc = sessionStorage.getItem('asc');
@@ -123,8 +129,8 @@
VuexStore.commit('SetimgParameter', {key:'asc',val:asc}); VuexStore.commit('SetimgParameter', {key:'asc',val:asc});
VuexStore.commit('SetimgParameterInit', {key:'asc',val:asc}); VuexStore.commit('SetimgParameterInit', {key:'asc',val:asc});
}else{ }else{
VuexStore.commit('SetimgParameter', {key:'asc',val:'desc'}); VuexStore.commit('SetimgParameter', {key:'asc',val:pagesetting.desc});
VuexStore.commit('SetimgParameterInit', {key:'asc',val:'desc'}); VuexStore.commit('SetimgParameterInit', {key:'asc',val:pagesetting.desc});
} }
<!--{/if}--> <!--{/if}-->
<!--{if $_G[uid]}--> <!--{if $_G[uid]}-->
@@ -133,14 +139,27 @@
var GetAppid = this.GetAppid?this.GetAppid:'all'; var GetAppid = this.GetAppid?this.GetAppid:'all';
var ShowScreen = sessionStorage.getItem('showscreen_'+GetAppid)? sessionStorage.getItem('showscreen_'+GetAppid):0; var ShowScreen = sessionStorage.getItem('showscreen_'+GetAppid)? sessionStorage.getItem('showscreen_'+GetAppid):0;
<!--{/if}--> <!--{/if}-->
if(pagesetting.opentype){
VuexStore.commit('seTHeader_Information_Opentype', pagesetting.opentype);
}else{
VuexStore.commit('seTHeader_Information_Opentype', 'new');
}
VuexStore.commit('SetShowScreen',ShowScreen); VuexStore.commit('SetShowScreen',ShowScreen);
} }
}, },
methods:{ methods:{
opentype(rid){
var self = this;
this.DetailsIframe = SITEURL+MOD_URL+'&op=details&opentype=current#rid='+rid;
}
}, },
mounted() { mounted() {
var self = this;
} }
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,5 +1,5 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<script type="text/javascript" src="{MOD_PATH}/js/plug/sortable.min.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/plug/sortable.min.js?{VERHASH}"></script>
<style type="text/css"> <style type="text/css">
.lbox{ .lbox{
padding: 30px 0; padding: 30px 0;
@@ -102,21 +102,24 @@
[v-cloak]{ [v-cloak]{
display: none; display: none;
} }
.el-progress-bar__inner{
transition: none;
}
/* .SortableBox .sortable-list .el-checkbox{ /* .SortableBox .sortable-list .el-checkbox{
min-width: 120px; min-width: 120px;
} */ } */
</style> </style>
<!--{template frame/header_simple_end}--> <!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="70px" style="padding: 0;z-index: 10;"> <el-header height="70px" style="padding: 0;z-index: 10;">
<page-header :isscreenshow="false"></page-header> <page-header></page-header>
</el-header> </el-header>
<el-main> <el-main>
<div class="page-content"> <div class="page-content">
<el-scrollbar class="page-component__scroll"> <el-scrollbar class="page-component__scroll">
<div class="content" style="padding: 26px 16px;"> <div class="content" style="padding: 26px 16px;">
<h1 style="text-align: center;color: var(--content-textHover);">我的</h1> <h1 style="text-align: center;color: var(--content-textHover);"> 设 置</h1>
<div class="lbox" v-if="dataList.length"> <div class="lbox" v-if="dataList.length">
<div class="block" v-for="(item,index) in dataList"> <div class="block" v-for="(item,index) in dataList">
<div class="images"> <div class="images">
@@ -134,9 +137,20 @@
<div class="img-bg"></div> <div class="img-bg"></div>
<div class="img-bg"></div> <div class="img-bg"></div>
</template> </template>
<div class="progress" v-if="parseInt(item.state)==0">
<div class="progress" v-if="parseInt(item.state)==1"> <div style="width: 100%;text-align: center;">
<el-button type="primary" size="mini" @click="handleImport(index,item.appid)">点击导入</el-button>
</div>
</div>
<div class="progress" v-else-if="parseInt(item.state)==1">
<div style="width: 100%;"> <div style="width: 100%;">
<p style="margin-bottom: 5px;color: #FFFFFF;font-size: 14px;">导入中...</p>
<el-progress :text-inside="true" :stroke-width="19" :percentage="parseInt(item.percent)"></el-progress>
</div>
</div>
<div class="progress" v-else-if="parseInt(item.state)==2">
<div style="width: 100%;">
<p style="margin-bottom: 5px;color: #FFFFFF;font-size: 14px;">导入完成,校验中...</p>
<el-progress :text-inside="true" :stroke-width="19" :percentage="parseInt(item.percent)"></el-progress> <el-progress :text-inside="true" :stroke-width="19" :percentage="parseInt(item.percent)"></el-progress>
</div> </div>
</div> </div>
@@ -206,7 +220,8 @@
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
<!--{template components/headerAdmin/index}--> <!--{template pc/components/headerAdmin/index}-->
<!-- 0未导入,1导入中,2校验中,3完成 -->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
el: '#dzzoffice', el: '#dzzoffice',
@@ -415,11 +430,20 @@
}, },
handleRefresh(index,appid){ handleRefresh(index,appid){
var self = this; var self = this;
if(!self.dataList[index]['time']){ // if(!self.dataList[index]['time']){
$.post(MOD_URL+'&op=exportfile&appid='+appid); $.post(MOD_URL+'&op=initexport&appid='+appid);
self.dataList[index].state = 1; self.dataList[index].state = 1;
self.dataList[index].percent = 0; self.dataList[index].percent = 0;
self.handleRefreshLoading(index,appid); self.handleRefreshLoading(index,appid);
// }
},
handleimplement(index,appid){
var self = this;
if(!self.dataList[index]['time']){
$.post(MOD_URL+'&op=initexport&appid='+appid);
self.dataList[index].state = 1;
self.handleRefreshLoading(index,appid);
} }
}, },
@@ -431,11 +455,9 @@
appid:appid appid:appid
},function(data){ },function(data){
if(data.success){ if(data.success){
if(parseInt(data.data.state)==3){
if(parseInt(data.data.state)==2){
clearInterval(self.dataList[index]['time']); clearInterval(self.dataList[index]['time']);
self.dataList[index].percent = 100; self.dataList[index].percent = 100;
setTimeout(function(){ setTimeout(function(){
self.dataList[index].filenum = data.data.filenum; self.dataList[index].filenum = data.data.filenum;
self.dataList[index].percent = parseInt(data.data.percent); self.dataList[index].percent = parseInt(data.data.percent);
@@ -446,16 +468,17 @@
message:data.data.appname+' 更新完成' message:data.data.appname+' 更新完成'
},500); },500);
},500); },500);
}else{ }else{
if(parseInt(data.data.state) != self.dataList[index]['state']){
self.dataList[index].percent = 100;
}
self.dataList[index].filenum = data.data.filenum; self.dataList[index].filenum = data.data.filenum;
self.dataList[index].percent = parseInt(data.data.percent); self.dataList[index].percent = parseInt(data.data.percent);
self.dataList[index].state = parseInt(data.data.state); self.dataList[index].state = parseInt(data.data.state);
if(self.dataList[index].state==0){ /*if(self.dataList[index].state==0){
clearInterval(self.dataList[index]['time']); clearInterval(self.dataList[index]['time']);
self.$message.error('更新中断,请刷新重试'); self.$message.error('更新中断,请刷新重试');
} }*/
} }
}else{ }else{
clearInterval(self.dataList[index]['time']); clearInterval(self.dataList[index]['time']);
@@ -472,13 +495,16 @@
$.post(MOD_URL+'&op=library&operation=getdata',function(data){ $.post(MOD_URL+'&op=library&operation=getdata',function(data){
self.dataList = data.data; self.dataList = data.data;
for(var i in self.dataList){ for(var i in self.dataList){
if(parseInt(self.dataList[i].state) == 1){ if(parseInt(self.dataList[i].state) == 1 || parseInt(self.dataList[i].state) == 2){
self.handleRefresh(i,self.dataList[i].appid) self.handleimplement(i,self.dataList[i].appid)
} }
} }
},'json'); },'json');
}, },
handleImport(index,appid){
this.handleimplement(index,appid)
},
handleCheckexport(){ handleCheckexport(){
var self = this; var self = this;
$.get(MOD_URL+'&op=checkexport',function(){ $.get(MOD_URL+'&op=checkexport',function(){
@@ -493,4 +519,4 @@
}) })
</script> </script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -1,6 +1,7 @@
<!--{template frame/header_simple_start}--> <!--{template pc/frame/header_simple_start}-->
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/details.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/xuanzhuan/index.css?{VERHASH}"/>
<!--{template frame/header_simple_end}--> <link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/details.css?{VERHASH}"/>
<!--{template pc/frame/header_simple_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header height="70" style="padding: 0;z-index: 10;"> <el-header height="70" style="padding: 0;z-index: 10;">
@@ -57,7 +58,12 @@
<el-tooltip effect="dark" content="旋转" placement="bottom"> <el-tooltip effect="dark" content="旋转" placement="bottom">
<span class="text" @click="handleImgOperation(3)"><i class="el-icon-refresh-right icon"></i></span> <span class="text" @click="handleImgOperation(3)"><i class="el-icon-refresh-right icon"></i></span>
</el-tooltip> </el-tooltip>
<el-tooltip effect="dark" content="左右镜像" placement="bottom">
<span class="text"><i class="iconfont icon-zuoyoufanzhuan_huaban1 icon" @click="handleImgOperation(4)" style="font-size: 21px;font-weight: 500;"></i></span>
</el-tooltip>
<el-tooltip effect="dark" content="上下镜像" placement="bottom">
<span class="text"><i class="iconfont icon-chuizhifanzhuan_huaban1 icon" @click="handleImgOperation(5)" style="font-size: 21px;font-weight: 500;"></i></span>
</el-tooltip>
</div> </div>
</div> </div>
@@ -291,7 +297,7 @@
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
<!--{template components/header/index}--> <!--{template pc/components/header/index}-->
<script type="text/javascript"> <script type="text/javascript">
new Vue({ new Vue({
@@ -312,7 +318,7 @@
imagesData: { imagesData: {
rid : '$resourcesdata[rid]', rid : '$resourcesdata[rid]',
appid : '$resourcesdata[appid]', appid : '$resourcesdata[appid]',
name : '$resourcesdata[type]', name : '$resourcesdata[name]',
type : '$resourcesdata[type]', type : '$resourcesdata[type]',
ext : '$resourcesdata[ext]', ext : '$resourcesdata[ext]',
height : $resourcesdata[height], height : $resourcesdata[height],
@@ -340,6 +346,8 @@
slider:0, slider:0,
proportion:0, proportion:0,
fproportion:0, fproportion:0,
scaleX:0,
scaleY:0,
rotate:0, rotate:0,
total:0, total:0,
index:0, index:0,
@@ -354,9 +362,13 @@
this.handleImgSize(val); this.handleImgSize(val);
}, },
'ImgParam.rotate':function(val){ 'ImgParam.rotate':function(val){
$('.image-viewer__img').css({ this.handleImgTransform();
transform:'rotate('+val+'deg)' },
}) 'ImgParam.scaleX':function(val){
this.handleImgTransform();
},
'ImgParam.scaleY':function(val){
this.handleImgTransform();
}, },
imagesData:{ imagesData:{
handler(dasta){ handler(dasta){
@@ -373,11 +385,26 @@
} }
}, },
created() { created() {
document.title = '$resourcesdata[name]-$_G[setting][sitename]';
}, },
methods: { methods: {
handleImgTransform(){
var self = this;
var str = '';
if(self.ImgParam.rotate != 0){
str += ' rotate('+self.ImgParam.rotate+'deg)';
}
if(self.ImgParam.scaleX != 0){
str += ' scaleX('+self.ImgParam.scaleX+')';
}
if(self.ImgParam.scaleY != 0){
str += ' scaleY('+self.ImgParam.scaleY+')';
}
$('.image-viewer__img').css({
transform:str
})
},
handleImgSize(proportion){ handleImgSize(proportion){
var self = this; var self = this;
// if(self.ImgParam.LoadFirst){ // if(self.ImgParam.LoadFirst){
@@ -391,7 +418,7 @@
if(this.imagesData.opentype == 'other'){ if(this.imagesData.opentype == 'other'){
var width = parseFloat(this.imagesData.iconwidth); var width = parseFloat(this.imagesData.iconwidth);
var height = parseFloat()(this.imagesData.iconheight); var height = parseFloat(this.imagesData.iconheight);
}else{ }else{
var width = parseFloat(this.imagesData.width); var width = parseFloat(this.imagesData.width);
var height = parseFloat(this.imagesData.height); var height = parseFloat(this.imagesData.height);
@@ -596,6 +623,20 @@
num=0; num=0;
} }
this.ImgParam.rotate = num; this.ImgParam.rotate = num;
}else if(type==4){
var scaleX = this.ImgParam.scaleX;
if(scaleX == 0){
this.ImgParam.scaleX = -1;
}else{
this.ImgParam.scaleX = 0;
}
}else if(type==5){
var scaleY = this.ImgParam.scaleY;
if(scaleY == 0){
this.ImgParam.scaleY = -1;
}else{
this.ImgParam.scaleY = 0;
}
} }
}, },
@@ -881,5 +922,5 @@
</script> </script>
<script type="text/javascript" src="{MOD_PATH}/js/jquery.mousewheel.min.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/js/pc/jquery.mousewheel.min.js?{VERHASH}"></script>
<!--{template frame/footer_simple}--> <!--{template pc/frame/footer_simple}-->

View File

@@ -8,6 +8,7 @@
$do = isset($_GET['do']) ? trim($_GET['do']) : ''; $do = isset($_GET['do']) ? trim($_GET['do']) : '';
require_once libfile('function/user', '', 'user'); require_once libfile('function/user', '', 'user');
$user = C::t('user')->get_user_by_uid($uid); $user = C::t('user')->get_user_by_uid($uid);
$ismobile = helper_browser::ismobile();
if(empty($user['avatarstatus']) && dzz_check_avatar($_G['uid'], 'middle')) { if(empty($user['avatarstatus']) && dzz_check_avatar($_G['uid'], 'middle')) {
C::t('user')->update($_G['uid'], array('avatarstatus'=>'1')); C::t('user')->update($_G['uid'], array('avatarstatus'=>'1'));
} }
@@ -17,11 +18,17 @@
$user = C::t('user')->fetch_by_uid($uid); $user = C::t('user')->fetch_by_uid($uid);
if (!$uid) exit(json_encode(array('error' => true, 'msg' => '用户不存在'))); if (!$uid) exit(json_encode(array('error' => true, 'msg' => '用户不存在')));
if(isset($_GET['imgpath'])){ if(isset($_GET['imgpath'])){
$base64img = base64EncodeImage($_GET['imgpath']); if($ismobile){
if(upbase64($base64img,$uid)){ upbase64(trim($_GET['imgpath']),$uid);
@unlink($_GET['imgpath']); }else{
} $base64img = base64EncodeImage($_GET['imgpath']);
if(upbase64($base64img,$uid)){
@unlink($_GET['imgpath']);
}
}
} }
//用户名验证 //用户名验证
$username = trim($_GET['username']); $username = trim($_GET['username']);
if (empty($username)) { if (empty($username)) {
@@ -112,7 +119,13 @@
$uid = getglobal('uid'); $uid = getglobal('uid');
$userdata = C::t('user')->fetch($uid); $userdata = C::t('user')->fetch($uid);
$theme = GetThemeColor(); $theme = GetThemeColor();
include template('page/adminPersonal');
if ($ismobile) {
include template('mobile/page/personal');
} else {
include template('pc/page/adminPersonal');
}
} }
} }
elseif ($do == 'uploadimg') {//上传用户头像 elseif ($do == 'uploadimg') {//上传用户头像
@@ -172,13 +185,12 @@
} }
function upBase64($base64Data, $uid) function upBase64($base64Data, $uid)
{ {
$img = base64_decode(str_replace('data:image/png;base64,', '', $base64Data)); $img = base64_decode(str_replace(array('data:image/png;base64,','data:image/jpeg;base64,','data:image/gif;base64,','data:image/jpg;base64,'), '', $base64Data));
$temp = getglobal('setting/attachdir') . 'cache/' . random(5) . '.png'; $temp = getglobal('setting/attachdir') . 'cache/' . random(5) . '.png';
//移动文件 //移动文件
if (!(file_put_contents($temp, $img))) { //移动失败 if (!(file_put_contents($temp, $img))) { //移动失败
return false; return false;
} else { //移动成功,生成3种尺寸头像 } else { //移动成功,生成3种尺寸头像
$home = get_home($uid); $home = get_home($uid);
if (!is_dir(DZZ_ROOT . './data/avatar/' . $home)) { if (!is_dir(DZZ_ROOT . './data/avatar/' . $home)) {
set_home($uid, DZZ_ROOT . './data/avatar/'); set_home($uid, DZZ_ROOT . './data/avatar/');

View File

@@ -1004,6 +1004,7 @@ CREATE TABLE `dzz_pichome_resources` (
`isdelete` tinyint(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '是否为删除状态', `isdelete` tinyint(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '是否为删除状态',
`btime` bigint(13) UNSIGNED NOT NULL COMMENT '添加时间', `btime` bigint(13) UNSIGNED NOT NULL COMMENT '添加时间',
`md5` char(32) NOT NULL DEFAULT '' COMMENT '文件md5值', `md5` char(32) NOT NULL DEFAULT '' COMMENT '文件md5值',
`lastdate` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后更改时间',
PRIMARY KEY (`rid`), PRIMARY KEY (`rid`),
KEY `appid` (`appid`), KEY `appid` (`appid`),
KEY `appid_2` (`appid`,`isdelete`) USING BTREE KEY `appid_2` (`appid`,`isdelete`) USING BTREE
@@ -1083,21 +1084,22 @@ CREATE TABLE `dzz_pichome_tagrelation` (
DROP TABLE IF EXISTS `dzz_pichome_vapp`; DROP TABLE IF EXISTS `dzz_pichome_vapp`;
CREATE TABLE `dzz_pichome_vapp` ( CREATE TABLE `dzz_pichome_vapp` (
`appid` char(6) NOT NULL DEFAULT '' COMMENT '库id', `appid` char(6) NOT NULL DEFAULT '' COMMENT '库id',
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '用户id', `uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
`username` char(30) NOT NULL DEFAULT '' COMMENT '用户名', `username` char(30) NOT NULL DEFAULT '' COMMENT '用户名',
`appname` varchar(255) NOT NULL DEFAULT '', `appname` varchar(255) NOT NULL DEFAULT '',
`personal` tinyint(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '0公开1私有', `personal` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '0公开1私有',
`path` blob NOT NULL COMMENT '对应目录路径', `path` blob NOT NULL COMMENT '对应目录路径',
`dateline` int(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新时间', `dateline` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`extra` text COMMENT '拓展数据', `extra` text COMMENT '拓展数据',
`perm` int(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '权限值', `perm` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '权限值',
`filenum` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文件个数', `filenum` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文件个数',
`lastid` char(13) DEFAULT '' COMMENT '最后执行位置id', `lastid` char(13) DEFAULT '' COMMENT '最后执行位置id',
`percent` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '导入百分比', `percent` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '导入百分比',
`state` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0未导入1导入中2导入完成', `state` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0未导入1导入中2检校3完成',
`filter` text COMMENT '筛选项', `filter` text COMMENT '筛选项',
`share` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '分享是否开放', `share` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '分享是否开放',
`download` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否开放下载', `download` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否开放下载',
`donum` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '已导入文件数',
PRIMARY KEY (`appid`) PRIMARY KEY (`appid`)
) ENGINE=MyISAM; ) ENGINE=MyISAM;

View File

@@ -44,15 +44,11 @@ INSERT INTO `dzz_hooks` (`id`, `app_market_id`, `name`, `description`, `type`, `
(20, 8, 'systemlog', '', 1, 0, 'admin\\systemlog\\classes\\systemlog', 1, 0); (20, 8, 'systemlog', '', 1, 0, 'admin\\systemlog\\classes\\systemlog', 1, 0);
INSERT INTO `dzz_connect` VALUES('阿里云存储', '', '', 'storage', 'ALIOSS', '', 2, 'connect_storage', '', 0);
INSERT INTO `dzz_connect` VALUES('企业盘', '', '', 'local', 'dzz', '', 2, '', '', -2);
INSERT INTO `dzz_connect` VALUES('Qcos', '', '', 'storage', 'QCOS', '', 2, 'connect_storage', '', 0);
-- --
-- 转存表中的数据 `dzz_local_storage` -- 转存表中的数据 `dzz_local_storage`
-- --
INSERT INTO `dzz_local_storage` VALUES(1, '服务器磁盘', 'dzz', 1, '', 0, 0, 0, 0, 0, 0);
-- --
-- 转存表中的数据 `dzz_usergroup` -- 转存表中的数据 `dzz_usergroup`
@@ -123,7 +119,7 @@ INSERT INTO `dzz_setting` VALUES('boardlicensed', '0');
INSERT INTO `dzz_setting` VALUES('leavealert', '0'); INSERT INTO `dzz_setting` VALUES('leavealert', '0');
INSERT INTO `dzz_setting` VALUES('bbclosed', '0'); INSERT INTO `dzz_setting` VALUES('bbclosed', '0');
INSERT INTO `dzz_setting` VALUES('closedreason', '网站升级中....'); INSERT INTO `dzz_setting` VALUES('closedreason', '网站升级中....');
INSERT INTO `dzz_setting` VALUES('sitename', 'PicHome'); INSERT INTO `dzz_setting` VALUES('sitename', 'dzz');
INSERT INTO `dzz_setting` VALUES('dateconvert', '1'); INSERT INTO `dzz_setting` VALUES('dateconvert', '1');
INSERT INTO `dzz_setting` VALUES('allowshare', '1'); INSERT INTO `dzz_setting` VALUES('allowshare', '1');
@@ -163,7 +159,7 @@ INSERT INTO `dzz_setting` VALUES('defaultdepartment', '1');
INSERT INTO `dzz_setting` VALUES ('pichomefilterfileds', 'a:12:{i:0;a:3:{s:3:\"key\";s:3:\"tag\";s:4:\"text\";s:6:\"标签\";s:7:\"checked\";s:1:\"1\";}i:1;a:3:{s:3:\"key\";s:5:\"color\";s:4:\"text\";s:6:\"颜色\";s:7:\"checked\";s:1:\"1\";}i:2;a:3:{s:3:\"key\";s:4:\"link\";s:4:\"text\";s:6:\"链接\";s:7:\"checked\";s:1:\"1\";}i:3;a:3:{s:3:\"key\";s:4:\"desc\";s:4:\"text\";s:6:\"注释\";s:7:\"checked\";s:1:\"1\";}i:4;a:3:{s:3:\"key\";s:8:\"duration\";s:4:\"text\";s:6:\"时长\";s:7:\"checked\";s:1:\"1\";}i:5;a:3:{s:3:\"key\";s:4:\"size\";s:4:\"text\";s:6:\"尺寸\";s:7:\"checked\";s:1:\"1\";}i:6;a:3:{s:3:\"key\";s:3:\"ext\";s:4:\"text\";s:6:\"类型\";s:7:\"checked\";s:1:\"1\";}i:7;a:3:{s:3:\"key\";s:5:\"shape\";s:4:\"text\";s:6:\"形状\";s:7:\"checked\";s:1:\"1\";}i:8;a:3:{s:3:\"key\";s:5:\"grade\";s:4:\"text\";s:6:\"评分\";s:7:\"checked\";s:1:\"1\";}i:9;a:3:{s:3:\"key\";s:5:\"btime\";s:4:\"text\";s:12:\"添加时间\";s:7:\"checked\";s:1:\"1\";}i:10;a:3:{s:3:\"key\";s:8:\"dateline\";s:4:\"text\";s:12:\"修改日期\";s:7:\"checked\";s:1:\"1\";}i:11;a:3:{s:3:\"key\";s:5:\"mtime\";s:4:\"text\";s:12:\"创建日期\";s:7:\"checked\";s:1:\"1\";}}'); INSERT INTO `dzz_setting` VALUES ('pichomefilterfileds', 'a:12:{i:0;a:3:{s:3:\"key\";s:3:\"tag\";s:4:\"text\";s:6:\"标签\";s:7:\"checked\";s:1:\"1\";}i:1;a:3:{s:3:\"key\";s:5:\"color\";s:4:\"text\";s:6:\"颜色\";s:7:\"checked\";s:1:\"1\";}i:2;a:3:{s:3:\"key\";s:4:\"link\";s:4:\"text\";s:6:\"链接\";s:7:\"checked\";s:1:\"1\";}i:3;a:3:{s:3:\"key\";s:4:\"desc\";s:4:\"text\";s:6:\"注释\";s:7:\"checked\";s:1:\"1\";}i:4;a:3:{s:3:\"key\";s:8:\"duration\";s:4:\"text\";s:6:\"时长\";s:7:\"checked\";s:1:\"1\";}i:5;a:3:{s:3:\"key\";s:4:\"size\";s:4:\"text\";s:6:\"尺寸\";s:7:\"checked\";s:1:\"1\";}i:6;a:3:{s:3:\"key\";s:3:\"ext\";s:4:\"text\";s:6:\"类型\";s:7:\"checked\";s:1:\"1\";}i:7;a:3:{s:3:\"key\";s:5:\"shape\";s:4:\"text\";s:6:\"形状\";s:7:\"checked\";s:1:\"1\";}i:8;a:3:{s:3:\"key\";s:5:\"grade\";s:4:\"text\";s:6:\"评分\";s:7:\"checked\";s:1:\"1\";}i:9;a:3:{s:3:\"key\";s:5:\"btime\";s:4:\"text\";s:12:\"添加时间\";s:7:\"checked\";s:1:\"1\";}i:10;a:3:{s:3:\"key\";s:8:\"dateline\";s:4:\"text\";s:12:\"修改日期\";s:7:\"checked\";s:1:\"1\";}i:11;a:3:{s:3:\"key\";s:5:\"mtime\";s:4:\"text\";s:12:\"创建日期\";s:7:\"checked\";s:1:\"1\";}}');
INSERT INTO `dzz_setting` VALUES ('overt', '1'); INSERT INTO `dzz_setting` VALUES ('overt', '1');
INSERT INTO `dzz_setting` VALUES ('pichomepagesetting', 'a:6:{s:5:\"theme\";s:0:\"\";s:6:\"layout\";s:9:\"waterFall\";s:4:\"show\";s:16:\"name,other\";s:5:\"other\";s:5:\"mtime\";s:4:\"sort\";s:1:\"1\";s:4:\"desc\";s:4:\"desc\";}'); INSERT INTO `dzz_setting` VALUES ('pichomepagesetting', 'a:7:{s:5:\"theme\";s:0:\"\";s:6:\"layout\";s:9:\"waterFall\";s:4:\"show\";s:10:\"name,other\";s:5:\"other\";s:5:\"mtime\";s:4:\"sort\";s:1:\"1\";s:4:\"desc\";s:4:\"desc\";s:8:\"opentype\";s:3:\"new\";}');
-- 转存表中的数据 `dzz_imagetype` -- 转存表中的数据 `dzz_imagetype`
-- --

0
library/index.htm Normal file
View File