修改: bug
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m47s

This commit is contained in:
sexygoat
2026-02-27 17:40:02 +08:00
parent f1cb1e53c8
commit 4470a4ef04
17 changed files with 908 additions and 544 deletions

View File

@@ -48,11 +48,20 @@
:marginTop="10"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
@row-contextmenu="handleRowContextMenu"
>
<template #default>
<ElTableColumn v-for="col in columns" :key="col.prop || col.type" v-bind="col" />
</template>
</ArtTable>
<!-- 右键菜单 -->
<ArtMenuRight
ref="contextMenuRef"
:menu-items="contextMenuItems"
:menu-width="120"
@select="handleContextMenuSelect"
/>
</ElCard>
</div>
</ArtTableFullScreen>
@@ -234,6 +243,8 @@
import { useCheckedColumns } from '@/composables/useCheckedColumns'
import { useAuth } from '@/composables/useAuth'
import ArtButtonTable from '@/components/core/forms/ArtButtonTable.vue'
import ArtMenuRight from '@/components/core/others/ArtMenuRight.vue'
import type { MenuItemType } from '@/components/core/others/ArtMenuRight.vue'
import { formatDateTime, formatMoney } from '@/utils/business/format'
import {
CommissionStatusMap,
@@ -252,6 +263,8 @@
const loading = ref(false)
const tableRef = ref()
const summaryList = ref<ShopCommissionSummaryItem[]>([])
const contextMenuRef = ref<InstanceType<typeof ArtMenuRight>>()
const currentRow = ref<ShopCommissionSummaryItem | null>(null)
// 搜索表单
const searchForm = reactive({
@@ -302,8 +315,7 @@
{ label: '冻结中', prop: 'frozen_commission' },
{ label: '提现中', prop: 'withdrawing_commission' },
{ label: '已提现', prop: 'withdrawn_commission' },
{ label: '未提现', prop: 'unwithdraw_commission' },
{ label: '操作', prop: 'operation' }
{ label: '未提现', prop: 'unwithdraw_commission' }
]
// 动态列配置
@@ -376,24 +388,6 @@
label: '未提现',
width: 120,
formatter: (row: ShopCommissionSummaryItem) => formatMoney(row.unwithdraw_commission)
},
{
prop: 'operation',
label: '操作',
width: 120,
fixed: 'right',
formatter: (row: ShopCommissionSummaryItem) => {
const buttons = []
if (hasAuth('agent_commission:detail')) {
buttons.push(
h(ArtButtonTable, {
text: '详情',
onClick: () => showDetail(row)
})
)
}
return h('div', { style: 'display: flex; gap: 8px;' }, buttons)
}
}
])
@@ -567,6 +561,36 @@
withdrawalPagination.page = newCurrentPage
loadWithdrawalRecords()
}
// 右键菜单项配置
const contextMenuItems = computed((): MenuItemType[] => {
const items: MenuItemType[] = []
if (hasAuth('agent_commission:detail')) {
items.push({ key: 'detail', label: '详情' })
}
return items
})
// 处理表格行右键菜单
const handleRowContextMenu = (row: ShopCommissionSummaryItem, column: any, event: MouseEvent) => {
event.preventDefault()
event.stopPropagation()
currentRow.value = row
contextMenuRef.value?.show(event)
}
// 处理右键菜单选择
const handleContextMenuSelect = (item: MenuItemType) => {
if (!currentRow.value) return
switch (item.key) {
case 'detail':
showDetail(currentRow.value)
break
}
}
</script>
<style lang="scss" scoped>