feat: 迁移游戏商务绑定审核流程和列表

This commit is contained in:
Yvan
2026-11-03 18:26:26 +08:00
parent 43f0ec1b15
commit c0a3692068
31 changed files with 1304 additions and 30 deletions
+11 -3
View File
@@ -1,6 +1,8 @@
<template>
<div>
<div class="kra-search-box">
<el-tabs v-model="activeTab"><el-tab-pane label="商务列表" name="accounts" /><el-tab-pane label="游戏 SDK 绑定" name="bindings" /></el-tabs>
<business-bindings v-if="activeTab === 'bindings'" @changed="load" />
<div v-show="activeTab === 'accounts'" class="kra-search-box">
<el-form :inline="true" :model="query" @submit.prevent="search">
<el-form-item label="商务账号"><el-input v-model="query.userName" clearable placeholder="请输入账号" /></el-form-item>
<el-form-item label="姓名"><el-input v-model="query.realName" clearable placeholder="请输入姓名" /></el-form-item>
@@ -17,7 +19,7 @@
<el-form-item><el-button type="primary" icon="search" native-type="submit">查询</el-button><el-button icon="refresh" @click="reset">重置</el-button></el-form-item>
</el-form>
</div>
<div class="kra-table-box">
<div v-show="activeTab === 'accounts'" class="kra-table-box">
<div class="kra-btn-list">
<el-button v-if="canAdd" type="primary" icon="plus" @click="openCreate">添加子商务</el-button>
</div>
@@ -27,7 +29,7 @@
<el-table-column prop="parentUserName" label="上级商务" min-width="140" />
<el-table-column prop="realName" label="姓名" min-width="100" />
<el-table-column prop="phoneNumber" label="手机号" min-width="130" />
<el-table-column prop="bindCount" label="SDK 商务数" width="120" />
<el-table-column prop="bindCount" label="SDK 商务数" width="120"><template #default="{ row }"><el-button v-if="row.bindCount > 0" link type="primary" @click="showBindings(row)">{{ row.bindCount }}</el-button><span v-else>0</span></template></el-table-column>
<el-table-column prop="promoteCount" label="直属渠道数" width="120">
<template #default="{ row }">
<el-tooltip v-if="row.promoteCount === null" content="当前数据库尚未接入渠道数据,商务资料和绑定数仍可查看。"><span class="text-gray-400">未接入</span></el-tooltip>
@@ -42,6 +44,7 @@
<el-pagination v-model:current-page="query.pageNum" v-model:page-size="query.pageSize" :total="total" :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" @size-change="search" @current-change="load" />
</div>
</div>
<el-drawer v-model="bindingsDrawer" title="已通过的游戏 SDK 绑定" size="85%" destroy-on-close><business-bindings :user-id="bindingUserId" /></el-drawer>
<el-drawer v-model="drawer" :title="editing ? '编辑商务' : '添加子商务'" :size="480" destroy-on-close>
<el-form ref="formRef" :model="form" :rules="rules" label-position="top">
<el-form-item label="商务账号" prop="userName"><el-input v-model="form.userName" maxlength="30" /></el-form-item>
@@ -67,9 +70,14 @@ import { ElMessage } from 'element-plus'
import { useUserStore } from '@/pinia/modules/user'
import { useBtnAuth } from '@/utils/btnAuth'
import { listBusiness, getBusiness, createBusiness, updateBusiness } from '@/api/business'
import BusinessBindings from './components/BusinessBindings.vue'
defineOptions({ name: 'SwBusinessList' })
const user = useUserStore()
const activeTab = ref('accounts')
const bindingsDrawer = ref(false)
const bindingUserId = ref(0)
const showBindings = (row) => { bindingUserId.value = row.userId; bindingsDrawer.value = true }
const buttons = useBtnAuth()
const levels = { 1: '一级商务', 2: '二级商务', 3: '三级商务' }
const statuses = { 0: '正常', 1: '停用', 2: '已驳回', 3: '待审核' }