change internal/sitesetting to internal/infra/settings

- change internal/sitesettings -> internal/infra/settings
- rebuild web frontend (web/dist)
pull/721/head
alimy 3 months ago
parent 2f55b4b5d7
commit 940abbf9e8
No known key found for this signature in database
GPG Key ID: 6964A0C5FE15145A

@ -19,7 +19,6 @@ import (
"github.com/rocboss/paopao-ce/internal"
"github.com/rocboss/paopao-ce/internal/conf"
"github.com/rocboss/paopao-ce/internal/service"
"github.com/rocboss/paopao-ce/internal/sitesetting"
"github.com/rocboss/paopao-ce/pkg/debug"
"github.com/rocboss/paopao-ce/pkg/utils"
"github.com/rocboss/paopao-ce/pkg/version"
@ -55,7 +54,7 @@ func deferFn() {
conf.CloseDB()
}
func serveRun(_cmd *cobra.Command, _args []string) {
func serveRun(cmd *cobra.Command, _args []string) {
utils.PrintHelloBanner(version.VersionInfo())
// set maxprocs automatic
@ -67,8 +66,7 @@ func serveRun(_cmd *cobra.Command, _args []string) {
shutdownFn, _ := conf.InitTelemetry()
defer shutdownFn()
}
internal.Initial()
sitesetting.Bootstrap(_cmd.Context(), conf.MustGormDB())
internal.Initial(cmd.Context())
ss := service.MustInitService()
if len(ss) < 1 {
fmt.Fprintln(color.Output, "no service need start so just exit")

@ -3,5 +3,30 @@
// license that can be found in the LICENSE file.
// Package infra infrastructure components.
// 该包可以包含的功能模块:
// - 一些app的基础功能相关的模块
// - 一些单一、较大的功能模块;
// - 在想放到internal包中但是又不知道放那的功能包那就放到这里尽量保持internal包的一级子包一眼就可以看出app内部功能的主要结构
package infra
import (
"context"
"github.com/rocboss/paopao-ce/internal/conf"
"github.com/rocboss/paopao-ce/internal/infra/events"
"github.com/rocboss/paopao-ce/internal/infra/metrics"
"github.com/rocboss/paopao-ce/internal/infra/migration"
"github.com/rocboss/paopao-ce/internal/infra/settings"
)
func Initial(ctx context.Context) {
// migrate database if needed
migration.Run()
// event manager system initialize
events.Initial()
// metric manager system initialize
metrics.Initial()
// settings manager system bootstrap
settings.Bootstrap(ctx, conf.MustGormDB())
}

@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
package sitesetting
package settings
import (
"crypto/aes"

@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
package sitesetting
package settings
import (
stdjson "encoding/json"
@ -17,8 +17,10 @@ import (
"github.com/sirupsen/logrus"
)
type ValueType string
type ApplyMode string
type (
ValueType string
ApplyMode string
)
const (
TypeBool ValueType = "bool"

@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
package sitesetting
package settings
import (
"context"

@ -1,4 +1,4 @@
package sitesetting
package settings
import (
"context"

@ -5,16 +5,12 @@
package internal
import (
"github.com/rocboss/paopao-ce/internal/infra/events"
"github.com/rocboss/paopao-ce/internal/infra/metrics"
"github.com/rocboss/paopao-ce/internal/infra/migration"
"context"
"github.com/rocboss/paopao-ce/internal/infra"
)
func Initial() {
// migrate database if needed
migration.Run()
// event manager system initialize
events.Initial()
// metric manager system initialize
metrics.Initial()
func Initial(ctx context.Context) {
// infrastruct component initialize
infra.Initial(ctx)
}

@ -12,10 +12,10 @@ import (
api "github.com/rocboss/paopao-ce/auto/api/v1"
"github.com/rocboss/paopao-ce/internal/conf"
"github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/infra/settings"
"github.com/rocboss/paopao-ce/internal/model/web"
"github.com/rocboss/paopao-ce/internal/servants/base"
"github.com/rocboss/paopao-ce/internal/servants/chain"
"github.com/rocboss/paopao-ce/internal/sitesetting"
"github.com/rocboss/paopao-ce/pkg/xerror"
"github.com/sirupsen/logrus"
)
@ -24,7 +24,7 @@ type adminSrv struct {
api.UnimplementedAdminServant
*base.DaoServant
wc core.WebCache
settings *sitesetting.Service
settings *settings.Service
serverUpTime int64
}
@ -71,18 +71,18 @@ func (s *adminSrv) GetSiteSettings() (*web.SiteSettingsResp, error) {
}
return &web.SiteSettingsResp{
SiteProfileResp: *profile,
ReadonlyFields: sitesetting.CloneReadonlyFields(),
ReadonlyFields: settings.CloneReadonlyFields(),
}, nil
}
func (s *adminSrv) UpdateSiteSettings(req *web.SiteSettingsReq) (*web.SiteSettingsResp, error) {
profile, err := s.settings.UpdateEditableProfile(context.Background(), sitesetting.EditableFromRequest(req))
profile, err := s.settings.UpdateEditableProfile(context.Background(), settings.EditableFromRequest(req))
if err != nil {
return nil, err
}
return &web.SiteSettingsResp{
SiteProfileResp: *profile,
ReadonlyFields: sitesetting.CloneReadonlyFields(),
ReadonlyFields: settings.CloneReadonlyFields(),
}, nil
}
@ -98,7 +98,7 @@ func (s *adminSrv) SaveSettings(req *web.AdminSettingsSaveReq) (*web.AdminSettin
return s.settings.SaveValues(context.Background(), req.Items)
}
func newAdminSrv(s *base.DaoServant, wc core.WebCache, settings *sitesetting.Service) api.Admin {
func newAdminSrv(s *base.DaoServant, wc core.WebCache, settings *settings.Service) api.Admin {
return &adminSrv{
DaoServant: s,
wc: wc,

@ -8,16 +8,16 @@ import (
"context"
api "github.com/rocboss/paopao-ce/auto/api/v1"
"github.com/rocboss/paopao-ce/internal/infra/settings"
"github.com/rocboss/paopao-ce/internal/model/web"
"github.com/rocboss/paopao-ce/internal/servants/base"
"github.com/rocboss/paopao-ce/internal/sitesetting"
"github.com/rocboss/paopao-ce/pkg/version"
)
type siteSrv struct {
api.UnimplementedSiteServant
*base.BaseServant
settings *sitesetting.Service
settings *settings.Service
}
func (s *siteSrv) Profile() (*web.SiteProfileResp, error) {
@ -30,7 +30,7 @@ func (*siteSrv) Version() (*web.VersionResp, error) {
}, nil
}
func newSiteSrv(settings *sitesetting.Service) api.Site {
func newSiteSrv(settings *settings.Service) api.Site {
return &siteSrv{
BaseServant: base.NewBaseServant(),
settings: settings,

@ -14,8 +14,8 @@ import (
"github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao"
"github.com/rocboss/paopao-ce/internal/dao/cache"
"github.com/rocboss/paopao-ce/internal/infra/settings"
"github.com/rocboss/paopao-ce/internal/servants/base"
"github.com/rocboss/paopao-ce/internal/sitesetting"
)
var (
@ -25,7 +25,7 @@ var (
_ac core.AppCache
_wc core.WebCache
_oss core.ObjectStorageService
_siteSettings *sitesetting.Service
_siteSettings *settings.Service
_onceInitial sync.Once
)
@ -65,6 +65,6 @@ func lazyInitial() {
_ds = dao.DataService()
_ac = cache.NewAppCache()
_wc = cache.NewWebCache()
_siteSettings = sitesetting.NewService(conf.MustGormDB())
_siteSettings = settings.NewService(conf.MustGormDB())
})
}

@ -1,4 +1,4 @@
VITE_HOST="http://10.10.100.113:8008"
VITE_HOST=""
# 功能特性开启
VITE_USE_FRIENDSHIP=true

@ -0,0 +1 @@
import{A as e,D as t,O as n,Q as r,W as i,w as a}from"./@css-render-YsNuQTaE.js";import{i as o}from"./vue-router-Dw9lfhBK.js";import{m as s,nt as c,x as l}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{r as u}from"./sidebar-CIS7wt6Z.js";import{t as d}from"./main-nav-BLJ4tcq0.js";var f=u(e({__name:`404`,setup(e){let u=o(),f=()=>{u.push({path:`/`})};return(e,o)=>{let u=d,p=c,m=s,h=l;return i(),a(`div`,null,[n(u,{title:`404`}),n(h,{class:`main-content-wrap wrap404`,bordered:``},{default:r(()=>[n(m,{status:`404`,title:`404 资源不存在`,description:`再看看其他的吧`},{footer:r(()=>[n(p,{onClick:f},{default:r(()=>[...o[0]||=[t(`回主页`,-1)]]),_:1})]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-21b99e62`]]);export{f as default};

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 one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.setting-card[data-v-e2182001]{border-radius:0;margin-top:-1px}.setting-card .settings-layout[data-v-e2182001]{width:100%}.setting-card .setting-alert[data-v-e2182001]{margin-bottom:0}.setting-card .domain-block[data-v-e2182001]{flex-direction:column;gap:12px;display:flex}.setting-card .domain-block .domain-header[data-v-e2182001]{justify-content:space-between;align-items:center;display:flex}.setting-card .domain-block .domain-header .domain-title[data-v-e2182001]{font-size:16px;font-weight:600}.setting-card .domain-block .domain-header .domain-subtitle[data-v-e2182001]{opacity:.7;margin-top:4px;font-size:12px}.setting-card .section-card[data-v-e2182001]{border-radius:12px}.setting-card .section-card .section-header[data-v-e2182001]{justify-content:space-between;align-items:baseline;display:flex}.setting-card .section-card .section-header .section-title[data-v-e2182001]{font-weight:600}.setting-card .section-card .section-header .section-subtitle[data-v-e2182001]{opacity:.7;font-size:12px}.setting-card .setting-item[data-v-e2182001],.setting-card .inactive-item[data-v-e2182001]{border-bottom:1px solid #7f7f7f1f;padding:8px 0 18px}.setting-card .setting-item[data-v-e2182001]:last-child,.setting-card .inactive-item[data-v-e2182001]:last-child{border-bottom:none;padding-bottom:0}.setting-card .setting-item .setting-item-top[data-v-e2182001],.setting-card .inactive-item .setting-item-top[data-v-e2182001],.setting-card .setting-item .inactive-item-top[data-v-e2182001],.setting-card .inactive-item .inactive-item-top[data-v-e2182001]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.setting-card .setting-item .setting-item-title[data-v-e2182001],.setting-card .inactive-item .setting-item-title[data-v-e2182001]{font-size:15px;font-weight:600}.setting-card .setting-item .setting-item-key[data-v-e2182001],.setting-card .inactive-item .setting-item-key[data-v-e2182001]{opacity:.55;word-break:break-all;margin-top:4px;font-size:12px}.setting-card .setting-item .setting-item-description[data-v-e2182001],.setting-card .inactive-item .setting-item-description[data-v-e2182001]{opacity:.82;margin-top:8px;font-size:13px;line-height:1.7}.setting-card .setting-item .setting-meta[data-v-e2182001],.setting-card .inactive-item .setting-meta[data-v-e2182001]{flex-wrap:wrap;gap:8px 16px;margin-top:10px;display:flex}.setting-card .setting-item .setting-meta .meta-item[data-v-e2182001],.setting-card .inactive-item .setting-meta .meta-item[data-v-e2182001]{opacity:.72;font-size:12px}.setting-card .setting-item .setting-editor[data-v-e2182001],.setting-card .inactive-item .setting-editor[data-v-e2182001]{margin-top:12px}.setting-card .setting-item .setting-editor .number-input[data-v-e2182001],.setting-card .inactive-item .setting-editor .number-input[data-v-e2182001]{width:220px}.setting-card .setting-item .setting-hint[data-v-e2182001],.setting-card .inactive-item .setting-hint[data-v-e2182001]{opacity:.72;margin-top:8px;font-size:12px;line-height:1.7}.setting-card .inactive-collapse[data-v-e2182001]{margin-top:4px}.setting-card .inactive-collapse .inactive-group[data-v-e2182001]{flex-direction:column;gap:16px;display:flex}.setting-card .inactive-collapse .inactive-group-title[data-v-e2182001]{font-size:15px;font-weight:600}.setting-card .inactive-collapse .inactive-section[data-v-e2182001]{flex-direction:column;gap:12px;display:flex}.setting-card .inactive-collapse .inactive-section-title[data-v-e2182001]{opacity:.75;font-size:13px;font-weight:600}.setting-card .inactive-collapse .inactive-meta[data-v-e2182001]{margin-top:8px}.setting-card .empty-wrap[data-v-e2182001]{padding:40px 0}.setting-card .form-submit-wrap[data-v-e2182001]{justify-content:flex-end;gap:12px;padding-top:4px;display:flex}.dark .setting-card[data-v-e2182001]{background-color:#101014bf}.dark .section-card[data-v-e2182001]{background-color:#18181c}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{A as e,Bt as t,C as n,H as r,It as i,K as a,O as o,Q as s,S as c,W as l,h as u,ht as d,lt as f,w as p,x as m}from"./@css-render-YsNuQTaE.js";import{r as h}from"./pinia-TbaIYBWH.js";import{r as g}from"./vue-router-Dw9lfhBK.js";import{X as _,b as v,lt as y,x as b}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{l as x,r as S}from"./sidebar-CIS7wt6Z.js";import"./moment-D_9q9veS.js";import{a as C}from"./index-D3WChr5M.js";import{t as w}from"./main-nav-BLJ4tcq0.js";import{t as T}from"./post-skeleton-1eDXvLg5.js";var E={key:0,class:`pagination-wrap`},D={key:0,class:`skeleton-wrap`},O={key:1},k={key:0,class:`empty-wrap`},A={class:`bill-line`},j=S(e({__name:`Anouncement`,setup(e){let{collapsedRight:S}=h(x()),j=g(),M=f(!1),N=f([]),P=f(+j.query.p||1),F=f(20),I=f(0),L=e=>{P.value=e};return r(()=>{}),(e,r)=>{let f=w,h=_,g=T,x=y,j=v,R=b;return l(),p(`div`,null,[o(f,{title:`公告`}),o(R,{class:`main-content-wrap`,bordered:``},{footer:s(()=>[I.value>1?(l(),p(`div`,E,[o(h,{page:P.value,"onUpdate:page":L,"page-slot":d(S)?5:8,"page-count":I.value},null,8,[`page`,`page-slot`,`page-count`])])):n(``,!0)]),default:s(()=>[M.value?(l(),p(`div`,D,[o(g,{num:F.value},null,8,[`num`])])):(l(),p(`div`,O,[N.value.length===0?(l(),p(`div`,k,[o(x,{size:`large`,description:`暂无数据`})])):n(``,!0),(l(!0),p(u,null,a(N.value,e=>(l(),c(j,{key:e.id},{default:s(()=>[m(`div`,A,[m(`div`,null,`NO.`+t(e.id),1),m(`div`,null,t(e.reason),1),m(`div`,{class:i({income:e.change_amount>=0,out:e.change_amount<0})},t((e.change_amount>0?`+`:``)+(e.change_amount/100).toFixed(2)),3),m(`div`,null,t(d(C)(e.created_on)),1)])]),_:2},1024))),128))]))]),_:1})])}}}),[[`__scopeId`,`data-v-2279d607`]]);export{j as default};

@ -0,0 +1 @@
.load-more[data-v-c20fac6b]{margin:20px}.load-more .load-more-wrap[data-v-c20fac6b]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-c20fac6b]{opacity:.65;font-size:14px}.dark .main-content-wrap[data-v-c20fac6b],.dark .empty-wrap[data-v-c20fac6b],.dark .skeleton-wrap[data-v-c20fac6b]{background-color:#101014bf}

@ -0,0 +1 @@
import{o as e}from"./rolldown-runtime-Bhmf7a9N.js";import{A as t,Bt as n,C as r,H as i,K as a,O as o,Q as s,S as c,W as l,h as u,ht as d,lt as f,w as p,x as m}from"./@css-render-YsNuQTaE.js";import{r as h}from"./pinia-TbaIYBWH.js";import{r as g}from"./vue-router-Dw9lfhBK.js";import{P as _,U as v,b as y,f as b,lt as x,x as S}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{a as C,c as w,l as T,r as E}from"./sidebar-CIS7wt6Z.js";import"./moment-D_9q9veS.js";import{t as D}from"./main-nav-BLJ4tcq0.js";import{t as O}from"./post-skeleton-1eDXvLg5.js";import{n as k}from"./useUserAction-iK-3kVew.js";import"./usePostContent-Bn5GGxB9.js";import"./copy-to-clipboard-BDzdVqb_.js";import{t as A}from"./post-item-DKmEIWwa.js";import"./@vue-BhUWcoL8.js";import{t as j}from"./v3-infinite-loading-DRGEwjx_.js";var M=e(j()),N={key:0,class:`skeleton-wrap`},P={key:1},F={key:0,class:`empty-wrap`},I={class:`load-more-wrap`},L={class:`load-more-spinner`},R=E(t({__name:`Collection`,setup(e){let t=T(),E=w(),{collapsedRight:j,desktopModelShow:R}=h(t),{userInfo:z}=h(E),B=g();v();let V=f(!1),H=f(!1),U=f([]),W=f(+B.query.p||1),G=f(20),K=f(0),q=f(!1),J=f({id:0,avatar:``,username:``,nickname:``,is_admin:!1,is_friend:!0,is_following:!1,created_on:0,follows:0,followings:0,status:1}),Y=e=>{J.value=e,q.value=!0},X=()=>{q.value=!1};function Z(e,t){for(let n in U.value)U.value[n].user_id==e&&(U.value[n].user.is_following=t)}let Q=()=>{V.value=!0,C.v1.user.get.collections({page:W.value,page_size:G.value}).then(e=>{V.value=!1,e.list.length===0&&(H.value=!0),W.value>1?U.value=U.value.concat(e.list):(U.value=e.list,window.scrollTo(0,0)),K.value=Math.ceil(e.pager.total_rows/G.value)}).catch(e=>{V.value=!1,W.value>1&&W.value--})},$=()=>{W.value<K.value||K.value==0?(H.value=!1,W.value++,Q()):H.value=!0};return i(()=>{Q()}),(e,t)=>{let i=D,f=O,h=x,g=A,v=y,C=k,w=S,T=b,E=_;return l(),p(`div`,null,[o(i,{title:`收藏`}),o(w,{class:`main-content-wrap`,bordered:``},{default:s(()=>[V.value&&U.value.length===0?(l(),p(`div`,N,[o(f,{num:G.value},null,8,[`num`])])):(l(),p(`div`,P,[U.value.length===0?(l(),p(`div`,F,[o(h,{size:`large`,description:`暂无数据`})])):r(``,!0),(l(!0),p(u,null,a(U.value,e=>(l(),c(v,{key:e.id},{default:s(()=>[o(g,{post:e,isOwner:d(z).id==e.user_id,isMobile:!d(R),addFollowAction:``,onSendWhisper:Y,onPostFollowAction:Z},null,8,[`post`,`isOwner`,`isMobile`])]),_:2},1024))),128))])),o(C,{show:q.value,user:J.value,onSuccess:X},null,8,[`show`,`user`])]),_:1}),K.value>0?(l(),c(E,{key:0,justify:`center`},{default:s(()=>[o(d(M.default),{class:`load-more`,slots:{complete:`没有更多收藏了`,error:`加载出错`},onInfinite:$},{spinner:s(()=>[m(`div`,I,[H.value?r(``,!0):(l(),c(T,{key:0,size:14})),m(`span`,L,n(H.value?`没有更多收藏了`:`加载更多`),1)])]),_:1})]),_:1})):r(``,!0)])}}}),[[`__scopeId`,`data-v-c20fac6b`]]);export{R as default};

@ -1 +0,0 @@
.load-more[data-v-c376cb92]{margin:20px}.load-more .load-more-wrap[data-v-c376cb92]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-c376cb92]{opacity:.65;font-size:14px}.dark .main-content-wrap[data-v-c376cb92],.dark .empty-wrap[data-v-c376cb92],.dark .skeleton-wrap[data-v-c376cb92]{background-color:#101014bf}

@ -1 +0,0 @@
.dark .main-content-wrap[data-v-98a9eb10],.dark .empty-wrap[data-v-98a9eb10],.dark .skeleton-wrap[data-v-98a9eb10]{background-color:#101014bf}

@ -0,0 +1 @@
import{A as e,C as t,H as n,K as r,O as i,Q as a,S as o,W as s,h as c,ht as l,lt as u,w as d}from"./@css-render-YsNuQTaE.js";import{r as f}from"./vue-router-Dw9lfhBK.js";import{b as p,lt as m,x as h}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{a as g,r as _}from"./sidebar-CIS7wt6Z.js";import"./moment-D_9q9veS.js";import{t as v}from"./main-nav-BLJ4tcq0.js";import{t as y}from"./post-skeleton-1eDXvLg5.js";import{n as b}from"./useUserAction-iK-3kVew.js";import"./@vue-BhUWcoL8.js";import"./v3-infinite-loading-DRGEwjx_.js";import{t as x}from"./usePagination-DgEOoMuu.js";import{t as S}from"./infinite-load-more-OgVc9-3Y.js";import{t as C}from"./user-card-B9Y02rEu.js";var w={key:0,class:`skeleton-wrap`},T={key:1},E={key:0,class:`empty-wrap`},D=_(e({__name:`Contacts`,setup(e){let _=f(),{loading:D,noMore:O,page:k,pageSize:A,totalPage:j}=x(20),M=u([]),N=u(!1),P=u({id:0,avatar:``,username:``,nickname:``,is_admin:!1,is_friend:!0,is_following:!1,created_on:0,follows:0,followings:0,status:1});k.value=+_.query.p||1;let F=e=>{P.value=e,N.value=!0},I=()=>{N.value=!1},L=()=>{k.value<j.value||j.value==0?(O.value=!1,k.value++,R()):O.value=!0};n(()=>{R()});let R=(e=!1)=>{M.value.length===0&&(D.value=!0),g.v1.user.get.contacts({page:k.value,page_size:A.value}).then(t=>{D.value=!1,t.list.length===0&&(O.value=!0),k.value>1?M.value=M.value.concat(t.list):(M.value=t.list,e&&setTimeout(()=>{window.scrollTo(0,99999)},50)),j.value=Math.ceil(t.pager.total_rows/A.value)}).catch(e=>{D.value=!1,k.value>1&&k.value--})};return(e,n)=>{let u=v,f=y,g=m,_=p,x=b,k=h;return s(),d(`div`,null,[i(u,{title:`好友`}),i(k,{class:`main-content-wrap`,bordered:``},{default:a(()=>[l(D)&&M.value.length===0?(s(),d(`div`,w,[i(f,{num:l(A)},null,8,[`num`])])):(s(),d(`div`,T,[M.value.length===0?(s(),d(`div`,E,[i(g,{size:`large`,description:`暂无数据`})])):t(``,!0),(s(!0),d(c,null,r(M.value,e=>(s(),o(_,{class:`list-item`,key:e.user_id},{default:a(()=>[i(C,{type:`contact`,contact:e,onSendWhisper:F},null,8,[`contact`])]),_:2},1024))),128))])),i(x,{show:N.value,user:P.value,onSuccess:I},null,8,[`show`,`user`])]),_:1}),i(S,{"total-page":l(j),"no-more":l(O),"complete-text":`没有更多好友了`,onLoadMore:L},null,8,[`total-page`,`no-more`])])}}}),[[`__scopeId`,`data-v-ad65808a`]]);export{D as default};

@ -0,0 +1 @@
.dark .main-content-wrap[data-v-ad65808a],.dark .empty-wrap[data-v-ad65808a],.dark .skeleton-wrap[data-v-ad65808a]{background-color:#101014bf}

@ -1 +0,0 @@
.main-content-wrap[data-v-ce50f282]{padding:20px}.load-more[data-v-ce50f282]{margin:20px}.load-more .load-more-wrap[data-v-ce50f282]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-ce50f282]{opacity:.65;font-size:14px}.dark .main-content-wrap[data-v-ce50f282],.dark .empty-wrap[data-v-ce50f282],.dark .skeleton-wrap[data-v-ce50f282]{background-color:#101014bf}

@ -0,0 +1 @@
import{o as e}from"./rolldown-runtime-Bhmf7a9N.js";import{A as t,Bt as n,C as r,H as i,K as a,O as o,Q as s,S as c,W as l,b as u,h as d,ht as f,lt as p,w as m,x as h}from"./@css-render-YsNuQTaE.js";import{r as g}from"./vue-router-Dw9lfhBK.js";import{P as _,b as v,c as ee,f as y,l as b,lt as x,x as S}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{a as C,r as w}from"./sidebar-CIS7wt6Z.js";import"./moment-D_9q9veS.js";import{t as T}from"./main-nav-BLJ4tcq0.js";import{t as E}from"./post-skeleton-1eDXvLg5.js";import{n as D,t as O}from"./useUserAction-iK-3kVew.js";import"./@vue-BhUWcoL8.js";import{t as k}from"./v3-infinite-loading-DRGEwjx_.js";import{t as A}from"./usePagination-DgEOoMuu.js";import{t as j}from"./user-card-B9Y02rEu.js";var M=e(k()),N={key:0,class:`skeleton-wrap`},P={key:1},F={key:0,class:`empty-wrap`},I={class:`load-more-wrap`},L={class:`load-more-spinner`},R=w(t({__name:`Following`,setup(e){let t=g(),w=p([]),k=t.query.n||`粉丝详情`,R=t.query.s||``,z=p(t.query.t||`follows`);p(!1);let{loading:B,noMore:V,page:H,pageSize:U,totalPage:W,reset:G,nextPage:K}=A(20),{showWhisper:q,whisperReceiver:J,onSendWhisper:Y,whisperSuccess:X}=O.useWhisper();function Z(e){w.value=[],G(),z.value=e}let Q=u(()=>z.value==`follows`?`没有更多关注了`:`没有更多粉丝了`),te=()=>{K($)},ne=e=>{Z(e),$()},$=()=>{z.value===`follows`?ie(R):z.value===`followings`&&ae(R)},re=()=>{z.value===`follows`&&(Z(`follows`),$())},ie=(e,t=!1)=>{w.value.length===0&&(B.value=!0),C.v1.user.get.follows({username:e,page:H.value,page_size:U.value}).then(e=>{B.value=!1,e.list.length===0&&(V.value=!0),H.value>1?w.value=w.value.concat(e.list):(w.value=e.list,t&&setTimeout(()=>{window.scrollTo(0,99999)},50)),W.value=Math.ceil(e.pager.total_rows/U.value)}).catch(e=>{B.value=!1,H.value>1&&H.value--})},ae=(e,t=!1)=>{w.value.length===0&&(B.value=!0),C.v1.user.get.followings({username:e,page:H.value,page_size:U.value}).then(e=>{B.value=!1,e.list.length===0&&(V.value=!0),H.value>1?w.value=w.value.concat(e.list):(w.value=e.list,t&&setTimeout(()=>{window.scrollTo(0,99999)},50)),W.value=Math.ceil(e.pager.total_rows/U.value)}).catch(e=>{B.value=!1,H.value>1&&H.value--})};return i(()=>{$()}),(e,t)=>{let i=T,u=b,p=ee,g=E,C=x,O=v,A=D,R=S,H=y,G=_;return l(),m(d,null,[h(`div`,null,[o(i,{title:f(k),back:!0},null,8,[`title`]),o(R,{class:`main-content-wrap`,bordered:``},{default:s(()=>[o(p,{type:`line`,animated:``,"default-value":z.value,"onUpdate:value":ne},{default:s(()=>[o(u,{name:`follows`,tab:`正在关注`}),o(u,{name:`followings`,tab:`我的粉丝`})]),_:1},8,[`default-value`]),f(B)&&w.value.length===0?(l(),m(`div`,N,[o(g,{num:f(U)},null,8,[`num`])])):(l(),m(`div`,P,[w.value.length===0?(l(),m(`div`,F,[o(C,{size:`large`,description:`暂无数据`})])):r(``,!0),(l(!0),m(d,null,a(w.value,e=>(l(),c(O,{key:e.user_id},{default:s(()=>[o(j,{type:`follow`,contact:e,onSendWhisper:f(Y),onUnfollowSuccess:re},null,8,[`contact`,`onSendWhisper`])]),_:2},1024))),128))])),o(A,{show:f(q),user:f(J),onSuccess:f(X)},null,8,[`show`,`user`,`onSuccess`])]),_:1})]),f(W)>0?(l(),c(G,{key:0,justify:`center`},{default:s(()=>[o(f(M.default),{class:`load-more`,slots:{complete:Q.value,error:`加载出错`},onInfinite:te},{spinner:s(()=>[h(`div`,I,[f(V)?r(``,!0):(l(),c(H,{key:0,size:14})),h(`span`,L,n(f(V)?Q.value:`加载更多`),1)])]),_:1},8,[`slots`])]),_:1})):r(``,!0)],64)}}}),[[`__scopeId`,`data-v-e8598fc9`]]);export{R as default};

@ -0,0 +1 @@
.main-content-wrap[data-v-e8598fc9]{padding:20px}.load-more[data-v-e8598fc9]{margin:20px}.load-more .load-more-wrap[data-v-e8598fc9]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-e8598fc9]{opacity:.65;font-size:14px}.dark .main-content-wrap[data-v-e8598fc9],.dark .empty-wrap[data-v-e8598fc9],.dark .skeleton-wrap[data-v-e8598fc9]{background-color:#101014bf}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.compose-wrap{box-sizing:border-box;width:100%;padding:16px}.compose-wrap .compose-line{flex-direction:row;display:flex}.compose-wrap .compose-line .compose-user{align-items:center;width:42px;height:42px;display:flex}.compose-wrap .compose-line.compose-options{justify-content:space-between;margin-top:6px;padding-left:42px;display:flex}.compose-wrap .compose-line.compose-options .submit-wrap{align-items:center;display:flex}.compose-wrap .compose-line.compose-options .submit-wrap .text-statistic{width:20px;height:20px;margin-right:8px;transform:rotate(180deg)}.compose-wrap .link-wrap{margin-left:42px;margin-right:42px}.compose-wrap .eye-wrap{margin-left:64px}.compose-wrap .login-only-wrap{justify-content:center;width:100%;display:flex}.compose-wrap .login-only-wrap button{width:50%;margin:0 4px}.compose-wrap .login-wrap{justify-content:center;width:100%;display:flex}.compose-wrap .login-wrap .login-banner{opacity:.8;margin-bottom:12px}.compose-wrap .login-wrap button{margin:0 4px}.attachment-list-wrap{margin-top:12px;margin-left:42px}.attachment-list-wrap .n-upload-file-info__thumbnail{overflow:hidden}.dark .compose-wrap{background-color:#101014bf}.tiny-slide-bar .tiny-slide-bar__list>div.tiny-slide-bar__select .slide-bar-item .slide-bar-item-title[data-v-79369624]{color:#18a058;opacity:.8}.tiny-slide-bar .tiny-slide-bar__list>div:hover .slide-bar-item[data-v-79369624]{cursor:pointer}.tiny-slide-bar .tiny-slide-bar__list>div:hover .slide-bar-item .slide-bar-item-avatar[data-v-79369624],.tiny-slide-bar .tiny-slide-bar__list>div:hover .slide-bar-item .slide-bar-item-title[data-v-79369624]{color:#18a058;opacity:.8}.style-wrap[data-v-79369624]{opacity:.8;margin-top:10px;margin-bottom:4px;margin-left:16px}.style-wrap .style-item.hover[data-v-79369624]{cursor:pointer}.tiny-slide-bar[data-v-79369624]{margin-top:-30px;margin-bottom:-30px}.tiny-slide-bar .slide-bar-item[data-v-79369624]{flex-direction:column;justify-content:center;align-items:center;width:64px;min-height:170px;margin-top:8px;display:flex}.tiny-slide-bar .slide-bar-item .slide-bar-item-title[data-v-79369624]{justify-content:center;height:40px;margin-top:4px;font-size:12px}.load-more[data-v-79369624]{margin:20px}.load-more .load-more-wrap[data-v-79369624]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-79369624]{opacity:.65;font-size:14px}.dark .main-content-wrap[data-v-79369624],.dark .pagination-wrap[data-v-79369624],.dark .empty-wrap[data-v-79369624],.dark .skeleton-wrap[data-v-79369624]{background-color:#101014bf}.dark .tiny-slide-bar .tiny-slide-bar__list>div.tiny-slide-bar__select .slide-bar-item .slide-bar-item-title[data-v-79369624],.dark .tiny-slide-bar .tiny-slide-bar__list>div:hover .slide-bar-item .slide-bar-item-title[data-v-79369624]{color:#63e2b7;opacity:.8}.dark .tiny-slide-bar[data-v-79369624]{--ti-slider-progress-box-arrow-hover-text-color:#f2f2f2;--ti-slider-progress-box-arrow-normal-text-color:gray}

@ -0,0 +1 @@
var e=function(e){return e[e.TITLE=1]=`TITLE`,e[e.TEXT=2]=`TEXT`,e[e.IMAGEURL=3]=`IMAGEURL`,e[e.VIDEOURL=4]=`VIDEOURL`,e[e.AUDIOURL=5]=`AUDIOURL`,e[e.LINKURL=6]=`LINKURL`,e[e.ATTACHMENT=7]=`ATTACHMENT`,e[e.CHARGEATTACHMENT=8]=`CHARGEATTACHMENT`,e}({}),t=function(e){return e[e.PUBLIC=0]=`PUBLIC`,e[e.PRIVATE=1]=`PRIVATE`,e[e.FRIEND=2]=`FRIEND`,e[e.Following=3]=`Following`,e}({}),n=function(e){return e[e.NO=0]=`NO`,e[e.YES=1]=`YES`,e}({});export{t as n,n as r,e as t};

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.message-item[data-v-c8b31a22]{padding:16px}.message-item.unread[data-v-c8b31a22]{background:#fcfffc}.message-item .sender-wrap[data-v-c8b31a22]{align-items:center;display:flex}.message-item .sender-wrap .top-tag[data-v-c8b31a22]{transform:scale(.75)}.message-item .sender-wrap .username[data-v-c8b31a22]{opacity:.75;font-size:14px}.message-item .timestamp[data-v-c8b31a22]{opacity:.75;align-items:center;font-size:12px;display:flex}.message-item .timestamp .timestamp-txt[data-v-c8b31a22]{margin-left:6px}.message-item .brief-wrap[data-v-c8b31a22]{margin-top:10px}.message-item .brief-wrap .brief-content[data-v-c8b31a22],.message-item .brief-wrap .whisper-content-wrap[data-v-c8b31a22],.message-item .brief-wrap .requesting-friend-wrap[data-v-c8b31a22]{width:100%;display:flex}.message-item .view-link[data-v-c8b31a22]{align-items:center;margin-left:8px;display:flex}.message-item .status-info[data-v-c8b31a22]{align-items:center;margin-left:8px}.dark .message-item[data-v-c8b31a22]{background-color:#101014bf}.dark .message-item.unread[data-v-c8b31a22]{background:#0f180b}.dark .message-item .brief-wrap[data-v-c8b31a22]{background-color:#18181c}.skeleton-item[data-v-e6390d54]{padding:12px;display:flex}.skeleton-item .content[data-v-e6390d54]{width:100%}.dark .skeleton-item[data-v-e6390d54]{background-color:#101014bf}.title[data-v-5226edc2]{opacity:.9;padding-top:4px}.title-action[data-v-5226edc2]{align-items:center;margin-left:20px;display:flex}.title-filter[data-v-5226edc2]{margin-right:20px}.dark .empty-wrap[data-v-5226edc2],.dark .messages-wrap[data-v-5226edc2],.dark .pagination-wrap[data-v-5226edc2]{background-color:#101014bf}

@ -0,0 +1 @@
.message-item[data-v-ad94ddff]{padding:16px}.message-item.unread[data-v-ad94ddff]{background:#fcfffc}.message-item .sender-wrap[data-v-ad94ddff]{align-items:center;display:flex}.message-item .sender-wrap .top-tag[data-v-ad94ddff]{transform:scale(.75)}.message-item .sender-wrap .username[data-v-ad94ddff]{opacity:.75;font-size:14px}.message-item .timestamp[data-v-ad94ddff]{opacity:.75;align-items:center;font-size:12px;display:flex}.message-item .timestamp .timestamp-txt[data-v-ad94ddff]{margin-left:6px}.message-item .brief-wrap[data-v-ad94ddff]{margin-top:10px}.message-item .brief-wrap .brief-content[data-v-ad94ddff],.message-item .brief-wrap .whisper-content-wrap[data-v-ad94ddff],.message-item .brief-wrap .requesting-friend-wrap[data-v-ad94ddff]{width:100%;display:flex}.message-item .view-link[data-v-ad94ddff]{align-items:center;margin-left:8px;display:flex}.message-item .status-info[data-v-ad94ddff]{align-items:center;margin-left:8px}.dark .message-item[data-v-ad94ddff]{background-color:#101014bf}.dark .message-item.unread[data-v-ad94ddff]{background:#0f180b}.dark .message-item .brief-wrap[data-v-ad94ddff]{background-color:#18181c}.skeleton-item[data-v-e6390d54]{padding:12px;display:flex}.skeleton-item .content[data-v-e6390d54]{width:100%}.dark .skeleton-item[data-v-e6390d54]{background-color:#101014bf}.title[data-v-5a0fa109]{opacity:.9;padding-top:4px}.title-action[data-v-5a0fa109]{align-items:center;margin-left:20px;display:flex}.title-filter[data-v-5a0fa109]{margin-right:20px}.dark .empty-wrap[data-v-5a0fa109],.dark .messages-wrap[data-v-5a0fa109],.dark .pagination-wrap[data-v-5a0fa109]{background-color:#101014bf}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.profile-baseinfo[data-v-beaa60a6]{padding:16px;display:flex}.profile-baseinfo .avatar[data-v-beaa60a6]{width:72px}.profile-baseinfo .base-info[data-v-beaa60a6]{width:calc(100% - 84px);margin-left:12px;position:relative}.profile-baseinfo .base-info .username[data-v-beaa60a6]{font-size:16px;line-height:16px}.profile-baseinfo .base-info .userinfo[data-v-beaa60a6]{opacity:.75;margin-top:10px;font-size:14px;line-height:14px}.profile-baseinfo .base-info .userinfo .info-item[data-v-beaa60a6]{margin-right:12px}.profile-baseinfo .base-info .top-tag[data-v-beaa60a6]{transform:scale(.75)}.profile-baseinfo .user-opts[data-v-beaa60a6]{opacity:.75;position:relative}.profile-tabs-wrap[data-v-beaa60a6]{padding:0 16px}.load-more[data-v-beaa60a6]{margin:20px}.load-more .load-more-wrap[data-v-beaa60a6]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-beaa60a6]{opacity:.65;font-size:14px}.dark .profile-wrap[data-v-beaa60a6],.dark .pagination-wrap[data-v-beaa60a6]{background-color:#101014bf}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.profile-baseinfo[data-v-a86a2cb5]{padding:16px;display:flex}.profile-baseinfo .avatar[data-v-a86a2cb5]{width:72px}.profile-baseinfo .base-info[data-v-a86a2cb5]{width:calc(100% - 84px);margin-left:12px;position:relative}.profile-baseinfo .base-info .username[data-v-a86a2cb5]{font-size:16px;line-height:16px}.profile-baseinfo .base-info .userinfo[data-v-a86a2cb5]{opacity:.75;margin-top:10px;font-size:14px;line-height:14px}.profile-baseinfo .base-info .userinfo .info-item[data-v-a86a2cb5]{margin-right:12px}.profile-baseinfo .base-info .top-tag[data-v-a86a2cb5]{transform:scale(.75)}.profile-baseinfo .user-opts[data-v-a86a2cb5]{opacity:.75;position:relative}.profile-tabs-wrap[data-v-a86a2cb5]{padding:0 16px}.load-more[data-v-a86a2cb5]{margin:20px}.load-more .load-more-wrap[data-v-a86a2cb5]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-a86a2cb5]{opacity:.65;font-size:14px}.dark .profile-wrap[data-v-a86a2cb5],.dark .pagination-wrap[data-v-a86a2cb5]{background-color:#101014bf}

@ -0,0 +1 @@
.setting-card[data-v-4bb80ff2]{border-radius:0;margin-top:-1px}.setting-card .form-submit-wrap[data-v-4bb80ff2]{justify-content:flex-end;display:flex}.setting-card .base-line[data-v-4bb80ff2]{align-items:center;line-height:2;display:flex}.setting-card .base-line .base-label[data-v-4bb80ff2]{opacity:.75;margin-right:12px}.setting-card .base-line .nickname-input[data-v-4bb80ff2]{width:120px;margin-right:10px}.setting-card .avatar[data-v-4bb80ff2]{flex-direction:column;align-items:flex-start;margin-bottom:20px;display:flex}.setting-card .avatar .avatar-img[data-v-4bb80ff2]{margin-bottom:10px}.setting-card .hash-link[data-v-4bb80ff2]{margin-left:12px}.setting-card .phone-bind-wrap[data-v-4bb80ff2]{margin-top:20px}.setting-card .phone-bind-wrap .captcha-img-wrap[data-v-4bb80ff2]{align-items:center;width:100%;display:flex}.setting-card .phone-bind-wrap .captcha-img[data-v-4bb80ff2]{cursor:pointer;border-radius:3px;width:125px;height:34px;margin-left:10px;overflow:hidden}.setting-card .phone-bind-wrap .captcha-img img[data-v-4bb80ff2]{width:100%;height:100%}.dark .setting-card[data-v-4bb80ff2]{background-color:#101014bf}

@ -1 +0,0 @@
.setting-card[data-v-0bce70f5]{border-radius:0;margin-top:-1px}.setting-card .form-submit-wrap[data-v-0bce70f5]{justify-content:flex-end;display:flex}.setting-card .base-line[data-v-0bce70f5]{align-items:center;line-height:2;display:flex}.setting-card .base-line .base-label[data-v-0bce70f5]{opacity:.75;margin-right:12px}.setting-card .base-line .nickname-input[data-v-0bce70f5]{width:120px;margin-right:10px}.setting-card .avatar[data-v-0bce70f5]{flex-direction:column;align-items:flex-start;margin-bottom:20px;display:flex}.setting-card .avatar .avatar-img[data-v-0bce70f5]{margin-bottom:10px}.setting-card .hash-link[data-v-0bce70f5]{margin-left:12px}.setting-card .phone-bind-wrap[data-v-0bce70f5]{margin-top:20px}.setting-card .phone-bind-wrap .captcha-img-wrap[data-v-0bce70f5]{align-items:center;width:100%;display:flex}.setting-card .phone-bind-wrap .captcha-img[data-v-0bce70f5]{cursor:pointer;border-radius:3px;width:125px;height:34px;margin-left:10px;overflow:hidden}.setting-card .phone-bind-wrap .captcha-img img[data-v-0bce70f5]{width:100%;height:100%}.dark .setting-card[data-v-0bce70f5]{background-color:#101014bf}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{A as e,Bt as t,C as n,D as r,H as i,J as a,K as o,O as s,Q as c,S as l,T as u,W as d,X as f,b as p,h as m,ht as h,lt as g,w as _}from"./@css-render-YsNuQTaE.js";import{r as v}from"./pinia-TbaIYBWH.js";import{G as y,P as b,W as x,c as S,ct as C,f as w,it as T,l as E,lt as D,nt as O,s as k,x as A}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{c as j,l as M,n as N,r as P}from"./sidebar-CIS7wt6Z.js";import{a as F}from"./@vicons-Bd7TWO2p.js";import{C as I,D as L,M as R,f as z,y as B}from"./index-D3WChr5M.js";import{t as V}from"./main-nav-BLJ4tcq0.js";var H={key:0,class:`tag-item`},U={key:0,class:`tag-quote`},W={key:1,class:`tag-quote tag-follow`},G={key:0,class:`options`},K=e({__name:`tag-item`,props:{tag:{},showAction:{type:Boolean},checkFollowing:{type:Boolean},checkPin:{type:Boolean}},setup(e){let o=g(!1),u=e,f=p(()=>u.tag.user?u.tag.user.avatar:N),m=p(()=>{let e=[];return u.tag.is_following===0?e.push({label:`关注`,key:`follow`}):(u.tag.is_pin===0?e.push({label:`钉住`,key:`pin`}):e.push({label:`取消钉住`,key:`unpin`}),u.tag.is_top===0?e.push({label:`置顶`,key:`stick`}):e.push({label:`取消置顶`,key:`unstick`}),e.push({label:`取消关注`,key:`unfollow`})),e}),v=e=>{switch(e){case`follow`:z({topic_id:u.tag.id}).then(e=>{u.tag.is_following=1,window.$message.success(`关注成功`)}).catch(e=>{console.log(e)});break;case`unfollow`:R({topic_id:u.tag.id}).then(e=>{u.tag.is_following=0,window.$message.success(`取消关注`)}).catch(e=>{console.log(e)});break;case`pin`:I({topic_id:u.tag.id}).then(e=>{u.tag.is_pin=1,window.$message.success(`钉住成功`)}).catch(e=>{console.log(e)});break;case`unpin`:I({topic_id:u.tag.id}).then(e=>{u.tag.is_pin=0,window.$message.success(`取消钉住`)}).catch(e=>{console.log(e)});break;case`stick`:L({topic_id:u.tag.id}).then(e=>{u.tag.is_top=e.top_status,window.$message.success(`置顶成功`)}).catch(e=>{console.log(e)});break;case`unstick`:L({topic_id:u.tag.id}).then(e=>{u.tag.is_top=e.top_status,window.$message.success(`取消置顶`)}).catch(e=>{console.log(e)});break;default:break}};return i(()=>{o.value=!1}),(i,o)=>{let u=a(`router-link`),p=T,g=C,b=y,S=O,w=x,E=k;return!e.checkFollowing&&!e.checkPin||e.checkFollowing&&e.tag.is_following===1||e.checkPin&&e.tag.is_following===1&&e.tag.is_pin===1?(d(),_(`div`,H,[s(E,null,{header:c(()=>[(d(),l(g,{type:`success`,size:`large`,round:``,key:e.tag.id},{avatar:c(()=>[s(p,{src:f.value},null,8,[`src`])]),default:c(()=>[s(u,{class:`hash-link`,to:{name:`home`,query:{q:e.tag.tag,t:`tag`}}},{default:c(()=>[r(` #`+t(e.tag.tag),1)]),_:1},8,[`to`]),e.showAction?n(``,!0):(d(),_(`span`,U,`(`+t(e.tag.quote_num)+`)`,1)),e.showAction?(d(),_(`span`,W,`(`+t(e.tag.quote_num)+`)`,1)):n(``,!0)]),_:1}))]),"header-extra":c(()=>[e.showAction?(d(),_(`div`,G,[s(w,{placement:`bottom-end`,trigger:`click`,size:`small`,options:m.value,onSelect:v},{default:c(()=>[s(S,{type:`success`,quaternary:``,circle:``,block:``},{icon:c(()=>[s(b,null,{default:c(()=>[s(h(F))]),_:1})]),_:1})]),_:1},8,[`options`])])):n(``,!0)]),_:1})])):n(``,!0)}}}),q={key:0,class:`empty-wrap`},J=P(e({__name:`Topic`,setup(e){let a=M(),{userLogined:y}=v(j()),x=g([]),T=g(`hot`),O=g(!1),k=g(!1),N=g(!1),P=g(!1);f(k,()=>{k.value||(window.$message.success(`保存成功`),a.doRefreshTopicFollow())});let F=p({get:()=>{let e=`编辑`;return k.value&&(e=`保存`),e},set:e=>{}}),I=()=>{O.value=!0,B({type:T.value,num:50}).then(e=>{x.value=e.topics,O.value=!1}).catch(e=>{x.value=[],console.log(e),O.value=!1})},L=e=>{T.value=e,N.value=e===`follow`,P.value=e===`pin`,I()};return i(()=>{I()}),(e,i)=>{let a=V,f=E,p=C,g=S,v=K,T=b,j=D,M=w,I=A;return d(),_(`div`,null,[s(a,{title:`话题`}),s(I,{class:`main-content-wrap tags-wrap`,bordered:``},{default:c(()=>[s(g,{type:`line`,animated:``,"onUpdate:value":L},u({default:c(()=>[s(f,{name:`hot`,tab:`热门`}),s(f,{name:`new`,tab:`最新`}),h(y)?(d(),l(f,{key:0,name:`follow`,tab:`关注`})):n(``,!0),h(y)?(d(),l(f,{key:1,name:`pin`,tab:`钉住`})):n(``,!0)]),_:2},[h(y)?{name:`suffix`,fn:c(()=>[s(p,{checked:k.value,"onUpdate:checked":i[0]||=e=>k.value=e,checkable:``},{default:c(()=>[r(t(F.value),1)]),_:1},8,[`checked`])]),key:`0`}:void 0]),1024),s(M,{show:O.value},{default:c(()=>[s(T,null,{default:c(()=>[(d(!0),_(m,null,o(x.value,e=>(d(),l(v,{tag:e,showAction:h(y)&&k.value,checkFollowing:N.value,checkPin:P.value},null,8,[`tag`,`showAction`,`checkFollowing`,`checkPin`]))),256))]),_:1}),x.value.length===0?(d(),_(`div`,q,[s(j,{size:`large`,description:`暂无数据`})])):n(``,!0)]),_:1},8,[`show`])]),_:1})])}}}),[[`__scopeId`,`data-v-5410fcc5`]]);export{J as default};

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.profile-tabs-wrap[data-v-1d4e457d]{padding:0 16px}.profile-baseinfo[data-v-1d4e457d]{padding:16px;display:flex}.profile-baseinfo .avatar[data-v-1d4e457d]{width:72px}.profile-baseinfo .base-info[data-v-1d4e457d]{width:calc(100% - 84px);margin-left:12px;position:relative}.profile-baseinfo .base-info .username[data-v-1d4e457d]{font-size:16px;line-height:16px}.profile-baseinfo .base-info .userinfo[data-v-1d4e457d]{opacity:.75;margin-top:10px;font-size:14px;line-height:14px}.profile-baseinfo .base-info .userinfo .info-item[data-v-1d4e457d]{margin-right:12px}.profile-baseinfo .base-info .top-tag[data-v-1d4e457d]{transform:scale(.75)}.profile-baseinfo .user-opts[data-v-1d4e457d]{opacity:.75;position:absolute;top:16px;right:16px}.load-more[data-v-1d4e457d]{margin:20px}.load-more .load-more-wrap[data-v-1d4e457d]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-1d4e457d]{opacity:.65;font-size:14px}.dark .profile-wrap[data-v-1d4e457d],.dark .pagination-wrap[data-v-1d4e457d]{background-color:#101014bf}

@ -0,0 +1 @@
.profile-tabs-wrap[data-v-22eef2f5]{padding:0 16px}.profile-baseinfo[data-v-22eef2f5]{padding:16px;display:flex}.profile-baseinfo .avatar[data-v-22eef2f5]{width:72px}.profile-baseinfo .base-info[data-v-22eef2f5]{width:calc(100% - 84px);margin-left:12px;position:relative}.profile-baseinfo .base-info .username[data-v-22eef2f5]{font-size:16px;line-height:16px}.profile-baseinfo .base-info .userinfo[data-v-22eef2f5]{opacity:.75;margin-top:10px;font-size:14px;line-height:14px}.profile-baseinfo .base-info .userinfo .info-item[data-v-22eef2f5]{margin-right:12px}.profile-baseinfo .base-info .top-tag[data-v-22eef2f5]{transform:scale(.75)}.profile-baseinfo .user-opts[data-v-22eef2f5]{opacity:.75;position:absolute;top:16px;right:16px}.load-more[data-v-22eef2f5]{margin:20px}.load-more .load-more-wrap[data-v-22eef2f5]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-22eef2f5]{opacity:.65;font-size:14px}.dark .profile-wrap[data-v-22eef2f5],.dark .pagination-wrap[data-v-22eef2f5]{background-color:#101014bf}

@ -1 +0,0 @@
.balance-wrap[data-v-f2cb897a]{padding:16px}.balance-wrap .balance-line[data-v-f2cb897a]{justify-content:space-between;display:flex}.balance-wrap .balance-line .balance-opts[data-v-f2cb897a]{flex-direction:column;display:flex}.bill-line[data-v-f2cb897a]{justify-content:space-between;padding:16px;display:flex}.bill-line .income[data-v-f2cb897a],.bill-line .out[data-v-f2cb897a]{font-weight:700}.bill-line .income[data-v-f2cb897a]{color:#18a058}.pagination-wrap[data-v-f2cb897a]{justify-content:center;padding:10px;display:flex;overflow:hidden}.qrcode-wrap[data-v-f2cb897a]{flex-direction:column;justify-content:center;align-items:center;display:flex}.qrcode-wrap .pay-tips[data-v-f2cb897a]{margin-top:16px}.qrcode-wrap .pay-sub-tips[data-v-f2cb897a]{opacity:.75;align-items:center;margin-top:4px;font-size:12px;display:flex}.dark .income[data-v-f2cb897a]{color:#63e2b7}.dark .main-content-wrap[data-v-f2cb897a]{background-color:#101014bf}

@ -0,0 +1 @@
import{o as e}from"./rolldown-runtime-Bhmf7a9N.js";import{$ as t,A as n,Bt as r,C as i,D as a,H as o,It as ee,K as s,O as c,Q as l,S as u,W as d,d as f,h as p,ht as m,lt as h,p as te,w as g,x as _}from"./@css-render-YsNuQTaE.js";import{r as v}from"./pinia-TbaIYBWH.js";import{r as y}from"./vue-router-Dw9lfhBK.js";import{G as ne,H as re,P as ie,X as ae,_ as oe,b as se,d as b,lt as x,nt as ce,rt as le,tt as ue,x as de}from"./naive-ui-DIGPL69-.js";import"./@juggle-BrKhuOcS.js";import{a as S,c as C,l as w,r as T}from"./sidebar-CIS7wt6Z.js";import{M as fe}from"./@vicons-Bd7TWO2p.js";import"./moment-D_9q9veS.js";import{P as E,a as pe}from"./index-D3WChr5M.js";import{t as D}from"./main-nav-BLJ4tcq0.js";import{t as O}from"./post-skeleton-1eDXvLg5.js";import{t as k}from"./qrcode-isHacUp7.js";import"./dijkstrajs-Bx4WOP5j.js";var A=e(k()),j={class:`balance-wrap`},M={class:`balance-line`},N={class:`balance-opts`},P={key:0,class:`pagination-wrap`},F={key:0,class:`skeleton-wrap`},I={key:1},L={key:0,class:`empty-wrap`},R={class:`bill-line`},z={key:0,class:`amount-options`},B={key:1,style:{"margin-top":`10px`}},me={class:`qrcode-wrap`},he={class:`pay-tips`},ge={class:`pay-sub-tips`},V=T(n({__name:`Wallet`,setup(e){let n=w(),T=C(),{collapsedRight:k}=v(n),{userInfo:V}=v(T),H=y(),U=h(!1),W=h(100),G=h(!1),K=h(``),q=h(!1),J=h([]),Y=h(+H.query.p||1),X=h(20),Z=h(0),_e=h([100,200,300,500,1e3,3e3,5e3,1e4,5e4]),Q=()=>{q.value=!0,S.v1.user.get.wallet.bills({page:Y.value,page_size:X.value}).then(e=>{q.value=!1,J.value=e.list,Z.value=Math.ceil(e.pager.total_rows/X.value),window.scrollTo(0,0)}).catch(e=>{q.value=!1})},ve=e=>{Y.value=e,Q()},$=()=>{let e=localStorage.getItem(`PAOPAO_TOKEN`)||``;e?E(e).then(e=>{T.updateUserinfo(e),n.triggerAuth(!1),Q()}).catch(e=>{n.triggerAuth(!0),T.userLogout()}):(n.triggerAuth(!0),T.userLogout())},ye=()=>{U.value=!0},be=e=>{G.value=!0,S.v1.user.post.recharge({amount:W.value}).then(e=>{G.value=!1,K.value=e.pay,A.toCanvas(document.querySelector(`#qrcode-container`),e.pay,{width:150,margin:2});let t=setInterval(()=>{S.v1.user.get.recharge({id:e.id}).then(e=>{e.status===`TRADE_SUCCESS`&&(clearInterval(t),window.$message.success(`充值成功`),U.value=!1,K.value=``,$())}).catch(e=>{console.log(e)})},2e3)}).catch(e=>{G.value=!1})},xe=()=>{V.value.balance==0?window.$message.warning(`您暂无可提现资金`):window.$message.warning(`该功能即将开放`)};return o(()=>{$()}),(e,n)=>{let o=D,h=oe,v=b,y=ce,S=ie,C=ae,w=O,T=x,E=se,A=de,H=ne,Q=le,$=ue,Se=re;return d(),g(`div`,null,[c(o,{title:`钱包`}),c(A,{class:`main-content-wrap`,bordered:``},{footer:l(()=>[Z.value>1?(d(),g(`div`,P,[c(C,{page:Y.value,"onUpdate:page":ve,"page-slot":m(k)?5:8,"page-count":Z.value},null,8,[`page`,`page-slot`,`page-count`])])):i(``,!0)]),default:l(()=>[_(`div`,j,[_(`div`,M,[c(v,{label:`账户余额 (元)`},{default:l(()=>[c(h,{from:0,to:(m(V).balance||0)/100,duration:500,precision:2},null,8,[`to`])]),_:1}),_(`div`,N,[c(S,{vertical:``},{default:l(()=>[c(y,{size:`small`,secondary:``,type:`primary`,onClick:ye},{default:l(()=>[...n[1]||=[a(` 充值 `,-1)]]),_:1}),c(y,{size:`small`,secondary:``,type:`tertiary`,onClick:xe},{default:l(()=>[...n[2]||=[a(` 提现 `,-1)]]),_:1})]),_:1})])])]),q.value?(d(),g(`div`,F,[c(w,{num:X.value},null,8,[`num`])])):(d(),g(`div`,I,[J.value.length===0?(d(),g(`div`,L,[c(T,{size:`large`,description:`暂无数据`})])):i(``,!0),(d(!0),g(p,null,s(J.value,e=>(d(),u(E,{key:e.id},{default:l(()=>[_(`div`,R,[_(`div`,null,`NO.`+r(e.id),1),_(`div`,null,r(e.reason),1),_(`div`,{class:ee({income:e.change_amount>=0,out:e.change_amount<0})},r((e.change_amount>0?`+`:``)+(e.change_amount/100).toFixed(2)),3),_(`div`,null,r(m(pe)(e.created_on)),1)])]),_:2},1024))),128))]))]),_:1}),c(Se,{show:U.value,"onUpdate:show":n[0]||=e=>U.value=e},{default:l(()=>[c($,{bordered:!1,title:`请选择充值金额`,role:`dialog`,"aria-modal":`true`,style:{width:`100%`,"max-width":`330px`}},{default:l(()=>[K.value.length===0?(d(),g(`div`,z,[c(S,{align:`baseline`},{default:l(()=>[(d(!0),g(p,null,s(_e.value,e=>(d(),u(y,{key:e,size:`small`,secondary:``,type:W.value===e?`info`:`default`,onClick:te(t=>W.value=e,[`stop`])},{default:l(()=>[a(r(e/100)+``,1)]),_:2},1032,[`type`,`onClick`]))),128))]),_:1})])):i(``,!0),W.value>0&&K.value.length===0?(d(),g(`div`,B,[c(y,{loading:G.value,strong:``,secondary:``,type:`info`,style:{width:`100%`},onClick:be},{icon:l(()=>[c(H,null,{default:l(()=>[c(m(fe))]),_:1})]),default:l(()=>[n[3]||=a(` 前往支付 `,-1)]),_:1},8,[`loading`])])):i(``,!0),t(_(`div`,me,[n[5]||=_(`canvas`,{id:`qrcode-container`},null,-1),_(`div`,he,` 请使用支付宝扫码支付`+r((W.value/100).toFixed(2))+``,1),_(`div`,ge,[c(Q,{value:100,type:`info`,dot:``,processing:``}),n[4]||=_(`span`,{style:{"margin-left":`6px`}},` 支付结果实时同步中... `,-1)])],512),[[f,K.value.length>0]])]),_:1})]),_:1},8,[`show`])])}}}),[[`__scopeId`,`data-v-4fe01d45`]]);export{V as default};

@ -0,0 +1 @@
.balance-wrap[data-v-4fe01d45]{padding:16px}.balance-wrap .balance-line[data-v-4fe01d45]{justify-content:space-between;display:flex}.balance-wrap .balance-line .balance-opts[data-v-4fe01d45]{flex-direction:column;display:flex}.bill-line[data-v-4fe01d45]{justify-content:space-between;padding:16px;display:flex}.bill-line .income[data-v-4fe01d45],.bill-line .out[data-v-4fe01d45]{font-weight:700}.bill-line .income[data-v-4fe01d45]{color:#18a058}.pagination-wrap[data-v-4fe01d45]{justify-content:center;padding:10px;display:flex;overflow:hidden}.qrcode-wrap[data-v-4fe01d45]{flex-direction:column;justify-content:center;align-items:center;display:flex}.qrcode-wrap .pay-tips[data-v-4fe01d45]{margin-top:16px}.qrcode-wrap .pay-sub-tips[data-v-4fe01d45]{opacity:.75;align-items:center;margin-top:4px;font-size:12px;display:flex}.dark .income[data-v-4fe01d45]{color:#63e2b7}.dark .main-content-wrap[data-v-4fe01d45]{background-color:#101014bf}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{t as e}from"./rolldown-runtime-Bhmf7a9N.js";var t=e(((e,t)=>{t.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case`INPUT`:case`TEXTAREA`:t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type===`Caret`&&e.removeAllRanges(),e.rangeCount||n.forEach(function(t){e.addRange(t)}),t&&t.focus()}}})),n=e(((e,n)=>{var r=t(),i={"text/plain":`Text`,"text/html":`Url`,default:`Text`},a=`Copy to clipboard: #{key}, Enter`;function o(e){var t=(/mac os x/i.test(navigator.userAgent)?``:`Ctrl`)+`+C`;return e.replace(/#{\s*key\s*}/g,t)}function s(e,t){var n,s,c,l,u,d,f=!1;t||={},n=t.debug||!1;try{if(c=r(),l=document.createRange(),u=document.getSelection(),d=document.createElement(`span`),d.textContent=e,d.ariaHidden=`true`,d.style.all=`unset`,d.style.position=`fixed`,d.style.top=0,d.style.clip=`rect(0, 0, 0, 0)`,d.style.whiteSpace=`pre`,d.style.webkitUserSelect=`text`,d.style.MozUserSelect=`text`,d.style.msUserSelect=`text`,d.style.userSelect=`text`,d.addEventListener(`copy`,function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),r.clipboardData===void 0){n&&console.warn(`unable to use e.clipboardData`),n&&console.warn(`trying IE specific stuff`),window.clipboardData.clearData();var a=i[t.format]||i.default;window.clipboardData.setData(a,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))}),document.body.appendChild(d),l.selectNodeContents(d),u.addRange(l),!document.execCommand(`copy`))throw Error(`copy command was unsuccessful`);f=!0}catch(r){n&&console.error(`unable to copy using execCommand: `,r),n&&console.warn(`trying IE specific stuff`);try{window.clipboardData.setData(t.format||`text`,e),t.onCopy&&t.onCopy(window.clipboardData),f=!0}catch(r){n&&console.error(`unable to copy using clipboardData: `,r),n&&console.error(`falling back to prompt`),s=o(`message`in t?t.message:a),window.prompt(s,e)}}finally{u&&(typeof u.removeRange==`function`?u.removeRange(l):u.removeAllRanges()),d&&document.body.removeChild(d),c()}return f}n.exports=s}));export{n as t};

@ -0,0 +1 @@
var e=e=>e>=1e3?(e/1e3).toFixed(1)+``:e>=1e4?(e/1e4).toFixed(1)+``:e;export{e as t};

@ -0,0 +1 @@
import{t as e}from"./rolldown-runtime-Bhmf7a9N.js";var t=e(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)}));export{t};

@ -1 +1 @@
.auth-wrap[data-v-b1b75819]{margin-top:-30px}.dark .auth-wrap[data-v-b1b75819]{background-color:#101014bf}.rightbar-wrap[data-v-2ce4deb6]::-webkit-scrollbar{width:0;height:0}.rightbar-wrap[data-v-2ce4deb6]{width:240px;left:calc(50% + var(--content-main) / 2 + 10px);max-height:100vh;position:fixed;overflow:auto}.rightbar-wrap .search-wrap[data-v-2ce4deb6]{margin:12px 0}.rightbar-wrap .hot-tag-item[data-v-2ce4deb6]{line-height:2;position:relative}.rightbar-wrap .hot-tag-item .hash-link[data-v-2ce4deb6]{text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 60px);display:block;overflow:hidden}.rightbar-wrap .hot-tag-item .post-num[data-v-2ce4deb6]{text-align:right;opacity:.5;width:60px;line-height:2;position:absolute;top:0;right:0}.rightbar-wrap .hottopic-wrap[data-v-2ce4deb6]{margin-bottom:10px}.rightbar-wrap .site-info[data-v-2ce4deb6]{margin-top:8px;padding-left:16px;padding-right:16px}.rightbar-wrap .site-info .site-info-item[data-v-2ce4deb6]{opacity:.75;font-size:10px}.rightbar-wrap .copyright-wrap .copyright[data-v-2ce4deb6]{opacity:.75;font-size:12px}.rightbar-wrap .copyright-wrap .hash-link[data-v-2ce4deb6]{font-size:12px}.dark .hottopic-wrap[data-v-2ce4deb6],.dark .copyright-wrap[data-v-2ce4deb6]{background-color:#18181c}:root{--content-main:620px}.app-container{margin:0}.app-container .app-wrap{width:100%;margin:0 auto}.main-wrap{flex-direction:row;justify-content:center;min-height:100vh;display:flex}.main-wrap .content-wrap{width:100%;max-width:var(--content-main);position:relative}.main-wrap .main-content-wrap{border-top:none;border-radius:0;margin:0}.main-wrap .main-content-wrap .n-list-item{padding:0}.empty-wrap{justify-content:center;align-items:center;min-height:300px;display:flex}.following-link{color:#000;cursor:pointer;opacity:.75;text-decoration:none}.following-link:hover{opacity:.8}.slide-bar-user-link{cursor:pointer;text-decoration:none}.slide-bar-user-link:hover{color:#18a058;opacity:.8}.hash-link,.user-link{color:#18a058;cursor:pointer;text-decoration:none}.hash-link:hover,.user-link:hover{opacity:.8}.beian-link{color:#333;text-decoration:none}.beian-link:hover{opacity:.75}.username-link{color:#000;cursor:pointer;text-decoration:none}.username-link:hover{text-decoration:underline}.dark .hash-link,.dark .user-link{color:#63e2b7}.dark .following-link,.dark .username-link{color:#eee}.dark .beian-link{color:#ddd}@media screen and (width<=821px){.content-wrap{top:0;position:absolute!important}}
.auth-wrap[data-v-0a09aa63]{margin-top:-30px}.dark .auth-wrap[data-v-0a09aa63]{background-color:#101014bf}.rightbar-wrap[data-v-a80a12bf]::-webkit-scrollbar{width:0;height:0}.rightbar-wrap[data-v-a80a12bf]{width:240px;left:calc(50% + var(--content-main) / 2 + 10px);max-height:100vh;position:fixed;overflow:auto}.rightbar-wrap .search-wrap[data-v-a80a12bf]{margin:12px 0}.rightbar-wrap .hot-tag-item[data-v-a80a12bf]{line-height:2;position:relative}.rightbar-wrap .hot-tag-item .hash-link[data-v-a80a12bf]{text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 60px);display:block;overflow:hidden}.rightbar-wrap .hot-tag-item .post-num[data-v-a80a12bf]{text-align:right;opacity:.5;width:60px;line-height:2;position:absolute;top:0;right:0}.rightbar-wrap .hottopic-wrap[data-v-a80a12bf]{margin-bottom:10px}.rightbar-wrap .site-info[data-v-a80a12bf]{margin-top:8px;padding-left:16px;padding-right:16px}.rightbar-wrap .site-info .site-info-item[data-v-a80a12bf]{opacity:.75;font-size:10px}.rightbar-wrap .copyright-wrap .copyright[data-v-a80a12bf]{opacity:.75;font-size:12px}.rightbar-wrap .copyright-wrap .hash-link[data-v-a80a12bf]{font-size:12px}.dark .hottopic-wrap[data-v-a80a12bf],.dark .copyright-wrap[data-v-a80a12bf]{background-color:#18181c}:root{--content-main:620px}.app-container{margin:0}.app-container .app-wrap{width:100%;margin:0 auto}.main-wrap{flex-direction:row;justify-content:center;min-height:100vh;display:flex}.main-wrap .content-wrap{width:100%;max-width:var(--content-main);position:relative}.main-wrap .main-content-wrap{border-top:none;border-radius:0;margin:0}.main-wrap .main-content-wrap .n-list-item{padding:0}.empty-wrap{justify-content:center;align-items:center;min-height:300px;display:flex}.following-link{color:#000;cursor:pointer;opacity:.75;text-decoration:none}.following-link:hover{opacity:.8}.slide-bar-user-link{cursor:pointer;text-decoration:none}.slide-bar-user-link:hover{color:#18a058;opacity:.8}.hash-link,.user-link{color:#18a058;cursor:pointer;text-decoration:none}.hash-link:hover,.user-link:hover{opacity:.8}.beian-link{color:#333;text-decoration:none}.beian-link:hover{opacity:.75}.username-link{color:#000;cursor:pointer;text-decoration:none}.username-link:hover{text-decoration:underline}.dark .hash-link,.dark .user-link{color:#63e2b7}.dark .following-link,.dark .username-link{color:#eee}.dark .beian-link{color:#ddd}@media screen and (width<=821px){.content-wrap{top:0;position:absolute!important}}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.load-more[data-v-a2a3097d]{margin:20px}.load-more .load-more-wrap[data-v-a2a3097d]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-a2a3097d]{opacity:.65;font-size:14px}

@ -1 +0,0 @@
.load-more[data-v-fadcc2b3]{margin:20px}.load-more .load-more-wrap[data-v-fadcc2b3]{flex-direction:row;justify-content:center;align-items:center;gap:14px;display:flex}.load-more .load-more-wrap .load-more-spinner[data-v-fadcc2b3]{opacity:.65;font-size:14px}

@ -0,0 +1 @@
import{o as e}from"./rolldown-runtime-Bhmf7a9N.js";import{A as t,Bt as n,C as r,O as i,Q as a,S as o,W as s,ht as c,x as l}from"./@css-render-YsNuQTaE.js";import{P as u,f as d}from"./naive-ui-DIGPL69-.js";import{r as f}from"./sidebar-CIS7wt6Z.js";import{t as p}from"./v3-infinite-loading-DRGEwjx_.js";var m=e(p()),h={class:`load-more-wrap`},g={class:`load-more-spinner`},_=f(t({__name:`infinite-load-more`,props:{totalPage:{},noMore:{type:Boolean},completeText:{default:`没有更多了`}},emits:[`load-more`],setup(e,{emit:t}){let f=t,p=()=>{f(`load-more`)};return(t,f)=>{let _=d,v=u;return e.totalPage>0?(s(),o(v,{key:0,justify:`center`},{default:a(()=>[i(c(m.default),{class:`load-more`,slots:{complete:e.completeText,error:`加载出错`},onInfinite:p},{spinner:a(()=>[l(`div`,h,[e.noMore?r(``,!0):(s(),o(_,{key:0,size:14})),l(`span`,g,n(e.noMore?e.completeText:`加载更多`),1)])]),_:1},8,[`slots`])]),_:1})):r(``,!0)}}}),[[`__scopeId`,`data-v-a2a3097d`]]);export{_ as t};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{A as e,Bt as t,C as n,D as r,H as i,O as a,Q as o,S as s,W as c,h as l,ht as u,lt as d,w as f,x as p}from"./@css-render-YsNuQTaE.js";import{r as m}from"./pinia-TbaIYBWH.js";import{i as h}from"./vue-router-Dw9lfhBK.js";import{G as g,I as _,L as v,nt as y,tt as b,u as x,z as S}from"./naive-ui-DIGPL69-.js";import{t as C}from"./vooks-DlxAfBad.js";import{l as w,t as T}from"./sidebar-CIS7wt6Z.js";import{c as E,l as D,s as O,u as k}from"./@vicons-Bd7TWO2p.js";var A={key:0},j={class:`navbar`},M=e({__name:`main-nav`,props:{title:{default:``},back:{type:Boolean,default:!1},theme:{type:Boolean,default:!0}},setup(e){let M=w(),{desktopModelShow:N,drawerModelShow:P,theme:F}=m(M),I=h(),L=d(!1),R=d(`left`),z=e,B=e=>{e?(localStorage.setItem(`PAOPAO_THEME`,`dark`),M.triggerTheme(`dark`)):(localStorage.setItem(`PAOPAO_THEME`,`light`),M.triggerTheme(`light`))},V=()=>{window.history.length<=1?I.push({path:`/`}):I.go(-1)},H=()=>{L.value=!0};return i(()=>{localStorage.getItem(`PAOPAO_THEME`)||B(C()===`dark`),N.value||(window.$message=S())}),(i,d)=>{let m=T,h=_,S=v,C=g,w=y,M=x,N=b;return c(),f(l,null,[u(P)?(c(),f(`div`,A,[a(S,{show:L.value,"onUpdate:show":d[0]||=e=>L.value=e,width:212,placement:R.value,resizable:``},{default:o(()=>[a(h,null,{default:o(()=>[a(m)]),_:1})]),_:1},8,[`show`,`placement`])])):n(``,!0),a(N,{size:`small`,bordered:!0,class:`nav-title-card`},{header:o(()=>[p(`div`,j,[u(P)&&!e.back?(c(),s(w,{key:0,class:`drawer-btn`,onClick:H,quaternary:``,circle:``,size:`medium`},{icon:o(()=>[a(C,null,{default:o(()=>[a(u(E))]),_:1})]),_:1})):n(``,!0),e.back?(c(),s(w,{key:1,class:`back-btn`,onClick:V,quaternary:``,circle:``,size:`small`},{icon:o(()=>[a(C,null,{default:o(()=>[a(u(k))]),_:1})]),_:1})):n(``,!0),r(` `+t(z.title)+` `,1),z.theme?(c(),s(M,{key:2,value:u(F)===`dark`,"onUpdate:value":B,size:`small`,class:`theme-switch-wrap`},{"checked-icon":o(()=>[a(C,{component:u(D)},null,8,[`component`])]),"unchecked-icon":o(()=>[a(C,{component:u(O)},null,8,[`component`])]),_:1},8,[`value`])):n(``,!0)])]),_:1})],64)}}});export{M as t};

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 one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{A as e,K as t,O as n,W as r,h as i,w as a,x as o}from"./@css-render-YsNuQTaE.js";import{p as s}from"./naive-ui-DIGPL69-.js";import{r as c}from"./sidebar-CIS7wt6Z.js";var l={class:`user`},u={class:`content`},d=c(e({__name:`post-skeleton`,props:{num:{default:1}},setup(e){return(c,d)=>{let f=s;return r(!0),a(i,null,t(Array(e.num),e=>(r(),a(`div`,{class:`skeleton-item`,key:e},[o(`div`,l,[n(f,{circle:``,size:`small`})]),o(`div`,u,[n(f,{text:``,repeat:3}),n(f,{text:``,style:{width:`60%`}})])]))),128)}}}),[[`__scopeId`,`data-v-c4e511bd`]]);export{d as t};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{lt as e}from"./@css-render-YsNuQTaE.js";function t(t=20){let n=e(!1),r=e(!1),i=e(1),a=e(t),o=e(0);return{loading:n,noMore:r,page:i,pageSize:a,totalPage:o,reset:()=>{n.value=!1,r.value=!1,i.value=1,o.value=0},nextPage:e=>{i.value<o.value||o.value==0?(r.value=!1,i.value++,e()):r.value=!0}}}export{t};

@ -1 +1 @@
.link-wrap[data-v-3289864d]{margin-bottom:10px;position:relative}.link-wrap .link-item[data-v-3289864d]{align-items:center;height:22px;display:flex;position:relative}.link-wrap .link-item .link-txt-wrap[data-v-3289864d]{white-space:nowrap;text-overflow:ellipsis;width:calc(100% - 1em);position:absolute;left:calc(1em + 4px);overflow:hidden}.link-wrap .link-item .link-txt-wrap .hash-link .link-txt[data-v-3289864d]{word-break:break-all}.images-wrap{margin-top:10px}.post-img{background:#0000001a;border:1px solid #eee;border-radius:3px;margin:0;display:flex;overflow:hidden}.post-img img{width:100%;height:100%}.x1{height:174px}.x2{height:112px}.x3{height:100px}.dark .post-img{border:1px solid #333}@media screen and (width<=821px){.x1{height:100px}.x2{height:70px}.x3{height:50px}}.attach-item[data-v-4250dc16]{margin:10px 0}
.link-wrap[data-v-3289864d]{margin-bottom:10px;position:relative}.link-wrap .link-item[data-v-3289864d]{align-items:center;height:22px;display:flex;position:relative}.link-wrap .link-item .link-txt-wrap[data-v-3289864d]{white-space:nowrap;text-overflow:ellipsis;width:calc(100% - 1em);position:absolute;left:calc(1em + 4px);overflow:hidden}.link-wrap .link-item .link-txt-wrap .hash-link .link-txt[data-v-3289864d]{word-break:break-all}.images-wrap{margin-top:10px}.post-img{background:#0000001a;border:1px solid #eee;border-radius:3px;margin:0;display:flex;overflow:hidden}.post-img img{width:100%;height:100%}.x1{height:174px}.x2{height:112px}.x3{height:100px}.dark .post-img{border:1px solid #333}@media screen and (width<=821px){.x1{height:100px}.x2{height:70px}.x3{height:50px}}.attach-item[data-v-3440dd80]{margin:10px 0}

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.whisper-wrap .whisper-line[data-v-2a2273dc]{margin-top:10px}.whisper-wrap .whisper-line.send-wrap .n-button[data-v-2a2273dc]{width:100%}.dark .whisper-wrap[data-v-2a2273dc]{background-color:#101014bf}

@ -0,0 +1 @@
.whisper-wrap .whisper-line[data-v-fe2d3f1a]{margin-top:10px}.whisper-wrap .whisper-line.send-wrap .n-button[data-v-fe2d3f1a]{width:100%}.dark .whisper-wrap[data-v-fe2d3f1a]{background-color:#101014bf}

@ -0,0 +1 @@
import{A as e,Bt as t,D as n,O as r,Q as i,S as a,W as o,lt as s,x as c}from"./@css-render-YsNuQTaE.js";import{E as l,H as u,K as d,nt as f,ot as p,st as m}from"./naive-ui-DIGPL69-.js";import{a as h,r as g}from"./sidebar-CIS7wt6Z.js";var _={class:`whisper-wrap`},v={class:`whisper-line`},y={class:`whisper-line send-wrap`},b=g(e({__name:`whisper`,props:{show:{type:Boolean,default:!1},user:{}},emits:[`success`],setup(e,{emit:g}){let b=e,x=s(``),S=s(!1),C=g,w=()=>{C(`success`)},T=()=>{S.value=!0,h.v1.user.post.whisper({user_id:b.user.id,content:x.value}).then(e=>{window.$message.success(`发送成功`),S.value=!1,x.value=``,w()}).catch(e=>{S.value=!1})};return(s,h)=>{let g=l,b=d,C=m,E=p,D=f,O=u;return o(),a(O,{show:e.show,"onUpdate:show":w,class:`whisper-card`,preset:`card`,size:`small`,title:`私信`,"mask-closable":!1,bordered:!1,style:{width:`360px`}},{default:i(()=>[c(`div`,_,[r(C,{"show-icon":!1},{default:i(()=>[h[1]||=n(` 即将发送私信给: `,-1),r(b,{style:{"max-width":`100%`}},{default:i(()=>[r(g,{type:`success`},{default:i(()=>[n(t(e.user.nickname)+`@`+t(e.user.username),1)]),_:1})]),_:1})]),_:1}),c(`div`,v,[r(E,{type:`textarea`,placeholder:`请输入私信内容(请勿发送不和谐内容,否则将会被封号)`,autosize:{minRows:5,maxRows:10},value:x.value,"onUpdate:value":h[0]||=e=>x.value=e,maxlength:`200`,"show-count":``},null,8,[`value`])]),c(`div`,y,[r(D,{strong:``,secondary:``,type:`primary`,loading:S.value,onClick:T},{default:i(()=>[...h[2]||=[n(` 发送 `,-1)]]),_:1},8,[`loading`])])])]),_:1},8,[`show`])}}}),[[`__scopeId`,`data-v-fe2d3f1a`]]),x=class{static followAction(e,t,n,r){return new Promise((i,a)=>{e.success({title:`提示`,content:`确定`+(r?`取消关注 @`:`关注 @`)+n+` 吗?`,positiveText:`确定`,negativeText:`取消`,onPositiveClick:()=>{r?h.v1.user.post.unfollow({user_id:t}).then(e=>{window.$message.success(`操作成功`),i(!1)}).catch(e=>{a(e)}):h.v1.user.post.follow({user_id:t}).then(e=>{window.$message.success(`关注成功`),i(!0)}).catch(e=>{a(e)})}})})}static useWhisper(){let e=s(!1),t=s({id:0,avatar:``,username:``,nickname:``,is_admin:!1,is_friend:!0,is_following:!1,created_on:0,follows:0,followings:0,status:1});return{showWhisper:e,whisperReceiver:t,onSendWhisper:n=>{t.value=n,e.value=!0},whisperSuccess:()=>{e.value=!1}}}};export{b as n,x as t};

@ -0,0 +1 @@
import{A as e,Bt as t,C as n,D as r,J as i,M as a,O as o,Q as s,S as c,W as l,b as u,ht as d,p as f,w as p,x as m}from"./@css-render-YsNuQTaE.js";import{G as h,U as g,W as _,ct as v,it as y,nt as b,s as x}from"./naive-ui-DIGPL69-.js";import{r as S}from"./sidebar-CIS7wt6Z.js";import{_ as C,k as w,o as T,ot as E}from"./@vicons-Bd7TWO2p.js";import{n as D}from"./index-D3WChr5M.js";import{t as O}from"./useUserAction-iK-3kVew.js";var k={class:`user-card`},A={class:`nickname-wrap`},j={class:`username-wrap`},M={class:`user-info`},N={class:`info-item`},P={class:`info-item`},F={class:`item-header-extra`},I=S(e({__name:`user-card`,props:{contact:{},type:{default:`contact`}},emits:[`send-whisper`,`unfollow-success`],setup(e,{emit:S}){let I=g(),L=e,R=u(()=>L.type===`follow`),z=u(()=>L.type===`follow`),B=S,V=e=>()=>a(h,null,{default:()=>a(e)}),H=()=>{let e=L.contact.is_following;O.followAction(I,L.contact.user_id,L.contact.username,L.contact.is_following).then(t=>{L.contact.is_following=t,e&&!t&&B(`unfollow-success`)}).catch(e=>{console.log(e)})},U=u(()=>{let e=[{label:`私信 @`+L.contact.username,key:`whisper`,icon:V(w)}];return z.value&&(L.contact.is_following?e.push({label:`取消关注 @`+L.contact.username,key:`unfollow`,icon:V(C)}):e.push({label:`关注 @`+L.contact.username,key:`follow`,icon:V(E)})),e}),W=e=>{switch(e){case`follow`:case`unfollow`:H();break;case`whisper`:B(`send-whisper`,{id:L.contact.user_id,avatar:L.contact.avatar,username:L.contact.username,nickname:L.contact.nickname,is_admin:!1,is_friend:!0,is_following:!1,created_on:0,follows:0,followings:0,status:1});break;default:break}};return(a,u)=>{let g=y,S=i(`router-link`),C=v,w=b,E=_,O=x;return l(),p(`div`,k,[o(O,{"content-indented":``},{avatar:s(()=>[o(g,{size:54,src:e.contact.avatar},null,8,[`src`])]),header:s(()=>[m(`span`,A,[o(S,{onClick:u[0]||=f(()=>{},[`stop`]),class:`username-link`,to:{name:`user`,query:{s:e.contact.username}}},{default:s(()=>[r(t(e.contact.nickname),1)]),_:1},8,[`to`])]),m(`span`,j,` @`+t(e.contact.username),1),R.value&&e.contact.is_following?(l(),c(C,{key:0,class:`top-tag`,type:`success`,size:`small`,round:``},{default:s(()=>[...u[1]||=[r(` 已关注 `,-1)]]),_:1})):n(``,!0),m(`div`,M,[m(`span`,N,` UID. `+t(e.contact.user_id),1),m(`span`,P,t(d(D)(e.contact.created_on))+`\xA0加入 `,1)])]),"header-extra":s(()=>[m(`div`,F,[o(E,{placement:`bottom-end`,trigger:`click`,size:`small`,options:U.value,onSelect:W},{default:s(()=>[o(w,{quaternary:``,circle:``},{icon:s(()=>[o(d(h),null,{default:s(()=>[o(d(T))]),_:1})]),_:1})]),_:1},8,[`options`])])]),_:1})])}}}),[[`__scopeId`,`data-v-3d50a1bc`]]);export{I as t};

@ -1 +0,0 @@
.user-card[data-v-f1712b5f]{box-sizing:border-box;width:100%;padding:12px 16px}.user-card[data-v-f1712b5f]:hover{background:#f7f9f9}.user-card .nickname-wrap[data-v-f1712b5f],.user-card .username-wrap[data-v-f1712b5f]{font-size:16px;line-height:16px}.user-card .top-tag[data-v-f1712b5f]{transform:scale(.75)}.user-card .user-info .info-item[data-v-f1712b5f]{opacity:.75;margin-right:8px;font-size:14px;line-height:14px}.user-card .item-header-extra[data-v-f1712b5f]{opacity:.75;align-items:center;display:flex}.dark .user-card[data-v-f1712b5f]{background-color:#101014bf}.dark .user-card[data-v-f1712b5f]:hover{background:#18181c}

@ -0,0 +1 @@
.user-card[data-v-3d50a1bc]{box-sizing:border-box;width:100%;padding:12px 16px}.user-card[data-v-3d50a1bc]:hover{background:#f7f9f9}.user-card .nickname-wrap[data-v-3d50a1bc],.user-card .username-wrap[data-v-3d50a1bc]{font-size:16px;line-height:16px}.user-card .top-tag[data-v-3d50a1bc]{transform:scale(.75)}.user-card .user-info .info-item[data-v-3d50a1bc]{opacity:.75;margin-right:8px;font-size:14px;line-height:14px}.user-card .item-header-extra[data-v-3d50a1bc]{opacity:.75;align-items:center;display:flex}.dark .user-card[data-v-3d50a1bc]{background-color:#101014bf}.dark .user-card[data-v-3d50a1bc]:hover{background:#18181c}

@ -0,0 +1 @@
import{a as e,t}from"./rolldown-runtime-Bhmf7a9N.js";import{Ct as n,l as r,s as i,zt as a}from"./@css-render-YsNuQTaE.js";import{n as o,t as s}from"./@vue-BhUWcoL8.js";var c=t((t=>{Object.defineProperty(t,`__esModule`,{value:!0});var c=(o(),e(s)),l=(i(),e(r)),u=(n(),e(a));function d(e){var t=Object.create(null);if(e)for(var n in e)t[n]=e[n];return t.default=e,Object.freeze(t)}var f=d(l),p=Object.create(null);function m(e,t){if(!u.isString(e))if(e.nodeType)e=e.innerHTML;else return u.NOOP;let n=u.genCacheKey(e,t),r=p[n];if(r)return r;if(e[0]===`#`){let t=document.querySelector(e);e=t?t.innerHTML:``}let i=u.extend({hoistStatic:!0,onError:void 0,onWarn:u.NOOP},t);!i.isCustomElement&&typeof customElements<`u`&&(i.isCustomElement=e=>!!customElements.get(e));let{code:a}=c.compile(e,i),o=Function(`Vue`,a)(f);return o._rc=!0,p[n]=o}l.registerRuntimeCompiler(m),t.compile=m,Object.keys(l).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(t,e)&&(t[e]=l[e])})})),l=t(((e,t)=>{t.exports=c()})),u=t(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t<`u`?r(e,l()):typeof define==`function`&&define.amd?define([`exports`,`vue`],r):(n=typeof globalThis<`u`?globalThis:n||self,r(n.V3InfiniteLoading={},n.Vue))})(e,function(e,t){function n(e,t=null){if(!e)return!1;let n=e.getBoundingClientRect(),r=t?t.getBoundingClientRect():{top:0,left:0,bottom:window.innerHeight,right:window.innerWidth};return n.bottom>=r.top&&n.top<=r.bottom&&n.right>=r.left&&n.left<=r.right}async function r(e){return e?(await t.nextTick(),e.value instanceof HTMLElement?e.value:e.value?document.querySelector(e.value):null):null}function i(e){let t=`0px 0px ${e.distance}px 0px`;e.top&&(t=`${e.distance}px 0px 0px 0px`);let n=new IntersectionObserver(t=>{t[0].isIntersecting&&(e.firstload&&e.emit(),e.firstload=!0)},{root:e.parentEl,rootMargin:t});return e.infiniteLoading.value&&n.observe(e.infiniteLoading.value),n}async function a(e,n){if(await t.nextTick(),!e.top)return;let r=e.parentEl||document.documentElement;r.scrollTop=r.scrollHeight-n}let o=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},s={},c=e=>(t.pushScopeId(`data-v-d3e37633`),e=e(),t.popScopeId(),e),l={class:`container`},u=[c(()=>t.createElementVNode(`div`,{class:`spinner`},null,-1))];function d(e,n){return t.openBlock(),t.createElementBlock(`div`,l,u)}let f=o(s,[[`render`,d],[`__scopeId`,`data-v-d3e37633`]]),p={class:`state-error`};e.default=o(t.defineComponent({__name:`InfiniteLoading`,props:{top:{type:Boolean,default:!1},target:{},distance:{default:0},identifier:{},firstload:{type:Boolean,default:!0},slots:{}},emits:[`infinite`],setup(e,{emit:o}){let s=e,c=null,l=0,u=t.ref(null),d=t.ref(``),{top:m,firstload:h,distance:g}=s,{identifier:_,target:v}=t.toRefs(s),y={infiniteLoading:u,top:m,firstload:h,distance:g,parentEl:null,emit(){l=(y.parentEl||document.documentElement).scrollHeight,b.loading(),o(`infinite`,b)}},b={loading(){d.value=`loading`},async loaded(){d.value=`loaded`,await a(y,l),n(u.value,y.parentEl)&&y.emit()},async complete(){d.value=`complete`,await a(y,l),c?.disconnect()},error(){d.value=`error`}};function x(){c?.disconnect(),c=i(y)}return t.watch(_,x),t.onMounted(async()=>{y.parentEl=await r(v),x()}),t.onUnmounted(()=>c?.disconnect()),(e,n)=>(t.openBlock(),t.createElementBlock(`div`,{ref_key:`infiniteLoading`,ref:u,class:`v3-infinite-loading`},[t.withDirectives(t.createElementVNode(`div`,null,[t.renderSlot(e.$slots,`spinner`,{},()=>[t.createVNode(f)],!0)],512),[[t.vShow,d.value==`loading`]]),d.value==`complete`?t.renderSlot(e.$slots,`complete`,{key:0},()=>[t.createElementVNode(`span`,null,t.toDisplayString(e.slots?.complete||`No more results!`),1)],!0):t.createCommentVNode(``,!0),d.value==`error`?t.renderSlot(e.$slots,`error`,{key:1,retry:y.emit},()=>[t.createElementVNode(`span`,p,[t.createElementVNode(`span`,null,t.toDisplayString(e.slots?.error||`Oops something went wrong!`),1),t.createElementVNode(`button`,{class:`retry`,onClick:n[0]||=(...e)=>y.emit&&y.emit(...e)},`retry`)])],!0):t.createCommentVNode(``,!0)],512))}}),[[`__scopeId`,`data-v-4bdee133`]]),Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}})})}));export{u as t};

@ -0,0 +1 @@
import{B as e,ct as t,lt as n,z as r}from"./@css-render-YsNuQTaE.js";import{ut as i}from"./naive-ui-DIGPL69-.js";var a=0,o=typeof window<`u`&&window.matchMedia!==void 0,s=n(null),c,l;function u(e){e.matches&&(s.value=`dark`)}function d(e){e.matches&&(s.value=`light`)}function f(){c=window.matchMedia(`(prefers-color-scheme: dark)`),l=window.matchMedia(`(prefers-color-scheme: light)`),c.matches?s.value=`dark`:l.matches?s.value=`light`:s.value=null,c.addEventListener?(c.addEventListener(`change`,u),l.addEventListener(`change`,d)):c.addListener&&(c.addListener(u),l.addListener(d))}function p(){`removeEventListener`in c?(c.removeEventListener(`change`,u),l.removeEventListener(`change`,d)):`removeListener`in c&&(c.removeListener(u),l.removeListener(d)),c=void 0,l=void 0}var m=!0;function h(){return o?(a===0&&f(),(m&&=i())&&(r(()=>{a+=1}),e(()=>{--a,a===0&&p()})),t(s)):t(s)}export{h as t};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.whisper-wrap .whisper-line[data-v-c0c4652f]{margin-top:10px}.whisper-wrap .whisper-line.send-wrap .n-button[data-v-c0c4652f]{width:100%}.dark .whisper-wrap[data-v-c0c4652f]{background-color:#101014bf}

@ -0,0 +1 @@
import{A as e,Bt as t,D as n,O as r,Q as i,S as a,W as o,lt as s,x as c}from"./@css-render-YsNuQTaE.js";import{E as l,H as u,K as d,nt as f,ot as p,st as m}from"./naive-ui-DIGPL69-.js";import{a as h,r as g}from"./sidebar-CIS7wt6Z.js";var _={class:`whisper-wrap`},v={class:`whisper-line`},y={class:`whisper-line send-wrap`},b=g(e({__name:`whisper-add-friend`,props:{show:{type:Boolean,default:!1},user:{}},emits:[`success`],setup(e,{emit:g}){let b=e,x=s(``),S=s(!1),C=g,w=()=>{C(`success`)},T=()=>{S.value=!0,h.v1.friend.post.requesting({user_id:b.user.id,greetings:x.value}).then(e=>{window.$message.success(`发送成功`),S.value=!1,x.value=``,w()}).catch(e=>{S.value=!1})};return(s,h)=>{let g=l,b=d,C=m,E=p,D=f,O=u;return o(),a(O,{show:e.show,"onUpdate:show":w,class:`whisper-card`,preset:`card`,size:`small`,title:`申请添加朋友`,"mask-closable":!1,bordered:!1,style:{width:`360px`}},{default:i(()=>[c(`div`,_,[r(C,{"show-icon":!1},{default:i(()=>[h[1]||=n(` 发送添加朋友申请给: `,-1),r(b,{style:{"max-width":`100%`}},{default:i(()=>[r(g,{type:`success`},{default:i(()=>[n(t(e.user.nickname)+`@`+t(e.user.username),1)]),_:1})]),_:1})]),_:1}),c(`div`,v,[r(E,{type:`textarea`,placeholder:`请输入真挚的问候语`,autosize:{minRows:5,maxRows:10},value:x.value,"onUpdate:value":h[0]||=e=>x.value=e,maxlength:`120`,"show-count":``},null,8,[`value`])]),c(`div`,y,[r(D,{strong:``,secondary:``,type:`primary`,loading:S.value,onClick:T},{default:i(()=>[...h[2]||=[n(` 发送 `,-1)]]),_:1},8,[`loading`])])])]),_:1},8,[`show`])}}}),[[`__scopeId`,`data-v-c0c4652f`]]);export{b as t};

@ -1 +0,0 @@
.whisper-wrap .whisper-line[data-v-9dc7c1f1]{margin-top:10px}.whisper-wrap .whisper-line.send-wrap .n-button[data-v-9dc7c1f1]{width:100%}.dark .whisper-wrap[data-v-9dc7c1f1]{background-color:#101014bf}

@ -8,29 +8,25 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0" />
<link rel="manifest" href="/manifest.json" />
<title></title>
<script type="module" crossorigin src="/assets/index-MT_Q5xjN.js"></script>
<script type="module" crossorigin src="/assets/index-D3WChr5M.js"></script>
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Bhmf7a9N.js">
<link rel="modulepreload" crossorigin href="/assets/@css-render-wY4Tj5P_.js">
<link rel="modulepreload" crossorigin href="/assets/@vicons-BO69EUcN.js">
<link rel="modulepreload" crossorigin href="/assets/axios-DfcA82ON.js">
<link rel="modulepreload" crossorigin href="/assets/@css-render-YsNuQTaE.js">
<link rel="modulepreload" crossorigin href="/assets/@vicons-Bd7TWO2p.js">
<link rel="modulepreload" crossorigin href="/assets/axios-DKxZWLrQ.js">
<link rel="modulepreload" crossorigin href="/assets/@emotion-CU1dD7u8.js">
<link rel="modulepreload" crossorigin href="/assets/@juggle-BrKhuOcS.js">
<link rel="modulepreload" crossorigin href="/assets/async-validator-CMpIue6_.js">
<link rel="modulepreload" crossorigin href="/assets/css-render-CfBkj-3z.js">
<link rel="modulepreload" crossorigin href="/assets/date-fns-HSvC9ggH.js">
<link rel="modulepreload" crossorigin href="/assets/evtd-BSFY9q6N.js">
<link rel="modulepreload" crossorigin href="/assets/lodash-es-BMBcz_ne.js">
<link rel="modulepreload" crossorigin href="/assets/naive-ui-D44ht_T-.js">
<link rel="modulepreload" crossorigin href="/assets/pinia-GoyZDj3l.js">
<link rel="modulepreload" crossorigin href="/assets/vue-router-B__tG800.js">
<link rel="modulepreload" crossorigin href="/assets/sidebar-IrbbBqwJ.js">
<link rel="modulepreload" crossorigin href="/assets/auth-CMmmYXbQ.js">
<link rel="modulepreload" crossorigin href="/assets/post-oF0itKtw.js">
<link rel="modulepreload" crossorigin href="/assets/site-Djkx07Nf.js">
<link rel="modulepreload" crossorigin href="/assets/moment-Bm1RY_CN.js">
<link rel="modulepreload" crossorigin href="/assets/formatTime-CsGwQTZC.js">
<link rel="modulepreload" crossorigin href="/assets/lodash-es-BfZ3RYx_.js">
<link rel="modulepreload" crossorigin href="/assets/naive-ui-DIGPL69-.js">
<link rel="modulepreload" crossorigin href="/assets/pinia-TbaIYBWH.js">
<link rel="modulepreload" crossorigin href="/assets/vue-router-Dw9lfhBK.js">
<link rel="modulepreload" crossorigin href="/assets/sidebar-CIS7wt6Z.js">
<link rel="modulepreload" crossorigin href="/assets/moment-D_9q9veS.js">
<link rel="stylesheet" crossorigin href="/assets/sidebar-CwCVJc7v.css">
<link rel="stylesheet" crossorigin href="/assets/index-D47VUixF.css">
<link rel="stylesheet" crossorigin href="/assets/index-BzlT5Ktq.css">
<link rel="stylesheet" crossorigin href="/assets/vfonts-Bnl8eXTc.css">
</head>

@ -57,15 +57,16 @@ const { theme, desktopModelShow } = storeToRefs(storeMain);
const iTheme = computed(() => (theme.value === 'dark' ? darkTheme : null));
function loadSiteProfile() {
storeProfile.loadDefaultSiteProfile();
if (import.meta.env.VITE_USE_WEB_PROFILE.toLowerCase() === 'true') {
getSiteProfile()
.then((res) => {
storeProfile.updateSiteProfile(res);
}).catch((err) => {
console.log(err);
});
}
storeProfile.loadDefaultSiteProfile();
if (import.meta.env.VITE_USE_WEB_PROFILE.toLowerCase() === 'true') {
getSiteProfile()
.then((res) => {
storeProfile.updateSiteProfile(res);
})
.catch((err) => {
console.log(err);
});
}
}
onMounted(() => {

@ -7,24 +7,24 @@ import { request } from '@/utils/request';
/** 用户信息 */
export const userInfo = (
token: NetParams.AuthUserInfo = '',
token: NetParams.AuthUserInfo = '',
): Promise<NetReq.AuthUserInfo> => {
return request({
method: 'get',
url: '/v1/user/info',
headers: {
Authorization: `Bearer ${token}`,
},
});
return request({
method: 'get',
url: '/v1/user/info',
headers: {
Authorization: `Bearer ${token}`,
},
});
};
/** 修改用户密码,该接口暂时未使用 */
export const updateUserPassword = (
data: NetParams.AuthUpdateUserPassword,
data: NetParams.AuthUpdateUserPassword,
): Promise<NetReq.AuthUpdateUserPassword> => {
return request({
method: 'post',
url: '/v1/api/user/password',
data,
});
return request({
method: 'post',
url: '/v1/api/user/password',
data,
});
};

@ -7,8 +7,8 @@ import { request } from '@/utils/request';
/** 获取站点概要信息 */
export const getSiteProfile = (): Promise<NetReq.SiteProfile> => {
return request({
method: 'get',
url: '/v1/site/profile',
});
return request({
method: 'get',
url: '/v1/site/profile',
});
};

@ -216,10 +216,11 @@ const handleLogin = (e: Event) => {
if (!errors) {
loading.value = true;
Api.v1.auth.post.login({
username: loginForm.username,
password: loginForm.password,
})
Api.v1.auth.post
.login({
username: loginForm.username,
password: loginForm.password,
})
.then((res) => {
const token = res?.token || '';
// 写入用户信息
@ -252,10 +253,11 @@ const handleRegister = (e: Event) => {
if (!errors) {
loading.value = true;
Api.v1.auth.post.register({
username: registerForm.username,
password: registerForm.password,
})
Api.v1.auth.post
.register({
username: registerForm.username,
password: registerForm.password,
})
.then((res) => {
return Api.v1.auth.post.login({
username: registerForm.username,

@ -218,9 +218,10 @@ const uploadToken = computed(() => {
});
// 加载at用户列表
const loadSuggestionUsers = debounce((k) => {
Api.v1.suggest.get.users({
k,
})
Api.v1.suggest.get
.users({
k,
})
.then((res) => {
let options: MentionOption[] = [];
res.suggest.map((i) => {

@ -361,9 +361,10 @@ const switchEye = () => {
// 加载at用户列表
const loadSuggestionUsers = debounce((k) => {
Api.v1.suggest.get.users({
k,
})
Api.v1.suggest.get
.users({
k,
})
.then((res) => {
let options: MentionOption[] = [];
res.suggest.map((i) => {
@ -382,9 +383,10 @@ const loadSuggestionUsers = debounce((k) => {
// 加载推荐tag列表
const loadSuggestionTags = debounce((k) => {
Api.v1.suggest.get.tags({
k,
})
Api.v1.suggest.get
.tags({
k,
})
.then((res) => {
let options: MentionOption[] = [];
res.suggest.map((i) => {

@ -18,20 +18,23 @@
<script setup lang="ts">
import InfiniteLoading from 'v3-infinite-loading';
withDefaults(defineProps<{
withDefaults(
defineProps<{
totalPage: number;
noMore: boolean;
completeText?: string;
}>(), {
}>(),
{
completeText: '',
});
},
);
const emit = defineEmits<{
(e: 'load-more'): void;
(e: 'load-more'): void;
}>();
const handleInfinite = () => {
emit('load-more');
emit('load-more');
};
</script>

@ -137,8 +137,7 @@ import { storeToRefs } from 'pinia';
import { Api } from '@/utils/request';
import UserAction from '@/composables/useUserAction';
const defaultavatar =
'https://paopao-demo.vercel.app/avatar/default/admin.png';
const defaultavatar = 'https://paopao-demo.vercel.app/avatar/default/admin.png';
const router = useRouter();
@ -165,8 +164,7 @@ const renderIcon = (icon: Component) => {
const actionOpts = computed(() => {
let user =
props.message.type == 4 &&
props.message.sender_user_id == userInfo.value.id
props.message.type == 4 && props.message.sender_user_id == userInfo.value.id
? props.message.receiver_user
: props.message.sender_user;
let options: DropdownOption[] = [
@ -205,14 +203,14 @@ const onHandleFollowAction = (message: Item.MessageProps) => {
? message.receiver_user
: message.sender_user;
UserAction.followAction(dialog, user.id, user.username, user.is_following)
.then(_action => {
.then((_action) => {
user.is_following = _action;
// TODO: 这里暴力处理简单重新加载更好的做法是遍历所有message如果是对应user就更新到新状态
setTimeout(() => {
emit('reload');
}, 50);
})
.catch(err => {
.catch((err) => {
console.log(err);
});
};
@ -254,8 +252,7 @@ const isWhisperReceiver = computed(() => {
const isWhisperSender = computed(() => {
return (
props.message.type == 4 &&
props.message.sender_user_id == userInfo.value.id
props.message.type == 4 && props.message.sender_user_id == userInfo.value.id
);
});
@ -277,9 +274,10 @@ const viewDetail = (message: Item.MessageProps) => {
const agreeAddFriend = (message: Item.MessageProps) => {
handleReadMessage(message);
Api.v1.friend.post.add({
user_id: message.sender_user_id,
})
Api.v1.friend.post
.add({
user_id: message.sender_user_id,
})
.then((res) => {
message.reply_id = 2;
window.$message.success('');
@ -291,9 +289,10 @@ const agreeAddFriend = (message: Item.MessageProps) => {
const rejectAddFriend = (message: Item.MessageProps) => {
handleReadMessage(message);
Api.v1.friend.post.reject({
user_id: message.sender_user_id,
})
Api.v1.friend.post
.reject({
user_id: message.sender_user_id,
})
.then((res) => {
message.reply_id = 3;
window.$message.success('');
@ -308,9 +307,10 @@ const handleReadMessage = (message: Item.MessageProps) => {
return;
}
if (message.is_read === 0) {
Api.v1.user.message.post.read({
id: message.id,
})
Api.v1.user.message.post
.read({
id: message.id,
})
.then((_res) => {
message.is_read = 1;
})

@ -71,7 +71,8 @@ const download = (attachment: Item.PostItemProps) => {
),
]);
Api.v1.attachment.get.precheck({
Api.v1.attachment.get
.precheck({
id: attachmentID.value,
})
.then((res) => {
@ -88,9 +89,10 @@ const download = (attachment: Item.PostItemProps) => {
}
};
const execDownloadAction = () => {
Api.v1.attachment.get._self({
id: attachmentID.value,
})
Api.v1.attachment.get
._self({
id: attachmentID.value,
})
.then((res) => {
window.open(res.signed_url.replace('http://', 'https://'), '_blank');
})

@ -328,10 +328,7 @@ const renderIcon = (icon: Component) => {
const adminOptions = computed(() => {
let options: DropdownOption[] = [];
if (
!userInfo.value.is_admin &&
userInfo.value.id != props.post.user.id
) {
if (!userInfo.value.is_admin && userInfo.value.id != props.post.user.id) {
options.push({
label: ' @' + props.post.user.username,
key: 'whisper',
@ -453,10 +450,14 @@ const adminOptions = computed(() => {
});
const onHandleFollowAction = (post: Item.PostProps) => {
UserAction.followAction(dialog, post.user.id, post.user.username, post.user.is_following)
.then(_action => {
post.user.is_following = _action;
})
UserAction.followAction(
dialog,
post.user.id,
post.user.username,
post.user.is_following,
).then((_action) => {
post.user.is_following = _action;
});
};
const goPostDetail = (id: number) => {

@ -176,17 +176,20 @@ const { profile } = storeToRefs(storeProfile);
const dialog = useDialog();
const inFoldStyle = ref<boolean>(true);
const props = withDefaults(defineProps<{
const props = withDefaults(
defineProps<{
post: Item.PostProps;
isOwner: boolean;
addFriendAction?: boolean;
addFollowAction?: boolean;
isMobile?: boolean;
}>(), {
addFollowAction: false,
addFriendAction: false,
}>(),
{
addFollowAction: false,
addFriendAction: false,
isMobile: false,
});
},
);
const emit = defineEmits<{
(e: 'send-whisper', user: Item.UserInfo): void;
@ -275,14 +278,18 @@ const handleTweetAction = async (
break;
case 'follow':
case 'unfollow':
UserAction.followAction(dialog, props.post.user.id, props.post.user.username, props.post.user.is_following)
.then(_action => {
emit('post-follow-action', props.post.user.id, _action);
})
emit('handle-follow-action', props.post);
UserAction.followAction(
dialog,
props.post.user.id,
props.post.user.username,
props.post.user.is_following,
).then((_action) => {
emit('post-follow-action', props.post.user.id, _action);
});
emit('handle-follow-action', props.post);
break;
default:
break;
break;
}
};

@ -122,7 +122,8 @@ const rightHotTopicMaxSize = Number(
);
const loadSiteInfo = () => {
Api.v1.admin.get.site.status()
Api.v1.admin.get.site
.status()
.then((res) => {
registerUserCount.value = res.register_user_count;
onlineUserCount.value = res.online_user_count;

@ -96,21 +96,14 @@ const enableAnnoucement =
watch(route, () => {
selectedPath.value = route.name;
});
watch(() => [unreadMsgCount, userInfo, profile], () => {
hasUnreadMsg.value = unreadMsgCount.value > 0;
if (userInfo.value.id > 0) {
if (!msgLoop.value) {
Api.v1.user.get.msgcount.unread({})
.then((res) => {
hasUnreadMsg.value = res.count > 0;
storeMain.updateUnreadMsgCount(res.count);
})
.catch((err) => {
console.log(err);
});
msgLoop.value = setInterval(() => {
Api.v1.user.get.msgcount.unread({})
watch(
() => [unreadMsgCount, userInfo, profile],
() => {
hasUnreadMsg.value = unreadMsgCount.value > 0;
if (userInfo.value.id > 0) {
if (!msgLoop.value) {
Api.v1.user.get.msgcount
.unread({})
.then((res) => {
hasUnreadMsg.value = res.count > 0;
storeMain.updateUnreadMsgCount(res.count);
@ -118,14 +111,26 @@ watch(() => [unreadMsgCount, userInfo, profile], () => {
.catch((err) => {
console.log(err);
});
}, profile.value.defaultMsgLoopInterval);
}
} else {
if (msgLoop.value) {
clearInterval(msgLoop.value);
msgLoop.value = setInterval(() => {
Api.v1.user.get.msgcount
.unread({})
.then((res) => {
hasUnreadMsg.value = res.count > 0;
storeMain.updateUnreadMsgCount(res.count);
})
.catch((err) => {
console.log(err);
});
}, profile.value.defaultMsgLoopInterval);
}
} else {
if (msgLoop.value) {
clearInterval(msgLoop.value);
}
}
}
});
},
);
onMounted(() => {
window.onresize = () => {
storeMain.triggerCollapsedLeft(document.body.clientWidth <= 821);

@ -94,14 +94,19 @@ const renderIcon = (icon: Component) => {
const handleFollowUser = () => {
const wasFollowing = props.contact.is_following;
UserAction.followAction(dialog, props.contact.user_id, props.contact.username, props.contact.is_following)
.then(_action => {
UserAction.followAction(
dialog,
props.contact.user_id,
props.contact.username,
props.contact.is_following,
)
.then((_action) => {
props.contact.is_following = _action;
if (wasFollowing && !_action) {
emit('unfollow-success');
}
})
.catch(err => {
.catch((err) => {
console.log(err);
});
};

@ -73,10 +73,11 @@ const closeModal = () => {
};
const sendWhisper = () => {
loading.value = true;
Api.v1.friend.post.requesting({
user_id: props.user.id,
greetings: content.value,
})
Api.v1.friend.post
.requesting({
user_id: props.user.id,
greetings: content.value,
})
.then((res: any) => {
window.$message.success('');
loading.value = false;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save