mirror of
https://github.com/TangSengDaoDao/TangSengDaoDaoWeb
synced 2025-06-04 08:08:44 +00:00
74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import { Subscriber } from "wukongimjssdk";
|
|
import { GroupRole } from "../../Service/Const";
|
|
import WKApp from "../../App";
|
|
import { ProviderListener } from "../../Service/Provider";
|
|
import RouteContext from "../../Service/Context";
|
|
import { ChannelSettingRouteData } from "../ChannelSetting/context";
|
|
|
|
|
|
export class SubscribersVM extends ProviderListener {
|
|
context:RouteContext<any>
|
|
routeData:ChannelSettingRouteData
|
|
private _subscribers: Subscriber[] = []
|
|
showNum:number = 20
|
|
|
|
|
|
constructor(context:RouteContext<any>) {
|
|
super()
|
|
this.context = context
|
|
this.routeData = context.routeData()
|
|
}
|
|
|
|
get subscribers():Subscriber[] {
|
|
return this.routeData.subscribers
|
|
}
|
|
|
|
get subscribersTop():Subscriber[] {
|
|
|
|
let showMemberNum = this.shouldShowMemberNum()
|
|
|
|
const subscribers = this.routeData.subscribers
|
|
|
|
if(subscribers && subscribers.length>0) {
|
|
if(subscribers.length<showMemberNum) {
|
|
return subscribers
|
|
}else {
|
|
return subscribers.slice(0,showMemberNum)
|
|
}
|
|
}
|
|
return subscribers
|
|
}
|
|
|
|
shouldShowMemberNum() {
|
|
let showMemberNum = this.showNum
|
|
|
|
if(this.showAdd()) {
|
|
showMemberNum-=1
|
|
}
|
|
if(this.showRemove()) {
|
|
showMemberNum-=1
|
|
}
|
|
return showMemberNum
|
|
}
|
|
|
|
showAdd() {
|
|
return true
|
|
}
|
|
|
|
showRemove() {
|
|
const subscriberOfMe = this.routeData.subscriberOfMe
|
|
let role = GroupRole.normal
|
|
if(subscriberOfMe) {
|
|
role = subscriberOfMe.role
|
|
}
|
|
if(role === GroupRole.owner || role === GroupRole.manager) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
hasMoreSubscribers() {
|
|
let showMemberNum = this.shouldShowMemberNum()
|
|
return this.subscribers.length>showMemberNum
|
|
}
|
|
} |