Refactor moderation tab using Vue SFC (#1084)

* Refactor moderation tab

* fix
This commit is contained in:
pa
2025-01-18 20:29:53 +09:00
committed by GitHub
parent 742b3fe702
commit ca9fde1ec7
4 changed files with 268 additions and 104 deletions
-30
View File
@@ -1,30 +0,0 @@
mixin moderationTab()
.x-container(v-if="$refs.menu && $refs.menu.activeIndex === 'moderation'")
data-tables(v-bind="playerModerationTable" ref="playerModerationTableRef" v-loading="API.isPlayerModerationsLoading")
template(#tool)
div(style="margin:0 0 10px;display:flex;align-items:center")
el-select(v-model="playerModerationTable.filters[0].value" @change="saveTableFilters" multiple clearable style="flex:1" :placeholder="$t('view.moderation.filter_placeholder')")
el-option(v-for="type in ['block', 'unblock', 'mute', 'unmute', 'interactOn', 'interactOff', 'muteChat']" :key="type" :label="$t('view.moderation.filters.' + type)" :value="type")
el-input(v-model="playerModerationTable.filters[1].value" :placeholder="$t('view.moderation.search_placeholder')" style="flex:none;width:150px;margin:0 10px")
el-tooltip(placement="bottom" :content="$t('view.moderation.refresh_tooltip')" :disabled="hideTooltips")
el-button(type="default" :loading="API.isPlayerModerationsLoading" @click="API.refreshPlayerModerations()" icon="el-icon-refresh" circle style="flex:none")
el-table-column(:label="$t('table.moderation.date')" prop="created" sortable="custom" width="120")
template(#default="scope")
el-tooltip(placement="right")
template(#content)
span {{ scope.row.created | formatDate('long') }}
span {{ scope.row.created | formatDate('short') }}
el-table-column(:label="$t('table.moderation.type')" prop="type" width="100")
template(#default="scope")
span(v-text="$t('view.moderation.filters.' + scope.row.type)")
el-table-column(:label="$t('table.moderation.source')" prop="sourceDisplayName")
template(#default="scope")
span.x-link(v-text="scope.row.sourceDisplayName" @click="showUserDialog(scope.row.sourceUserId)")
el-table-column(:label="$t('table.moderation.target')" prop="targetDisplayName")
template(#default="scope")
span.x-link(v-text="scope.row.targetDisplayName" @click="showUserDialog(scope.row.targetUserId)")
el-table-column(:label="$t('table.moderation.action')" width="80" align="right")
template(#default="scope")
template(v-if="scope.row.sourceUserId === API.currentUser.id")
el-button(v-if="shiftHeld" style="color:#f56c6c" type="text" icon="el-icon-close" size="mini" @click="deletePlayerModeration(scope.row)")
el-button(v-else type="text" icon="el-icon-close" size="mini" @click="deletePlayerModerationPrompt(scope.row)")