添加字段

This commit is contained in:
2026-06-15 12:01:43 +08:00
parent 4342d57dd1
commit 1cdcbc9abe
9 changed files with 60 additions and 45 deletions

View File

@ -39,8 +39,8 @@ importers:
specifier: ^1.11.20
version: 1.11.20
element-plus:
specifier: ^2.14.0
version: 2.14.1(vue@3.5.29(typescript@5.9.3))
specifier: 2.14.0
version: 2.14.0(vue@3.5.29(typescript@5.9.3))
face-api.js:
specifier: ^0.22.2
version: 0.22.2
@ -1567,8 +1567,8 @@ packages:
electron-to-chromium@1.5.302:
resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==}
element-plus@2.14.1:
resolution: {integrity: sha512-UFnm1+BckNi+azkKJ7L32q1uXs9ekr99Z9pWTQPeDR05jqEWUwQq51ro4kZMVrANbjknX3Z7ukCZwTi2T6Tr9A==}
element-plus@2.14.0:
resolution: {integrity: sha512-POgH+TtoreaEKWqYYAVQyE6i8rQMEFqAEublyF29dBA5yASWPLKY6EzfeqBTr2Uv26mPss4vSrMrNPyaK7LX5w==}
peerDependencies:
vue: ^3.3.7
@ -4111,7 +4111,7 @@ snapshots:
electron-to-chromium@1.5.302: {}
element-plus@2.14.1(vue@3.5.29(typescript@5.9.3)):
element-plus@2.14.0(vue@3.5.29(typescript@5.9.3)):
dependencies:
'@ctrl/tinycolor': 4.2.0
'@element-plus/icons-vue': 2.3.2(vue@3.5.29(typescript@5.9.3))

View File

@ -74,7 +74,7 @@ const handleResize = () => {
if (screenWidth.value < COLLAPSE_BREAKPOINT) {
sidebarCollapsed.value = true
}else {
sidebarCollapsed.value = false
// sidebarCollapsed.value = false
}
}

View File

