Browse Source

优化

pull/29/head
zyronon 2 years ago
parent
commit
3b45b1e320
  1. 2
      src/api/index.js
  2. 3
      src/api/user.js
  3. 3
      src/api/videos.js
  4. 38340
      src/assets/data/post.json
  5. 582
      src/assets/data/users.json
  6. 235
      src/components/UserPanel.vue
  7. 17
      src/mock/index.js
  8. 27
      src/pages/home/index.vue
  9. 35
      src/utils/const_var.js
  10. 8
      src/utils/index.jsx

2
src/api/index.js

@ -3,5 +3,5 @@ import user from './user' @@ -3,5 +3,5 @@ import user from './user'
export default {
videos,
user
user,
}

3
src/api/user.js

@ -7,4 +7,7 @@ export default { @@ -7,4 +7,7 @@ export default {
author(params, data) {
return request({url: '/user/author', method: 'get', params, data})
},
profile(params, data) {
return request({url: '/user/profile/other', method: 'get', params, data})
},
}

3
src/api/videos.js

@ -26,4 +26,7 @@ export default { @@ -26,4 +26,7 @@ export default {
historyOther(params, data) {
return request({url: '/video/historyOther', method: 'get', params, data})
},
post(params, data) {
return request({url: '/aweme/post', method: 'get', params, data})
},
}

38340
src/assets/data/post.json

File diff suppressed because it is too large Load Diff

582
src/assets/data/users.json

@ -0,0 +1,582 @@ @@ -0,0 +1,582 @@
[
{
"extra": {
"fatal_item_ids": [],
"logid": "20230222232911D35C903406FC00209A46",
"now": 1677079751000
},
"log_pb": {
"impr_id": "20230222232911D35C903406FC00209A46"
},
"status_code": 0,
"status_msg": null,
"user": {
"apple_account": 0,
"avatar_168x168": {
"height": 720,
"uri": "aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1",
"url_list": [
"https://p3-pc.douyinpic.com/img/aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1~c5_168x168.jpeg?from=2956013662"
],
"width": 720
},
"avatar_300x300": {
"height": 720,
"uri": "aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1",
"url_list": [
"https://p3-pc.douyinpic.com/img/aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1~c5_300x300.jpeg?from=2956013662"
],
"width": 720
},
"avatar_larger": {
"height": 720,
"uri": "aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1",
"url_list": [
"https://p3-pc.douyinpic.com/aweme/1080x1080/aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1.jpeg?from=2956013662"
],
"width": 720
},
"avatar_medium": {
"height": 720,
"uri": "aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1",
"url_list": [
"https://p3-pc.douyinpic.com/aweme/720x720/aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1.jpeg?from=2956013662"
],
"width": 720
},
"avatar_thumb": {
"height": 720,
"uri": "aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1",
"url_list": [
"https://p3-pc.douyinpic.com/aweme/100x100/aweme-avatar/mosaic-legacy_330b002fd56a93e8b6f1.jpeg?from=2956013662"
],
"width": 720
},
"aweme_count": 772,
"aweme_count_correction_threshold": -1,
"birthday_hide_level": 0,
"can_set_item_cover": false,
"can_show_group_card": 1,
"card_entries": [
{
"card_data": "{\"is_order_card\":false,\"has_new\":false,\"is_store\":false,\"shop_id\":\"\",\"product_count\":19,\"store_type\":\"window\",\"icon_is_repeat\":false,\"icon_type\":\"png\",\"is_promotion_icon\":false}",
"goto_url": "sslocal://goods/shop?uid=68310389333\u0026sec_uid=MS4wLjABAAAAPCnTQLqza4Xqu-uO7KZHcKuILkO7RRz2oapyOC04AQ0",
"icon_dark": {
"url_list": [
"https://lf3-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_light-2x.png",
"https://lf9-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_light-2x.png",
"https://lf26-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_light-2x.png",
"https://lf3-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_light-3x.png",
"https://lf9-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_light-3x.png",
"https://lf26-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_light-3x.png"
]
},
"icon_light": {
"url_list": [
"https://lf3-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_dark-2x.png",
"https://lf9-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_dark-2x.png",
"https://lf26-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_dark-2x.png",
"https://lf3-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_dark-3x.png",
"https://lf9-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_dark-3x.png",
"https://lf26-static.bytednsdoc.com/obj/eden-cn/fylmmlqeh7nupanuhog/ic_dark-3x.png"
]
},
"sub_title": "19件好物",
"title": "进入橱窗",
"type": 1
}
],
"city": "绵阳",
"close_friend_type": 0,
"commerce_info": {
"challenge_list": null,
"head_image_list": null,
"offline_info_list": [],
"smart_phone_list": null,
"task_list": null
},
"commerce_user_info": {
"ad_revenue_rits": null,
"has_ads_entry": true,
"show_star_atlas_cooperation": false,
"star_atlas": 1
},
"commerce_user_level": 0,
"country": "中国",
"cover_and_head_image_info": {
"cover_list": null,
"profile_cover_list": []
},
"cover_colour": "#02161823",
"cover_url": [
{
"uri": "c8510002be9a3a61aad2",
"url_list": [
"https://p9-pc-sign.douyinpic.com/obj/c8510002be9a3a61aad2?x-expires=1677250800\u0026x-signature=SN2tjONsQKiPA5pmooY48%2BvkdBs%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/c8510002be9a3a61aad2?x-expires=1677250800\u0026x-signature=aB3UEiGyz3ag9Xd%2BKFv6kCU%2BAxU%3D\u0026from=2480802190",
"https://p6-pc-sign.douyinpic.com/obj/c8510002be9a3a61aad2?x-expires=1677250800\u0026x-signature=aSKWohOsN3YcSdNEFuHttwQHTUo%3D\u0026from=2480802190"
]
}
],
"custom_verify": "美食自媒体",
"district": null,
"dongtai_count": 0,
"dynamic_cover": {},
"enable_wish": false,
"enterprise_user_info": "{\"commerce_info\":{\"offline_info_list\":[],\"challenge_list\":null,\"task_list\":null,\"head_image_list\":null,\"smart_phone_list\":null},\"homepage_bottom_toast\":null,\"permissions\":[{\"Id\":3,\"Key\":\"ItemShop\",\"Name\":\"视频电商\",\"AppId\":1128,\"Status\":1,\"Extra\":null,\"Customization\":null,\"Parent\":0,\"Actions\":null},{\"Id\":4,\"Key\":\"LiveShop\",\"Name\":\"直播电商\",\"AppId\":1128,\"Status\":1,\"Extra\":null,\"Customization\":null,\"Parent\":0,\"Actions\":null},{\"Id\":5,\"Key\":\"UserShop\",\"Name\":\"个人橱窗\",\"AppId\":1128,\"Status\":1,\"Extra\":null,\"Customization\":null,\"Parent\":1,\"Actions\":null}],\"tab_ceiling_toast\":null,\"limiters\":null,\"attic_info\":null,\"profile_edit_button\":null,\"elite_center\":null,\"enterprise_card_visibility\":false,\"blue_label_edit_jump_url\":\"aweme://webview/?url=https%3A%2F%2Fapi.amemv.com%2Finsights%2Flite%2FcontactSetting%3Fhide_nav_bar%3D1%26title%3D%25E8%2581%2594%25E7%25B3%25BB%25E6%2596%25B9%25E5%25BC%258F%26enter_from%3Dcustomized_tab\u0026hide_nav_bar=1\u0026title=%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F\u0026rn_schema=aweme%3A%2F%2Freactnative%2F%3Fchannel_name%3Drn_patch%26bundle_name%3Dbusiness%26module_name%3Dpage_e_lite_contactSetting%26force_h5%3D1%26hide_nav_bar%3D1%26bundle_url%3D%26title%3D%25E8%2581%2594%25E7%25B3%25BB%25E6%2596%25B9%25E5%25BC%258F%26enter_from%3Dcustomized_tab\"}",
"enterprise_verify_reason": "",
"favorite_permission": 0,
"favoriting_count": 0,
"follow_guide": true,
"follow_status": 1,
"follower_count": 42898157,
"follower_request_status": 0,
"follower_status": 0,
"following_count": 1,
"forward_count": 1,
"gender": 0,
"has_e_account_role": true,
"has_subscription": false,
"im_primary_role_id": 1001,
"im_role_ids": [
1001,
8,
19,
9,
15
],
"image_send_exempt": false,
"ins_id": "",
"is_activity_user": false,
"is_ban": false,
"is_block": false,
"is_blocked": false,
"is_effect_artist": false,
"is_gov_media_vip": false,
"is_mix_user": true,
"is_not_show": false,
"is_series_user": false,
"is_sharing_profile_user": 0,
"is_star": false,
"iso_country_code": "CN",
"life_story_block": {
"life_story_block": false
},
"live_commerce": true,
"live_status": 0,
"max_follower_count": 45635987,
"message_chat_entry": true,
"mix_count": 9,
"mplatform_followers_count": 50635962,
"new_friend_type": 0,
"nickname": "李子柒",
"original_musician": {
"digg_count": 0,
"music_count": 0,
"music_used_count": 0
},
"pigeon_daren_status": "",
"pigeon_daren_warn_tag": "0",
"profile_tab_type": 0,
"province": "四川",
"publish_landing_tab": 3,
"r_fans_group_info": {},
"recommend_reason_relation": "",
"recommend_user_reason_source": 0,
"risk_notice_text": "",
"room_id": 0,
"school_name": "",
"sec_uid": "MS4wLjABAAAAPCnTQLqza4Xqu-uO7KZHcKuILkO7RRz2oapyOC04AQ0",
"secret": 0,
"series_count": 0,
"share_info": {
"bool_persist": 1,
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
"share_image_url": {
"uri": "tos-cn-p-0015/b01c417ab84c48a18151df6f4874c517_1651306670",
"url_list": [
"https://p9-pc-sign.douyinpic.com/obj/tos-cn-p-0015/b01c417ab84c48a18151df6f4874c517_1651306670?x-expires=1677250800\u0026x-signature=VJdYZKRToIVzHdI51FwQBKPhrlA%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/tos-cn-p-0015/b01c417ab84c48a18151df6f4874c517_1651306670?x-expires=1677250800\u0026x-signature=oEIUk4jxtjHvBU8VlBE%2FSV%2FAqwE%3D\u0026from=2480802190",
"https://p6-pc-sign.douyinpic.com/obj/tos-cn-p-0015/b01c417ab84c48a18151df6f4874c517_1651306670?x-expires=1677250800\u0026x-signature=xyfxdevA30BVgmbG%2BrPp0vD2rkw%3D\u0026from=2480802190"
]
},
"share_qrcode_url": {
"uri": "330b002fd4ab5b64f36e",
"url_list": [
"https://p3.douyinpic.com/obj/330b002fd4ab5b64f36e",
"https://p6.douyinpic.com/obj/330b002fd4ab5b64f36e",
"https://p26.douyinpic.com/obj/330b002fd4ab5b64f36e"
]
},
"share_title": "快来加入抖音,让你发现最有趣的我!",
"share_url": "www.iesdouyin.com/share/user/MS4wLjABAAAAPCnTQLqza4Xqu-uO7KZHcKuILkO7RRz2oapyOC04AQ0?sec_uid=MS4wLjABAAAAPCnTQLqza4Xqu-uO7KZHcKuILkO7RRz2oapyOC04AQ0\u0026from_ssr=1\u0026u_code=13kgm680k\u0026did=MS4wLjABAAAABJ_mRs4sEJHvG-sf_h49g7UCwbYtpzHo5DOznrSMhG6eweub_gtwy8cDOYAldLiv\u0026iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ\u0026with_sec_did=1",
"share_weibo_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。"
},
"short_id": "71158770",
"show_favorite_list": true,
"show_subscription": false,
"signature": "李家有女,人称子柒。联系邮箱:loveliziqi777@163.com",
"signature_display_lines": 0,
"signature_language": "un",
"special_follow_status": 0,
"sync_to_toutiao": 0,
"tab_settings": {
"private_tab": {
"private_tab_style": 1,
"show_private_tab": false
}
},
"total_favorited": 222136300,
"total_favorited_correction_threshold": -1,
"twitter_id": "",
"twitter_name": "",
"uid": "68310389333",
"unique_id": "",
"urge_detail": {
"user_urged": 0
},
"user_age": -1,
"user_not_see": 0,
"user_not_show": 1,
"verification_type": 1,
"video_cover": {},
"video_icon": {
"height": 720,
"uri": "",
"url_list": [],
"width": 720
},
"watch_status": false,
"white_cover_url": [
{
"uri": "318f1000413827e122102",
"url_list": [
"https://p9-pc-sign.douyinpic.com/obj/318f1000413827e122102?x-expires=1677250800\u0026x-signature=qpCkHogzhoVxIwezDfN5t2FkG3Q%3D\u0026from=2480802190",
"https://p6-pc-sign.douyinpic.com/obj/318f1000413827e122102?x-expires=1677250800\u0026x-signature=hAHznbrHUDBWy3UJuU%2FIHGgVCCU%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/318f1000413827e122102?x-expires=1677250800\u0026x-signature=eRLwT5DOpXyUqOpwu4ArZB3EZ%2Bo%3D\u0026from=2480802190"
]
}
],
"with_commerce_enterprise_tab_entry": false,
"with_commerce_entry": true,
"with_fusion_shop_entry": true,
"with_new_goods": false,
"youtube_channel_id": "",
"youtube_channel_title": ""
}
},
{
"extra": {
"fatal_item_ids": [],
"logid": "202302222325039B0ED70A0ED70D24FD4B",
"now": 1677079503000
},
"log_pb": {
"impr_id": "202302222325039B0ED70A0ED70D24FD4B"
},
"status_code": 0,
"status_msg": null,
"user": {
"apple_account": 0,
"avatar_168x168": {
"height": 720,
"uri": "aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1",
"url_list": [
"https://p3-pc.douyinpic.com/img/aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1~c5_168x168.jpeg?from=2956013662"
],
"width": 720
},
"avatar_300x300": {
"height": 720,
"uri": "aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1",
"url_list": [
"https://p3-pc.douyinpic.com/img/aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1~c5_300x300.jpeg?from=2956013662"
],
"width": 720
},
"avatar_larger": {
"height": 720,
"uri": "aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1",
"url_list": [
"https://p3-pc.douyinpic.com/aweme/1080x1080/aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1.jpeg?from=2956013662"
],
"width": 720
},
"avatar_medium": {
"height": 720,
"uri": "aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1",
"url_list": [
"https://p3-pc.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1.jpeg?from=2956013662"
],
"width": 720
},
"avatar_thumb": {
"height": 720,
"uri": "aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1",
"url_list": [
"https://p3-pc.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-i-0813_be03b84b932345a982f2820331c448c1.jpeg?from=2956013662"
],
"width": 720
},
"aweme_count": 2416,
"aweme_count_correction_threshold": -1,
"birthday_hide_level": 0,
"can_set_item_cover": false,
"can_show_group_card": 1,
"card_entries": [
{
"goto_url": "aweme://im/FansGroup/GuestState",
"icon_dark": {
"uri": "https://p3.douyinpic.com/obj/im-resource/old_fans_group_manage_dark.png",
"url_list": [
"https://p3.douyinpic.com/obj/im-resource/old_fans_group_manage_dark.png",
"https://p6.douyinpic.com/obj/im-resource/old_fans_group_manage_dark.png",
"https://p9.douyinpic.com/obj/im-resource/old_fans_group_manage_dark.png"
]
},
"icon_light": {
"uri": "https://p3.douyinpic.com/obj/im-resource/old_fans_group_manage_light.png",
"url_list": [
"https://p3.douyinpic.com/obj/im-resource/old_fans_group_manage_light.png",
"https://p6.douyinpic.com/obj/im-resource/old_fans_group_manage_light.png",
"https://p9.douyinpic.com/obj/im-resource/old_fans_group_manage_light.png"
]
},
"sub_title": "3个群聊",
"title": "粉丝群",
"type": 2
},
{
"card_data": "{\"has_yellow_point\":false,\"announcement_release_time\":0,\"preview_video_release_time\":0,\"precipitation_video_release_time\":0,\"style\":0,\"appointment_id\":0,\"typ\":0,\"subscribe_cnt\":0,\"subscribe_status\":0,\"top_title\":\"\",\"top_subtitle\":\"\",\"cycle\":0}",
"goto_url": "sslocal://webcast_lynxview?url=https%3A%2F%2Flf-webcast-gr-sourcecdn.bytegecko.com%2Fobj%2Fbyte-gurd-source-gr%2Fwebcast%2Fmono%2Flynx%2Fcommunity_live_dynamic_douyin%2Ftemplate%2Fpages%2Flive_dynamic%2Ftemplate.js%3Fanchor_id%3D73785429445%26sec_anchor_id%3DMS4wLjABAAAAwr4Piy1xyx9h5Yc8JWzo7HoueJ2gjy9a-fHl9OwysTU\u0026web_bg_color=%23161823\u0026status_bar_color=white\u0026type=fullscreen\u0026hide_nav_bar=1\u0026trans_status_bar=1\u0026enable_preload=main\u0026fallback_url=sslocal%3A%2F%2Fwebcast_webview%3Furl%3Dhttps%253A%252F%252Flf-webcast-gr-sourcecdn.bytegecko.com%252Fobj%252Fbyte-gurd-source-gr%252Fwebcast%252Fmono%252Flynx%252Fcommunity_live_dynamic_douyin%252Fweb%252Ftemplate%252Fpages%252Flive_dynamic%252Findex.html%253Fanchor_id%253D73785429445%2526sec_anchor_id%253DMS4wLjABAAAAwr4Piy1xyx9h5Yc8JWzo7HoueJ2gjy9a-fHl9OwysTU%26web_bg_color%3D%2523161823%26status_bar_color%3Dwhite%26type%3Dfullscreen%26hide_nav_bar%3D1%26trans_status_bar%3D1",
"icon_dark": {
"uri": "obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_dark.png",
"url_list": [
"https://p6-dy-ipv6.byteimg.com/obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_dark.png",
"https://p3-dy-ipv6.byteimg.com/obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_dark.png",
"https://p9-dy.byteimg.com/obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_dark.png"
]
},
"icon_light": {
"uri": "obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_light.png",
"url_list": [
"https://p6-dy-ipv6.byteimg.com/obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_light.png",
"https://p3-dy-ipv6.byteimg.com/obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_light.png",
"https://p9-dy.byteimg.com/obj/eden-cn/91eh7uhfnult/all_cards_old_version/type6_live_dynamic_light.png"
]
},
"sub_title": "查看历史记录",
"title": "直播动态",
"type": 6
}
],
"city": "永州",
"close_friend_type": 0,
"commerce_info": {
"challenge_list": null,
"head_image_list": null,
"offline_info_list": [],
"smart_phone_list": null,
"task_list": null
},
"commerce_user_info": {
"ad_revenue_rits": null,
"has_ads_entry": true,
"show_star_atlas_cooperation": false,
"star_atlas": 1
},
"commerce_user_level": 0,
"country": "中国",
"cover_and_head_image_info": {
"cover_list": null,
"profile_cover_list": [
{
"cover_url": {
"uri": "tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e",
"url_list": [
"https://p9-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=tT4BAtVy%2BORxf%2B%2BLPjj9c7bjc08%3D\u0026from=2480802190",
"https://p6-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=2B5FqhB1YV2tuz5aXbMduKfWzTs%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=yxEGUOiFl3B2JQO5fxCXw%2BZ2g70%3D\u0026from=2480802190"
]
},
"dark_cover_color": "#FF353c40",
"light_cover_color": "#FF353c40"
}
]
},
"cover_colour": "#03373EE5",
"cover_url": [
{
"uri": "tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e",
"url_list": [
"https://p9-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=tT4BAtVy%2BORxf%2B%2BLPjj9c7bjc08%3D\u0026from=2480802190",
"https://p6-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=2B5FqhB1YV2tuz5aXbMduKfWzTs%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=yxEGUOiFl3B2JQO5fxCXw%2BZ2g70%3D\u0026from=2480802190"
]
},
{
"uri": "c8510002be9a3a61aad2",
"url_list": [
"https://p6-pc-sign.douyinpic.com/obj/c8510002be9a3a61aad2?x-expires=1677250800\u0026x-signature=aSKWohOsN3YcSdNEFuHttwQHTUo%3D\u0026from=2480802190",
"https://p9-pc-sign.douyinpic.com/obj/c8510002be9a3a61aad2?x-expires=1677250800\u0026x-signature=SN2tjONsQKiPA5pmooY48%2BvkdBs%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/c8510002be9a3a61aad2?x-expires=1677250800\u0026x-signature=aB3UEiGyz3ag9Xd%2BKFv6kCU%2BAxU%3D\u0026from=2480802190"
]
}
],
"custom_verify": "",
"district": null,
"dongtai_count": 0,
"dynamic_cover": {},
"enable_wish": false,
"enterprise_user_info": "{\"commerce_info\":{\"offline_info_list\":[],\"challenge_list\":null,\"task_list\":null,\"head_image_list\":null,\"smart_phone_list\":null},\"homepage_bottom_toast\":null,\"tab_ceiling_toast\":null,\"limiters\":null,\"attic_info\":null,\"profile_edit_button\":null,\"elite_center\":null,\"enterprise_card_visibility\":false,\"blue_label_edit_jump_url\":\"aweme://webview/?url=https%3A%2F%2Fapi.amemv.com%2Finsights%2Flite%2FcontactSetting%3Fhide_nav_bar%3D1%26title%3D%25E8%2581%2594%25E7%25B3%25BB%25E6%2596%25B9%25E5%25BC%258F%26enter_from%3Dcustomized_tab\u0026hide_nav_bar=1\u0026title=%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F\u0026rn_schema=aweme%3A%2F%2Freactnative%2F%3Fchannel_name%3Drn_patch%26bundle_name%3Dbusiness%26module_name%3Dpage_e_lite_contactSetting%26force_h5%3D1%26hide_nav_bar%3D1%26bundle_url%3D%26title%3D%25E8%2581%2594%25E7%25B3%25BB%25E6%2596%25B9%25E5%25BC%258F%26enter_from%3Dcustomized_tab\"}",
"enterprise_verify_reason": "",
"favorite_permission": 0,
"favoriting_count": 0,
"follow_status": 1,
"follower_count": 2445127,
"follower_request_status": 0,
"follower_status": 0,
"following_count": 188,
"forward_count": 69,
"gender": 1,
"general_permission": {
"following_follower_list_toast": 1
},
"has_e_account_role": false,
"has_subscription": false,
"im_primary_role_id": 8,
"im_role_ids": [
8,
19,
9
],
"image_send_exempt": false,
"ins_id": "",
"ip_location": "IP属地:湖南",
"is_activity_user": false,
"is_ban": false,
"is_block": false,
"is_blocked": false,
"is_effect_artist": false,
"is_gov_media_vip": false,
"is_mix_user": true,
"is_not_show": false,
"is_series_user": false,
"is_sharing_profile_user": 0,
"is_star": false,
"iso_country_code": "CN",
"life_story_block": {
"life_story_block": false
},
"live_commerce": false,
"live_status": 0,
"max_follower_count": 2445127,
"message_chat_entry": true,
"mix_count": 16,
"mplatform_followers_count": 2506113,
"new_friend_type": 0,
"nickname": "伟哥(动物之声)",
"original_musician": {
"digg_count": 0,
"music_count": 0,
"music_used_count": 0
},
"pigeon_daren_status": "",
"pigeon_daren_warn_tag": "",
"profile_tab_type": 0,
"province": "湖南",
"publish_landing_tab": 3,
"r_fans_group_info": {},
"recommend_reason_relation": "",
"recommend_user_reason_source": 0,
"risk_notice_text": "",
"room_id": 0,
"school_name": "中国政法大学",
"sec_uid": "MS4wLjABAAAAwr4Piy1xyx9h5Yc8JWzo7HoueJ2gjy9a-fHl9OwysTU",
"secret": 0,
"series_count": 0,
"share_info": {
"bool_persist": 1,
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
"share_image_url": {
"uri": "tos-cn-p-0015/0582dd4685974943b7553f7920c47be5_1677068689",
"url_list": [
"https://p6-pc-sign.douyinpic.com/obj/tos-cn-p-0015/0582dd4685974943b7553f7920c47be5_1677068689?x-expires=1677250800\u0026x-signature=N69FD0eoa6nZOCkoTseWQyDlr2c%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/tos-cn-p-0015/0582dd4685974943b7553f7920c47be5_1677068689?x-expires=1677250800\u0026x-signature=VKbtXyv7E4XWOhUdYKwvWpkPQr8%3D\u0026from=2480802190",
"https://p9-pc-sign.douyinpic.com/obj/tos-cn-p-0015/0582dd4685974943b7553f7920c47be5_1677068689?x-expires=1677250800\u0026x-signature=YQSrhvNNPwvDYKNIAbGybUDfEGA%3D\u0026from=2480802190"
]
},
"share_qrcode_url": {
"uri": "42da001a6c9915794b93",
"url_list": [
"https://p3.douyinpic.com/obj/42da001a6c9915794b93",
"https://p26.douyinpic.com/obj/42da001a6c9915794b93",
"https://p6.douyinpic.com/obj/42da001a6c9915794b93"
]
},
"share_title": "快来加入抖音,让你发现最有趣的我!",
"share_url": "www.iesdouyin.com/share/user/MS4wLjABAAAAwr4Piy1xyx9h5Yc8JWzo7HoueJ2gjy9a-fHl9OwysTU?u_code=13kgm680k\u0026did=MS4wLjABAAAABJ_mRs4sEJHvG-sf_h49g7UCwbYtpzHo5DOznrSMhG6eweub_gtwy8cDOYAldLiv\u0026iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ\u0026with_sec_did=1\u0026sec_uid=MS4wLjABAAAAwr4Piy1xyx9h5Yc8JWzo7HoueJ2gjy9a-fHl9OwysTU\u0026from_ssr=1",
"share_weibo_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。"
},
"short_id": "0",
"show_favorite_list": false,
"show_subscription": false,
"signature": "请爱护好身边的动物宠物们哦!只在抖音西瓜头条有账号,其他平台均非本人!不接广告。本人视频可任意下载转发编辑。",
"signature_display_lines": 0,
"signature_language": "zh",
"special_follow_status": 0,
"sync_to_toutiao": 0,
"tab_settings": {
"private_tab": {
"private_tab_style": 1,
"show_private_tab": false
}
},
"total_favorited": 42775612,
"total_favorited_correction_threshold": -1,
"twitter_id": "",
"twitter_name": "",
"uid": "73785429445",
"unique_id": "xiaoyu22707",
"urge_detail": {
"user_urged": 0
},
"user_age": 41,
"user_not_see": 0,
"user_not_show": 1,
"verification_type": 0,
"video_cover": {},
"video_icon": {
"height": 720,
"uri": "",
"url_list": [],
"width": 720
},
"watch_status": false,
"white_cover_url": [
{
"uri": "tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e",
"url_list": [
"https://p9-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=tT4BAtVy%2BORxf%2B%2BLPjj9c7bjc08%3D\u0026from=2480802190",
"https://p6-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=2B5FqhB1YV2tuz5aXbMduKfWzTs%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/tos-cn-i-0813/1ff05821523b48c282558e7ce5ea380e?x-expires=1677250800\u0026x-signature=yxEGUOiFl3B2JQO5fxCXw%2BZ2g70%3D\u0026from=2480802190"
]
},
{
"uri": "318f1000413827e122102",
"url_list": [
"https://p6-pc-sign.douyinpic.com/obj/318f1000413827e122102?x-expires=1677250800\u0026x-signature=hAHznbrHUDBWy3UJuU%2FIHGgVCCU%3D\u0026from=2480802190",
"https://p9-pc-sign.douyinpic.com/obj/318f1000413827e122102?x-expires=1677250800\u0026x-signature=qpCkHogzhoVxIwezDfN5t2FkG3Q%3D\u0026from=2480802190",
"https://p3-pc-sign.douyinpic.com/obj/318f1000413827e122102?x-expires=1677250800\u0026x-signature=eRLwT5DOpXyUqOpwu4ArZB3EZ%2Bo%3D\u0026from=2480802190"
]
}
],
"with_commerce_enterprise_tab_entry": false,
"with_commerce_entry": false,
"with_fusion_shop_entry": false,
"with_new_goods": false,
"youtube_channel_id": "",
"youtube_channel_title": ""
}
}
]

235
src/components/UserPanel.vue

@ -7,15 +7,15 @@ @@ -7,15 +7,15 @@
<img class="back" src="@/assets/img/icon/next.svg" alt="">
<transition name="fade">
<div class="float-user" v-if="state.floatFixed">
<img v-lazy="Utils.$imgPreview(state.localAuthor.avatar)" class="avatar"/>
<img v-if="!state.localAuthor.is_follow" src="@/assets/img/icon/add-light.png" alt="" class="add">
<span @click="followButton">{{ state.localAuthor.is_follow ? '私信' : '关注' }}</span>
<img v-lazy="Utils.$imgPreview(props.currentItem.user.avatar)" class="avatar"/>
<img v-if="!props.currentItem.user.is_follow" src="@/assets/img/icon/add-light.png" alt="" class="add">
<span @click="followButton">{{ props.currentItem.user.is_follow ? '私信' : '关注' }}</span>
</div>
</transition>
</div>
<div class="right">
<transition name="fade">
<div class="request" v-if="!state.floatFixed && state.localAuthor.is_follow">
<div class="request" v-if="!state.floatFixed && props.currentItem.user.is_follow">
<img @click="$nav('/me/request-update')" src="@/assets/img/icon/me/finger-right.png" alt="">
<span>求更新</span>
</div>
@ -32,22 +32,23 @@ @@ -32,22 +32,23 @@
<!-- src="@/assets/img/header-bg.png" -->
<header>
<img
:style="{opacity:props.currentItem.user.cover_url[0].url_list.length?1:0}"
ref="cover"
:src="state.localAuthor.cover"
@click="state.previewImg = state.localAuthor.cover"
:src="props.currentItem.user.cover_url[0].url_list[0]"
@click="state.previewImg = props.currentItem.user.cover_url[0].url_list[0]"
alt=""
class="cover">
<div class="avatar-wrapper">
<img v-lazy="Utils.$imgPreview(state.localAuthor.avatar)" class="avatar"
@click="state.previewImg = state.localAuthor.avatar">
<img v-lazy="Utils.$imgPreview(props.currentItem.user.avatar_thumb.url_list[0])" class="avatar"
@click="state.previewImg = props.currentItem.user.avatar_thumb.url_list[0]">
<div class="description">
<div class="name f22 mb1r">{{ state.localAuthor.nickname }}</div>
<div class="certification" v-if="state.localAuthor.certification ">
<div class="name f22 mb1r">{{ props.currentItem.user.nickname }}</div>
<div class="certification" v-if="props.currentItem.user.certification ">
<img src="@/assets/img/icon/me/certification.webp">
{{ state.localAuthor.certification }}
{{ props.currentItem.user.certification }}
</div>
<div class="number" v-else>
<span>抖音号{{ state.localAuthor.unique_id }}</span>
<span>抖音号{{ props.currentItem.user.short_id }}</span>
<img src="@/assets/img/icon/me/copy.png" alt="" @click.stop="Utils.copy">
</div>
</div>
@ -56,164 +57,156 @@ @@ -56,164 +57,156 @@
<div class="info">
<div class="heat">
<div class="text">
<span class="num">{{ Utils.formatNumber(state.localAuthor.aweme_count) }}</span>
<span class="num">{{ Utils.formatNumber(props.currentItem.user.total_favorited) }}</span>
<span>获赞</span>
</div>
<div class="text">
<span class="num">{{ state.localAuthor.following_count }}</span>
<span class="num">{{ Utils.formatNumber(props.currentItem.user.following_count) }}</span>
<span>关注</span>
</div>
<div class="text">
<span class="num">{{ Utils.formatNumber(state.localAuthor.follower_count) }}</span>
<span class="num">{{ Utils.formatNumber(props.currentItem.user.mplatform_followers_count) }}</span>
<span>粉丝</span>
</div>
</div>
<div class="signature f12" v-if="state.localAuthor.desc">
<div class="text" v-html="state.localAuthor.desc"></div>
<div class="signature f12" v-if="props.currentItem.user.signature">
<div class="text" v-html="props.currentItem.user.signature"></div>
</div>
<div class="more">
<div class="age item" v-if="state.localAuthor.birthday">
<img v-if="state.localAuthor.sex === '0'" src="@/assets/img/icon/me/woman.png" alt="">
<img v-if="state.localAuthor.sex === '1'" src="@/assets/img/icon/me/man.png" alt="">
<span>{{ Utils.filterAge(state.localAuthor.birthday) }}</span>
<div class="age item" v-if="props.currentItem.user.user_age !== -1">
<img v-if="props.currentItem.user.gender" src="@/assets/img/icon/me/man.png" alt="">
<img v-else src="@/assets/img/icon/me/woman.png" alt="">
<span>{{ props.currentItem.user.user_age }}</span>
</div>
<div class="item" v-if="state.localAuthor.province || state.localAuthor.city">
{{ state.localAuthor.province }}
<template v-if="state.localAuthor.province && state.localAuthor.city">
-
</template>
{{ state.localAuthor.city }}
<div class="item" v-if="props.currentItem.user.ip_location">
{{ props.currentItem.user.ip_location }}
</div>
<div class="item" v-if="state.localAuthor.school?.name">
{{ state.localAuthor.school?.name }}
<template v-else>
<div class="item" v-if="props.currentItem.user.province || props.currentItem.user.city">
{{ props.currentItem.user.province }}
<template v-if="props.currentItem.user.province && props.currentItem.user.city">
·
</template>
{{ props.currentItem.user.city }}
</div>
</template>
<div class="item" v-if="props.currentItem.user.school?.name">
{{ props.currentItem.user.school?.name }}
</div>
</div>
</div>
<div class="other">
<div class="scroll-x" @touchmove="stop">
<div class="item">
<img src="@/assets/img/icon/me/shopping-cart-white.png" alt="">
<div class="right">
<div class="top">进入橱窗</div>
<div class="bottom">9件好物</div>
</div>
</div>
<div class="item">
<img src="@/assets/img/icon/me/play.png" alt="">
<div class="right">
<div class="top">直播动态</div>
<div class="bottom">可预约明天直播</div>
</div>
</div>
<div class="item">
<img src="@/assets/img/icon/me/music-white.png" alt="">
<div class="right">
<div class="top">Ta的音乐</div>
<div class="bottom">听听ta的歌单</div>
</div>
</div>
<div class="item">
<img src="@/assets/img/icon/people/address-book.png" alt="">
<div class="right">
<div class="top">粉丝群</div>
<div class="bottom">1个群聊</div>
<template v-if="props.currentItem.isRequest">
<div class="other">
<div class="scroll-x" @touchmove="stop">
<div class="item" v-for="item in props.currentItem.user.card_entries">
<img :src="item.icon_dark.url_list[0]" alt="">
<div class="right">
<div class="top">{{ item.title }}</div>
<div class="bottom">{{ item.sub_title }}</div>
</div>
</div>
</div>
</div>
</div>
<div class="my-buttons">
<div class="follow-display">
<div class="follow-wrapper" :class="state.localAuthor.is_follow ? 'follow-wrapper-followed' : ''">
<div class="no-follow" @click="state.localAuthor.is_follow = true">
<img src="@/assets/img/icon/add-white.png" alt="">
<span>关注</span>
</div>
<div class="followed">
<div class="l-button" @click="$emit('showFollowSetting2')">
<span>已关注</span>
<img src="@/assets/img/icon/arrow-up-white.png" alt="">
<div class="my-buttons">
<div class="follow-display">
<div class="follow-wrapper" :class="props.currentItem.user.follow_status ? 'follow-wrapper-followed' : ''">
<div class="no-follow" @click="props.currentItem.user.follow_status = 1">
<img src="@/assets/img/icon/add-white.png" alt="">
<span>关注</span>
</div>
<div class="l-button" @click="$nav('/message/chat')">
<span>私信</span>
<div class="followed">
<div class="l-button" @click="$emit('showFollowSetting2')">
<span>已关注</span>
<img src="@/assets/img/icon/arrow-up-white.png" alt="">
</div>
<div class="l-button" @click="$nav('/message/chat')">
<span>私信</span>
</div>
</div>
</div>
</div>
<div class="option"
:class="state.isShowRecommend?'option-recommend':''"
@click="state.isShowRecommend = !state.isShowRecommend">
<img v-if="state.loadings.showRecommend" class="loading" src="@/assets/img/icon/loading-gray.png"
alt="">
<img v-else class="arrow" src="@/assets/img/icon/arrow-up-white.png" alt="">
</div>
</div>
<div class="option"
:class="state.isShowRecommend?'option-recommend':''"
@click="state.isShowRecommend = !state.isShowRecommend">
<img v-if="state.loadings.showRecommend" class="loading" src="@/assets/img/icon/loading-gray.png"
alt="">
<img v-else class="arrow" src="@/assets/img/icon/arrow-up-white.png" alt="">
</div>
</div>
<div class="recommend" :class="{hidden:!state.isShowRecommend}">
<div class="title">
<span>你可能感兴趣</span>
<img src="@/assets/img/icon/about-gray.png">
</div>
<div class="friends"
@touchmove="stop">
<div class="friend" v-for="item in friends.all">
<img :style="item.select?'opacity: .5;':''" class="avatar" :src="$imgPreview(item.avatar)" alt="">
<span class="name">{{ item.name }}</span>
<span class="tips">可能感兴趣的人</span>
<dy-button type="primary">关注</dy-button>
<div class="close">
<dy-back img="close" scale=".6"></dy-back>
</div>
<div class="recommend" :class="{hidden:!state.isShowRecommend}">
<div class="title">
<span>你可能感兴趣</span>
<img src="@/assets/img/icon/about-gray.png">
</div>
<div class="more" @click="$nav('/people/find-acquaintance')">
<div class="notice">
<div>点击查看</div>
<div>更多好友</div>
<div class="friends"
@touchmove="stop">
<div class="friend" v-for="item in friends.all">
<img :style="item.select?'opacity: .5;':''" class="avatar" :src="$imgPreview(item.avatar)" alt="">
<span class="name">{{ item.name }}</span>
<span class="tips">可能感兴趣的人</span>
<dy-button type="primary">关注</dy-button>
<div class="close">
<dy-back img="close" scale=".6"></dy-back>
</div>
</div>
<div class="more" @click="$nav('/people/find-acquaintance')">
<div class="notice">
<div>点击查看</div>
<div>更多好友</div>
</div>
</div>
</div>
</div>
</div>
<div class="total" ref="total">
作品 62
<img class="arrow" src="@/assets/img/icon/arrow-up-white.png" alt="">
</div>
<div class="videos">
<Posters v-if="state.videos.my.total !== -1" :list="state.videos.my.list"></Posters>
</div>
<div class="total" ref="total">
作品 {{ props.currentItem.user.aweme_count }}
<img class="arrow" src="@/assets/img/icon/arrow-up-white.png" alt="">
</div>
<div class="videos">
<Posters v-if="state.videos.my.total !== -1" :list="state.videos.my.list"></Posters>
</div>
</template>
</div>
</div>
</template>
<script setup>
import {computed, onMounted, reactive, ref} from "vue";
import {computed, onMounted, reactive, ref, watch} from "vue";
import Utils from "@/utils";
import {useNav} from "@/utils/hooks/useNav";
import {useStore} from "vuex";
import resource from "@/assets/data/resource";
import Posters from '@/components/Posters'
import api from "@/api";
import {merge} from 'lodash'
import {DefaultUser} from "@/utils/const_var";
const emit = defineEmits(['back'])
const $nav = useNav()
const store = useStore()
const emit = defineEmits(['update:currentItem', 'back'])
const props = defineProps({
author: {
currentItem: {
type: Object,
default: {}
default: {
user: DefaultUser,
isRequest: false,
videos: [],
}
},
isOnThisPage: {
active: {
type: Boolean,
default: false
}
})
const friends = computed(() => store.state.friends)
const main = ref(null)
const page = ref(null)
const cover = ref(null)
const total = ref(null)
const state = reactive({
isShowRecommend: false,//
previewImg: '',
@ -277,7 +270,6 @@ const state = reactive({ @@ -277,7 +270,6 @@ const state = reactive({
acceleration: 1.2,
sprint: 15,
canScroll: true,
localAuthor: resource.videos[0].author,
start: {x: 0, y: 0, time: 0},
move: {x: 0, y: 0},
isTop: false,
@ -288,6 +280,17 @@ const state = reactive({ @@ -288,6 +280,17 @@ const state = reactive({
isAutoScaleCover: false
})
watch(() => props.active,
async (newVal) => {
if (newVal && !props.currentItem.isRequest) {
let res = await api.user.profile()
console.log('res', res)
if (res.code === 200) {
emit('update:currentItem', merge(props.currentItem, {user: res.data.user, isRequest: true}))
}
}
})
onMounted(() => {
state.videos.my.list = resource.my
state.videos.my.total = resource.my.length
@ -709,9 +712,7 @@ function touchEnd(e) { @@ -709,9 +712,7 @@ function touchEnd(e) {
img {
margin-right: 8rem;
border-radius: 4rem;
background: @second-btn-color-tran;
padding: 8rem;
height: 22rem;
height: 40rem;
}
.right {

17
src/mock/index.js

@ -1,7 +1,8 @@ @@ -1,7 +1,8 @@
import Mock from 'mockjs'
import globalMethods from '../utils'
import resource from "../assets/data/resource.js";
import {shuffle} from "lodash";
import users from '@/assets/data/users.json'
import {sample, shuffle} from "lodash";
function getParams(options) {
let params = globalMethods.$parseURL(options.url).params
@ -145,4 +146,18 @@ Mock.mock(/user\/friends/, options => { @@ -145,4 +146,18 @@ Mock.mock(/user\/friends/, options => {
return Mock.mock({
data: resource.users, code: 200, msg: '',
})
})
Mock.mock(/user\/profile\/other/, options => {
return Mock.mock({
// data: sample(users), code: 200, msg: '',
data: users[0], code: 200, msg: '',
})
})
Mock.mock(/aweme\/post/, options => {
return Mock.mock({
// data: sample(users), code: 200, msg: '',
data: users[0], code: 200, msg: '',
})
})

27
src/pages/home/index.vue

@ -30,7 +30,8 @@ @@ -30,7 +30,8 @@
<SlideItem>
<UserPanel
ref="uploader"
:isOnThisPage="state.baseIndex === 1"
v-model:currentItem="state.currentItem"
:active="state.baseIndex === 1"
:author="state.recommendList[state.itemIndex]?.author"
@toggleCanMove="e => state.canMove = e"
@back="state.baseIndex = 0"
@ -119,6 +120,7 @@ import Shop from "@/pages/home/components/Shop.vue"; @@ -119,6 +120,7 @@ import Shop from "@/pages/home/components/Shop.vue";
import Slide0 from "@/pages/home/slide/Slide0.vue";
import Slide2 from "@/pages/home/slide/Slide2.vue";
import Slide4 from "@/pages/home/slide/Slide4.vue";
import {DefaultUser} from "@/utils/const_var";
const nav = useNav()
const store = useStore()
@ -161,6 +163,10 @@ const state = reactive({ @@ -161,6 +163,10 @@ const state = reactive({
commentVisible: false,
fullScreen: false,
currentItem: {
user: DefaultUser,
videos: [],
}
})
function delayShowDialog(cb) {
@ -169,9 +175,23 @@ function delayShowDialog(cb) { @@ -169,9 +175,23 @@ function delayShowDialog(cb) {
}, 400)
}
bus.on(EVENT_KEY.CURRENT_ITEM, item => {
function setCurrentItem(item) {
if (state.currentItem.user.unique_id !== item.author.unique_id) {
state.currentItem = {
...item,
user: {
...DefaultUser,
desc: item.author.desc,
nickname: item.author.nickname,
unique_id: item.author.unique_id,
},
videos: [],
}
}
console.log('item', item)
})
}
bus.once(EVENT_KEY.CURRENT_ITEM, setCurrentItem)
onMounted(() => {
bus.on(EVENT_KEY.ENTER_FULLSCREEN, (e) => state.fullScreen = true)
bus.on(EVENT_KEY.EXIT_FULLSCREEN, (e) => state.fullScreen = false)
@ -190,6 +210,7 @@ onMounted(() => { @@ -190,6 +210,7 @@ onMounted(() => {
bus.on(EVENT_KEY.GO_USERINFO, () => {
state.baseIndex = 1
})
bus.once(EVENT_KEY.CURRENT_ITEM, setCurrentItem)
})
onUnmounted(() => {
bus.offAll()

35
src/utils/const_var.js

@ -42,3 +42,38 @@ export const SlideItemPlayStatus = { @@ -42,3 +42,38 @@ export const SlideItemPlayStatus = {
Stop: 'Stop',
Pause: 'Pause',
}
export const DefaultUser = {
unique_id: '',
signature: '',//签名
mplatform_followers_count: '',//粉丝
following_count: '',//关注
total_favorited: '',//获赞
follow_status: '',//1是已关注,0是未关注
user_age: -1,
gender: '',//1是男,0是女
ip_location: '',//ip地址
aweme_count: '',//视频数量
//卡片
"card_entries": [
{
"icon_dark": {
"url_list": []
},
"icon_light": {
"url_list": []
},
"sub_title": "",
"title": "",
"type": -1
},
],
"cover_url": [
{
"url_list": []
}
],
avatar_thumb: {
"url_list": []
}
}

8
src/utils/index.jsx

@ -349,10 +349,12 @@ export default { @@ -349,10 +349,12 @@ export default {
},
formatNumber(num) {
if (!num) return
if (num < 10000) {
return num
if (num > 100000000) {
return (num / 100000000).toFixed(1) + '亿'
} else if (num > 10000) {
return (num / 10000).toFixed(1) + '万'
} else {
return (num / 10000).toFixed(1) + 'w'
return num
}
},
filterAge(age) {

Loading…
Cancel
Save