feat: 迁移渠道画像累计指标和玩家付费分层

This commit is contained in:
Yvan
2026-11-03 23:50:05 +08:00
parent 0de822f121
commit f5b7ce21b9
38 changed files with 1424 additions and 37 deletions
+6
View File
@@ -27,11 +27,13 @@
<el-table-column label="玩家数量" min-width="130"><template #default="{ row }">{{ channelCount(row.playerCount) }}</template></el-table-column>
<el-table-column label="累计充值" min-width="160"><template #default="{ row }">{{ channelMoney(row.totalPayAmount) }}</template></el-table-column>
<el-table-column label="状态" min-width="110"><template #default="{ row }"><el-tag :type="{ 0: 'info', '-1': 'danger', '-2': 'warning' }[row.lockStatus] || 'info'" effect="plain">{{ statuses[row.lockStatus] ?? row.lockStatus ?? '—' }}</el-tag></template></el-table-column>
<el-table-column label="操作" width="90" fixed="right"><template #default="{ row }"><el-button type="primary" link @click="openProfile(row)">画像</el-button></template></el-table-column>
</el-table>
<div class="kra-pagination"><el-pagination v-model:current-page="query.pageNum" v-model:page-size="query.pageSize" :total="total" :page-sizes="[10, 20, 50]" layout="total, sizes, prev, pager, next, jumper" @size-change="search" @current-change="load" /></div>
</div>
<add-channel-drawer v-model="adding" @success="search" />
<channel-game-drawer v-model="gamesOpen" :channel="selected" />
<channel-profile-drawer v-model="profileOpen" :channel="profileChannel" />
</div>
</template>
@@ -44,6 +46,7 @@ import { listChannels } from '@/api/channel'
import { channelCount, channelMoney } from './channel-display'
import AddChannelDrawer from './components/AddChannelDrawer.vue'
import ChannelGameDrawer from './components/ChannelGameDrawer.vue'
import ChannelProfileDrawer from './components/ChannelProfileDrawer.vue'
defineOptions({ name: 'SwChannelList' })
const user = useUserStore()
@@ -61,6 +64,9 @@ const loading = ref(false)
const adding = ref(false)
const gamesOpen = ref(false)
const selected = ref(null)
const profileOpen = ref(false)
const profileChannel = ref(null)
const openProfile = row => { profileChannel.value = row; profileOpen.value = true }
let requestVersion = 0
const load = async () => {
const version = ++requestVersion