@ -56,7 +56,8 @@
<div class="section-title">选择支付方式</div>
<div class="method-list">
<div v-for="method in paymentMethods" :key="method.code" class="method-item"
:class="{ active: selectedMethod === method.code }" @click="handleSelectMethod(method.code)">
:class="{ active: selectedMethod === method.code }"
@click="handleSelectMethod(method.code)">
<div class="method-icon">
<img :src="method.icon" :alt="method.name" />
</div>
@ -135,7 +136,9 @@
<el-input v-model="rechangeForm.address" readonly size="large" class="wallet-address-input">
<template #append>
<el-button @click="handleCopyAddress" class="copy-btn">
<el-icon><DocumentCopy /></el-icon>
<el-icon>
<DocumentCopy />
</el-icon>
<span>复制</span>
</el-button>
</template>
@ -143,13 +146,15 @@
</div>
<div class="wallet-type">
<span class="type-label">钱包类型:</span>
<span class="type-value">{{ rechangeForm.channelCode === 'TRC' ? 'USDT-TRC20' : 'USDT-ERC20' }}</span>
<span class="type-value">{{ rechangeForm.channelCode === 'TRC' ? 'USDT-TRC20' : 'USDT-ERC20'
}}</span>
</div>
</div>
</div>
<!-- 充值金额 -->
<el-form-item label="充值金额" size="large" prop="depositAmount">
<el-input v-model="rechangeForm.depositAmount" placeholder="请输入充值金额生成二维码和钱包地址" size="large" @input="handleAmountInput">
<el-input v-model="rechangeForm.depositAmount" placeholder="请输入充值金额生成二维码和钱包地址" size="large"
@input="handleAmountInput">
<template #suffix>
<span class="currency-suffix">USDT</span>
</template>
@ -219,7 +224,8 @@
<!-- 充值金额 -->
<el-form-item label="充值金额" prop="depositAmount">
<el-input v-model="rechangeForm.depositAmount" placeholder="请输入充值金额" size="large" @input="handleAmountInput">
<el-input v-model="rechangeForm.depositAmount" placeholder="请输入充值金额" size="large"
@input="handleAmountInput">
<template #suffix>
<span class="currency-suffix">{{ rechangeForm.currencySymbol }}</span>
</template>
@ -228,8 +234,8 @@
<!-- 上传凭证 -->
<el-form-item label="上传凭证" prop="voucherUrl">
<el-upload class="voucher-uploader" action="" :show-file-list="false"
:http-request="handleUpload" :before-upload="beforeAvatarUpload" :loading="uploadLoading">
<el-upload class="voucher-uploader" action="" :show-file-list="false" :http-request="handleUpload"
:before-upload="beforeAvatarUpload" :loading="uploadLoading">
<img v-if="voucherUrl" :src="voucherUrl" class="voucher-image" />
<div v-else class="upload-placeholder">
<el-icon class="upload-icon">
@ -458,7 +464,13 @@ const fetchChannelList = async () => {
try {
const res = await getRechargeChannelList() as ChannelRow[]
stopLoading()
channelList.value = res || []
channelList.value = (res || []).map((item) => {
return {
...item,
symbol: item.currency.symbol
}
})
console.log('channelList.value:', channelList.value);
} catch (error) {
stopLoading()
console.error('获取充值渠道列表失败', error)

View File

@ -2,7 +2,7 @@
export const rechangeTableColumns = [
{ prop: 'name', label: '渠道名称', align: 'center' as const },
{
prop: 'currency.symbol',
prop: 'symbol',
label: '支持货币',
align: 'center' as const
},

View File

@ -1,7 +1,7 @@
<template>
<div class="transfer table_form-container">
<div class="title">转账</div>
<el-card class="transfer-card">
<div class="transfer-card">
<div class="transfer-item">
1.佣金钱包转出时,需要管理员审核通过后才能转账成功其余内部转账操作无需通过管理员审核如发现对应账号没有收到转账资金请于客服人员联系
</div>
@ -14,7 +14,7 @@
<div class="transfer-item">
4.第三方转账只支持钱包之间转账且会转到对方主钱包(佣金钱包不允许转入)需要管理员审核通过后才能转账成功
</div>
</el-card>
</div>
<div class="transfer-type">
<div class="type-title">转账类型</div>
<div class="tab">
@ -452,19 +452,16 @@ const handleSubmit = async () => {
<style scoped lang="scss">
.transfer {
height: 100%;
overflow-y: scroll;
.title {
margin-bottom: 10px;
font-size: 38px;
font-weight: 900;
}
.transfer-card {
background: rgb(160, 207, 255, 0.5);
margin-bottom: 10px;
:deep(.el-card__body) {
padding: 10px 20px;
}
.transfer-item {
line-height: 35px;

View File

@ -6,7 +6,7 @@ export const internalFormItem = [
// 转出账号
{ prop: 'transferOutAccount', label: '转出账号', type: 'select' as const, placeholder: '请选择转出账号', width: '150px', labelPosition: 'top' as const },
// 转入账号
{ prop: 'transferInAccount', label: '转入账号', type: 'select' as const, placeholder: '请选择转入账号', width: '150px', labelPosition: 'top' as const },
{ prop: 'transferInAccount', label: '转入账号', type: 'input' as const, placeholder: '请输入转入账号', width: '150px', labelPosition: 'top' as const },
// 转账金额
{ prop: 'transferAmount', label: '转账金额', type: 'input' as const, placeholder: '请输入转账金额', width: '150px', labelPosition: 'top' as const },
// 备注

View File

@ -15,11 +15,11 @@
>
<!-- 操作列驳回/通过按钮 -->
<template #action="{ row }">
<el-button type="success" text size="small" @click="handleApprove(row)" v-auth="'user_reviewRechargeOrder'">
<el-button type="success" text size="small" @click="handleApprove(row)" v-auth="'withdraw_withdrawReviewOrder'">
通过
</el-button>
<span style="color: #dcdfe6; margin: 0 2px;" v-auth="'user_reviewRechargeOrder'">|</span>
<el-button type="danger" text size="small" @click="handleReject(row)" v-auth="'user_reviewRechargeOrder'">
<span style="color: #dcdfe6; margin: 0 2px;" v-auth="'withdraw_withdrawReviewOrder'">|</span>
<el-button type="danger" text size="small" @click="handleReject(row)" v-auth="'withdraw_withdrawReviewOrder'">
驳回
</el-button>
</template>

View File

@ -5,48 +5,52 @@ export const search = [
label: '账号名称',
type: 'input' as const,
placeholder: '请输入账号名称',
width: '200px',
width: '220px',
},
// 开始时间
{
prop: 'startTime',
label: '注册开始时间',
placeholder: '请选择注册开始时间',
type: 'date' as const,
dateType: 'date' as const, // 时间范围选择器
valueFormat: 'YYYY-MM-DD',
width: '240px',
width: '280px',
},
// 结束时间
{
prop: 'endTime',
label: '注册结束时间',
placeholder: '请选择注册结束时间',
type: 'date' as const,
dateType: 'date' as const, // 时间范围选择器
valueFormat: 'YYYY-MM-DD',
width: '240px',
width: '280px',
},
]
export const tableColumns = [
// 账号名称
{ label: '账号名称', prop: 'accountName' },
{ label: '账号名称', prop: 'accountName' , width: '160' },
{ label: '邮箱', prop: 'email', align: 'center' as const, width: '160px' },
{ label: '手机号', prop: 'mobile', align: 'center' as const, width: '180' },
// 账号id
{ prop: 'userId', label: '账号id' },
{ prop: 'userId', label: '账号id', width: '220' },
// 状态
{ prop: 'status', label: '状态' },
// 账号角色
{ prop: 'role', label: '账号角色' },
{ prop: 'role', label: '账号角色' , width: '100' },
// 账号数量
{ prop: 'accountQty', label: '账号数量' },
{ prop: 'accountQty', label: '账号数量' , width: '120' },
{ prop: 'amount', label: '资金', align: 'center' as const, isNumber: true },
// 点差分配比例
{ prop: 'marginRatio', label: '点差分配比例', slotName: 'marginRatio' },
{ prop: 'marginRatio', label: '点差分配比例', slotName: 'marginRatio' , width: '140' },
// 手续费分成比例
{ prop: 'commissionRatio', label: '手续费分成比例', slotName: 'commissionRatio' },
{ prop: 'commissionRatio', label: '手续费分成比例', slotName: 'commissionRatio' , width: '140' },
// 注册时间
{ prop: 'createTime', label: '注册时间', sortable: true },
{ prop: 'createTime', label: '注册时间', sortable: false, width: '240' },
// 操作
{ label: '操作', slotName: 'action', width: '150px'}
{ label: '操作', slotName: 'action', width: '150px', fixed: 'right' as const}
]
// 点差表格配置

View File

@ -51,12 +51,14 @@ export const clientSearch = [
//定义客户table列配置
export const clientTableColumns = [
{ prop: 'id', label: 'ID', align: 'center' as const },
{ prop: 'username', label: '用户名', align: 'center' as const },
{ prop: 'createdTime', label: '注册时间', align: 'center' as const },
{ prop: 'agentUsername', label: '所属代理', align: 'center' as const },
{ label: '邮箱', prop: 'email', align: 'center' as const, width: '160px' },
{ label: '手机号', prop: 'mobile', align: 'center' as const, width: '180' },
{ prop: 'username', label: '用户名', align: 'center' as const , width: '220' },
{ prop: 'createdTime', label: '注册时间', align: 'center' as const, width: '220' },
{ prop: 'agentUsername', label: '所属代理', align: 'center' as const , width: '160' },
{ prop: 'amount', label: '资金', align: 'center' as const, isNumber: true },
{ label: '状态', slotName: 'status', align: 'center' as const },
{ label: '操作', slotName: 'action', align: 'center' as const },
{ label: '操作', slotName: 'action', align: 'center' as const , width: '220', fixed: 'right' as const },
]
//定义添加客户form配置