From 58768c789597d52a5f42da2aeddb3f16edbf6d59 Mon Sep 17 00:00:00 2001 From: Megghy Date: Tue, 12 Mar 2024 18:55:28 +0800 Subject: [PATCH] allow deduct point --- src/components/manage/PointHistoryCard.vue | 18 +++++---- .../manage/point/PointUserDetailCard.vue | 31 ++++++++------ src/views/manage/point/PointUserManage.vue | 40 +++++++++++-------- .../SimpleSongListTemplate.vue | 2 + 4 files changed, 54 insertions(+), 37 deletions(-) diff --git a/src/components/manage/PointHistoryCard.vue b/src/components/manage/PointHistoryCard.vue index fc45ab3..3448dc0 100644 --- a/src/components/manage/PointHistoryCard.vue +++ b/src/components/manage/PointHistoryCard.vue @@ -41,8 +41,8 @@ const historyColumn: DataTableColumns = [ render: (row: ResponsePointHisrotyModel) => { return h( NText, - { style: { color: row.from === PointFrom.Use ? 'red' : 'green' } }, - () => (row.from === PointFrom.Use ? '' : '+') + row.point, + { style: { color: row.point < 0 ? 'red' : 'green' } }, + () => (row.point < 0 ? '' : '+') + row.point, ) }, }, @@ -58,7 +58,7 @@ const historyColumn: DataTableColumns = [ value: PointFrom.Danmaku, }, { - label: '主播赠予', + label: '主播操作', value: PointFrom.Manual, }, { @@ -72,7 +72,11 @@ const historyColumn: DataTableColumns = [ case PointFrom.Danmaku: return h(NTag, { type: 'info', bordered: false, size: 'small' }, () => '直播间') case PointFrom.Manual: - return h(NTag, { type: 'success', bordered: false, size: 'small' }, () => '主播赠予') + return h( + NTag, + { type: 'success', bordered: false, size: 'small' }, + () => '主播' + (row.point > 0 ? '赠予' : '扣除'), + ) case PointFrom.Use: return h(NTag, { type: 'warning', bordered: false, size: 'small' }, () => '使用') } @@ -90,7 +94,7 @@ const historyColumn: DataTableColumns = [ switch (row.type) { case EventDataTypes.Guard: return h(NFlex, { justify: 'center', align: 'center' }, () => [ - h(NTag, { type: 'info', size: 'small' }, () => '上舰'), + h(NTag, { type: 'error', size: 'small' }, () => '上舰'), row.extra?.msg, ]) case EventDataTypes.Gift: @@ -100,7 +104,7 @@ const historyColumn: DataTableColumns = [ ]) case EventDataTypes.SC: return h(NFlex, { justify: 'center' }, () => [ - h(NTag, { type: 'info', size: 'small', style: { margin: '0' } }, () => 'SC'), + h(NTag, { type: 'warning', size: 'small', style: { margin: '0' } }, () => 'SC'), row.extra?.price, ]) } @@ -111,7 +115,7 @@ const historyColumn: DataTableColumns = [ NButton, { tag: 'a', - href: '/user/' + row.extra.user?.name, + href: '/@' + row.extra.user?.name, target: '_blank', text: true, type: 'info', diff --git a/src/views/manage/point/PointUserDetailCard.vue b/src/views/manage/point/PointUserDetailCard.vue index b6023d5..ffd9df0 100644 --- a/src/views/manage/point/PointUserDetailCard.vue +++ b/src/views/manage/point/PointUserDetailCard.vue @@ -93,8 +93,8 @@ async function getPointHistory() { return [] } async function givePoint() { - if (addPointCount.value <= 0) { - message.error('积分数量必须大于0') + if (addPointCount.value == 0) { + message.error('积分数量不能为 0') return } isLoading.value = true @@ -164,7 +164,7 @@ onMounted(async () => { {{ user.info.userId }} - + {{ user.info.openId }} @@ -176,7 +176,7 @@ onMounted(async () => { @@ -192,17 +192,22 @@ onMounted(async () => { - + - + + + + + + 负数为扣除 + + - 给予 + + {{ addPointCount > 0 ? '给予' : '扣除' }} + diff --git a/src/views/manage/point/PointUserManage.vue b/src/views/manage/point/PointUserManage.vue index e04dcf8..0f36732 100644 --- a/src/views/manage/point/PointUserManage.vue +++ b/src/views/manage/point/PointUserManage.vue @@ -159,8 +159,8 @@ async function refresh() { users.value = await getUsers() } async function givePoint() { - if (addPointCount.value <= 0) { - message.error('积分数量必须大于0') + if (addPointCount.value == 0) { + message.error('积分数量不能为 0') return } if (!addPointTarget.value) { @@ -208,7 +208,7 @@ onMounted(async () => { @@ -238,10 +238,10 @@ onMounted(async () => { - + - - + + 目标用户 @@ -250,20 +250,26 @@ onMounted(async () => { 如果目标用户没在直播间发言过则无法显示用户名, 不过不影响使用 +
+ 因为uid和b站提供的openid不兼容, 未认证用户可能会出现两个记录, 不过在认证完成后会合并成一个 + +
+ + + 积分数量 + + + + + 负数为扣除 - - 积分数量 - - - 给予 + + {{ addPointCount > 0 ? '给予' : '扣除' }} +
diff --git a/src/views/view/songListTemplate/SimpleSongListTemplate.vue b/src/views/view/songListTemplate/SimpleSongListTemplate.vue index 47943f8..f136f8d 100644 --- a/src/views/view/songListTemplate/SimpleSongListTemplate.vue +++ b/src/views/view/songListTemplate/SimpleSongListTemplate.vue @@ -90,6 +90,7 @@ const songs = computed(() => { }) .slice(0, index.value) } + return [] }) const onScroll = throttle((e: Event) => { const container = e.target as HTMLDivElement @@ -121,6 +122,7 @@ function loadMore() {