diff --git a/html/src/app.js b/html/src/app.js index ac989cb2..6f4c6702 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -6286,6 +6286,7 @@ speechSynthesis.getVoices(); worldSorting: 'update', avatarSorting: 'update', + avatarReleaseStatus: 'all', treeData: [], memo: '' @@ -6950,6 +6951,20 @@ speechSynthesis.getVoices(); this.setUserDialogAvatars(D.avatars); }; + $app.methods.changeUserDialogAvatarReleaseStatus = function () { + var D = this.userDialog; + this.setUserDialogAvatars(D.avatars); + }; + + $app.computed.userDialogAvatars = function () { + var { avatars, avatarReleaseStatus } = this.userDialog; + if (avatarReleaseStatus === 'public' || + avatarReleaseStatus === 'private') { + return avatars.filter((avatar) => avatar.releaseStatus === avatarReleaseStatus); + } + return avatars; + }; + // App: World Dialog $app.data.worldDialog = { diff --git a/html/src/index.pug b/html/src/index.pug index 8b8a3aff..e7afe105 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -887,16 +887,23 @@ html span.extra(v-if="world.occupants") ({{ world.occupants }}) el-tab-pane(label="Avatars") el-button(type="default" :loading="userDialog.isAvatarsLoading" @click="refreshUserDialogAvatars()" size="mini" icon="el-icon-refresh" circle) - span(style="margin-left:5px") Total {{ userDialog.avatars.length }} + span(style="margin-left:5px") Total {{ userDialogAvatars.length }} el-radio-group(v-model="userDialog.avatarSorting" size="mini" style="margin-left:30px" @change="changeUserDialogAvatarSorting") el-radio(label="name") by name el-radio(label="update") by update + el-radio-group(v-model="userDialog.avatarReleaseStatus" size="mini" style="margin-left:60px") + el-radio(label="all") all + el-radio(label="public") public + el-radio(label="private") private .x-friend-list(v-loading="userDialog.isAvatarsLoading" style="margin-top:10px;min-height:60px") - .x-friend-item(v-for="avatar in userDialog.avatars" :key="avatar.id" @click="showAvatarDialog(avatar.id)") + .x-friend-item(v-for="avatar in userDialogAvatars" :key="avatar.id" @click="showAvatarDialog(avatar.id)") .avatar img(v-lazy="avatar.thumbnailImageUrl") .detail span.name(v-text="avatar.name") + span.extra(v-text="avatar.releaseStatus" v-if="avatar.releaseStatus === 'public'" style="color: #67c23a;") + span.extra(v-text="avatar.releaseStatus" v-else-if="avatar.releaseStatus === 'private'" style="color: #f56c6c;") + span.extra(v-text="avatar.releaseStatus" v-else) el-tab-pane(label="JSON") el-button(type="default" @click="refreshUserDialogTreeData()" size="mini" icon="el-icon-refresh" circle) el-tree(:data="userDialog.treeData" style="margin-top:5px;font-size:12px")