添加字段
This commit is contained in:
parent
4342d57dd1
commit
1cdcbc9abe
|
|
@ -39,8 +39,8 @@ importers:
|
||||||
specifier: ^1.11.20
|
specifier: ^1.11.20
|
||||||
version: 1.11.20
|
version: 1.11.20
|
||||||
element-plus:
|
element-plus:
|
||||||
specifier: ^2.14.0
|
specifier: 2.14.0
|
||||||
version: 2.14.1(vue@3.5.29(typescript@5.9.3))
|
version: 2.14.0(vue@3.5.29(typescript@5.9.3))
|
||||||
face-api.js:
|
face-api.js:
|
||||||
specifier: ^0.22.2
|
specifier: ^0.22.2
|
||||||
version: 0.22.2
|
version: 0.22.2
|
||||||
|
|
@ -1567,8 +1567,8 @@ packages:
|
||||||
electron-to-chromium@1.5.302:
|
electron-to-chromium@1.5.302:
|
||||||
resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==}
|
resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==}
|
||||||
|
|
||||||
element-plus@2.14.1:
|
element-plus@2.14.0:
|
||||||
resolution: {integrity: sha512-UFnm1+BckNi+azkKJ7L32q1uXs9ekr99Z9pWTQPeDR05jqEWUwQq51ro4kZMVrANbjknX3Z7ukCZwTi2T6Tr9A==}
|
resolution: {integrity: sha512-POgH+TtoreaEKWqYYAVQyE6i8rQMEFqAEublyF29dBA5yASWPLKY6EzfeqBTr2Uv26mPss4vSrMrNPyaK7LX5w==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: ^3.3.7
|
vue: ^3.3.7
|
||||||
|
|
||||||
|
|
@ -4111,7 +4111,7 @@ snapshots:
|
||||||
|
|
||||||
electron-to-chromium@1.5.302: {}
|
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:
|
dependencies:
|
||||||
'@ctrl/tinycolor': 4.2.0
|
'@ctrl/tinycolor': 4.2.0
|
||||||
'@element-plus/icons-vue': 2.3.2(vue@3.5.29(typescript@5.9.3))
|
'@element-plus/icons-vue': 2.3.2(vue@3.5.29(typescript@5.9.3))
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ const handleResize = () => {
|
||||||
if (screenWidth.value < COLLAPSE_BREAKPOINT) {
|
if (screenWidth.value < COLLAPSE_BREAKPOINT) {
|
||||||
sidebarCollapsed.value = true
|
sidebarCollapsed.value = true
|
||||||
}else {
|
}else {
|
||||||
sidebarCollapsed.value = false
|
// sidebarCollapsed.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,8 @@
|
||||||
<div class="section-title">选择支付方式</div>
|
<div class="section-title">选择支付方式</div>
|
||||||
<div class="method-list">
|
<div class="method-list">
|
||||||
<div v-for="method in paymentMethods" :key="method.code" class="method-item"
|
<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">
|
<div class="method-icon">
|
||||||
<img :src="method.icon" :alt="method.name" />
|
<img :src="method.icon" :alt="method.name" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -135,7 +136,9 @@
|
||||||
<el-input v-model="rechangeForm.address" readonly size="large" class="wallet-address-input">
|
<el-input v-model="rechangeForm.address" readonly size="large" class="wallet-address-input">
|
||||||
<template #append>
|
<template #append>
|
||||||
<el-button @click="handleCopyAddress" class="copy-btn">
|
<el-button @click="handleCopyAddress" class="copy-btn">
|
||||||
<el-icon><DocumentCopy /></el-icon>
|
<el-icon>
|
||||||
|
<DocumentCopy />
|
||||||
|
</el-icon>
|
||||||
<span>复制</span>
|
<span>复制</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -143,13 +146,15 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="wallet-type">
|
<div class="wallet-type">
|
||||||
<span class="type-label">钱包类型:</span>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 充值金额 -->
|
<!-- 充值金额 -->
|
||||||
<el-form-item label="充值金额" size="large" prop="depositAmount">
|
<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>
|
<template #suffix>
|
||||||
<span class="currency-suffix">USDT</span>
|
<span class="currency-suffix">USDT</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -219,7 +224,8 @@
|
||||||
|
|
||||||
<!-- 充值金额 -->
|
<!-- 充值金额 -->
|
||||||
<el-form-item label="充值金额" prop="depositAmount">
|
<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>
|
<template #suffix>
|
||||||
<span class="currency-suffix">{{ rechangeForm.currencySymbol }}</span>
|
<span class="currency-suffix">{{ rechangeForm.currencySymbol }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -228,8 +234,8 @@
|
||||||
|
|
||||||
<!-- 上传凭证 -->
|
<!-- 上传凭证 -->
|
||||||
<el-form-item label="上传凭证" prop="voucherUrl">
|
<el-form-item label="上传凭证" prop="voucherUrl">
|
||||||
<el-upload class="voucher-uploader" action="" :show-file-list="false"
|
<el-upload class="voucher-uploader" action="" :show-file-list="false" :http-request="handleUpload"
|
||||||
:http-request="handleUpload" :before-upload="beforeAvatarUpload" :loading="uploadLoading">
|
:before-upload="beforeAvatarUpload" :loading="uploadLoading">
|
||||||
<img v-if="voucherUrl" :src="voucherUrl" class="voucher-image" />
|
<img v-if="voucherUrl" :src="voucherUrl" class="voucher-image" />
|
||||||
<div v-else class="upload-placeholder">
|
<div v-else class="upload-placeholder">
|
||||||
<el-icon class="upload-icon">
|
<el-icon class="upload-icon">
|
||||||
|
|
@ -458,7 +464,13 @@ const fetchChannelList = async () => {
|
||||||
try {
|
try {
|
||||||
const res = await getRechargeChannelList() as ChannelRow[]
|
const res = await getRechargeChannelList() as ChannelRow[]
|
||||||
stopLoading()
|
stopLoading()
|
||||||
channelList.value = res || []
|
channelList.value = (res || []).map((item) => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
symbol: item.currency.symbol
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log('channelList.value:', channelList.value);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
stopLoading()
|
stopLoading()
|
||||||
console.error('获取充值渠道列表失败', error)
|
console.error('获取充值渠道列表失败', error)
|
||||||
|
|
@ -570,7 +582,7 @@ const handleCreateOrder = async () => {
|
||||||
paymentUrls.value = payUrls
|
paymentUrls.value = payUrls
|
||||||
if (isMobileDevice.value) {
|
if (isMobileDevice.value) {
|
||||||
// 移动端:优先跳 safe.paylinktrust.com 域名,没有则跳第一个
|
// 移动端:优先跳 safe.paylinktrust.com 域名,没有则跳第一个
|
||||||
const safeUrl = payUrls.find((url:string)=> url.includes('safe.paylinktrust.com'))
|
const safeUrl = payUrls.find((url: string) => url.includes('safe.paylinktrust.com'))
|
||||||
const payUrl = safeUrl || payUrls[0]
|
const payUrl = safeUrl || payUrls[0]
|
||||||
ElMessage.success('正在跳转支付页面...')
|
ElMessage.success('正在跳转支付页面...')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
@ -630,7 +642,7 @@ const handleUpload = async (options: any) => {
|
||||||
// 生成二维码
|
// 生成二维码
|
||||||
const handleGenerateQrcode = async () => {
|
const handleGenerateQrcode = async () => {
|
||||||
let pay = ERCPay
|
let pay = ERCPay
|
||||||
if(rechangeForm.value.channelCode === 'TRC'){
|
if (rechangeForm.value.channelCode === 'TRC') {
|
||||||
pay = TRCPay
|
pay = TRCPay
|
||||||
}
|
}
|
||||||
const res: any = await pay({
|
const res: any = await pay({
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
export const rechangeTableColumns = [
|
export const rechangeTableColumns = [
|
||||||
{ prop: 'name', label: '渠道名称', align: 'center' as const },
|
{ prop: 'name', label: '渠道名称', align: 'center' as const },
|
||||||
{
|
{
|
||||||
prop: 'currency.symbol',
|
prop: 'symbol',
|
||||||
label: '支持货币',
|
label: '支持货币',
|
||||||
align: 'center' as const
|
align: 'center' as const
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="transfer table_form-container">
|
<div class="transfer table_form-container">
|
||||||
<div class="title">转账</div>
|
<div class="title">转账</div>
|
||||||
<el-card class="transfer-card">
|
<div class="transfer-card">
|
||||||
<div class="transfer-item">
|
<div class="transfer-item">
|
||||||
1.佣金钱包转出时,需要管理员审核通过后才能转账成功。其余内部转账操作无需通过管理员审核,如发现对应账号没有收到转账资金,请于客服人员联系。
|
1.佣金钱包转出时,需要管理员审核通过后才能转账成功。其余内部转账操作无需通过管理员审核,如发现对应账号没有收到转账资金,请于客服人员联系。
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<div class="transfer-item">
|
<div class="transfer-item">
|
||||||
4.第三方转账只支持钱包之间转账,且会转到对方主钱包(佣金钱包不允许转入),需要管理员审核通过后才能转账成功
|
4.第三方转账只支持钱包之间转账,且会转到对方主钱包(佣金钱包不允许转入),需要管理员审核通过后才能转账成功
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</div>
|
||||||
<div class="transfer-type">
|
<div class="transfer-type">
|
||||||
<div class="type-title">转账类型</div>
|
<div class="type-title">转账类型</div>
|
||||||
<div class="tab">
|
<div class="tab">
|
||||||
|
|
@ -452,19 +452,16 @@ const handleSubmit = async () => {
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.transfer {
|
.transfer {
|
||||||
height: 100%;
|
|
||||||
overflow-y: scroll;
|
|
||||||
.title {
|
.title {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
font-size: 38px;
|
||||||
|
font-weight: 900;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transfer-card {
|
.transfer-card {
|
||||||
background: rgb(160, 207, 255, 0.5);
|
background: rgb(160, 207, 255, 0.5);
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
padding: 10px 20px;
|
||||||
:deep(.el-card__body) {
|
|
||||||
padding: 10px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.transfer-item {
|
.transfer-item {
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ export const internalFormItem = [
|
||||||
// 转出账号
|
// 转出账号
|
||||||
{ prop: 'transferOutAccount', label: '转出账号', type: 'select' as const, placeholder: '请选择转出账号', width: '150px', labelPosition: 'top' as const },
|
{ 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 },
|
{ prop: 'transferAmount', label: '转账金额', type: 'input' as const, placeholder: '请输入转账金额', width: '150px', labelPosition: 'top' as const },
|
||||||
// 备注
|
// 备注
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,11 @@
|
||||||
>
|
>
|
||||||
<!-- 操作列:驳回/通过按钮 -->
|
<!-- 操作列:驳回/通过按钮 -->
|
||||||
<template #action="{ row }">
|
<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>
|
</el-button>
|
||||||
<span style="color: #dcdfe6; margin: 0 2px;" v-auth="'user_reviewRechargeOrder'">|</span>
|
<span style="color: #dcdfe6; margin: 0 2px;" v-auth="'withdraw_withdrawReviewOrder'">|</span>
|
||||||
<el-button type="danger" text size="small" @click="handleReject(row)" v-auth="'user_reviewRechargeOrder'">
|
<el-button type="danger" text size="small" @click="handleReject(row)" v-auth="'withdraw_withdrawReviewOrder'">
|
||||||
驳回
|
驳回
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -5,48 +5,52 @@ export const search = [
|
||||||
label: '账号名称',
|
label: '账号名称',
|
||||||
type: 'input' as const,
|
type: 'input' as const,
|
||||||
placeholder: '请输入账号名称',
|
placeholder: '请输入账号名称',
|
||||||
width: '200px',
|
width: '220px',
|
||||||
},
|
},
|
||||||
// 开始时间
|
// 开始时间
|
||||||
{
|
{
|
||||||
prop: 'startTime',
|
prop: 'startTime',
|
||||||
label: '注册开始时间',
|
label: '注册开始时间',
|
||||||
|
placeholder: '请选择注册开始时间',
|
||||||
type: 'date' as const,
|
type: 'date' as const,
|
||||||
dateType: 'date' as const, // 时间范围选择器
|
dateType: 'date' as const, // 时间范围选择器
|
||||||
valueFormat: 'YYYY-MM-DD',
|
valueFormat: 'YYYY-MM-DD',
|
||||||
width: '240px',
|
width: '280px',
|
||||||
},
|
},
|
||||||
// 结束时间
|
// 结束时间
|
||||||
{
|
{
|
||||||
prop: 'endTime',
|
prop: 'endTime',
|
||||||
label: '注册结束时间',
|
label: '注册结束时间',
|
||||||
|
placeholder: '请选择注册结束时间',
|
||||||
type: 'date' as const,
|
type: 'date' as const,
|
||||||
dateType: 'date' as const, // 时间范围选择器
|
dateType: 'date' as const, // 时间范围选择器
|
||||||
valueFormat: 'YYYY-MM-DD',
|
valueFormat: 'YYYY-MM-DD',
|
||||||
width: '240px',
|
width: '280px',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
export const tableColumns = [
|
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
|
// 账号id
|
||||||
{ prop: 'userId', label: '账号id' },
|
{ prop: 'userId', label: '账号id', width: '220' },
|
||||||
// 状态
|
// 状态
|
||||||
{ prop: 'status', label: '状态' },
|
{ 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: '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}
|
||||||
]
|
]
|
||||||
|
|
||||||
// 点差表格配置
|
// 点差表格配置
|
||||||
|
|
|
||||||
|
|
@ -51,12 +51,14 @@ export const clientSearch = [
|
||||||
//定义客户table列配置
|
//定义客户table列配置
|
||||||
export const clientTableColumns = [
|
export const clientTableColumns = [
|
||||||
{ prop: 'id', label: 'ID', align: 'center' as const },
|
{ prop: 'id', label: 'ID', align: 'center' as const },
|
||||||
{ prop: 'username', label: '用户名', align: 'center' as const },
|
{ label: '邮箱', prop: 'email', align: 'center' as const, width: '160px' },
|
||||||
{ prop: 'createdTime', label: '注册时间', align: 'center' as const },
|
{ label: '手机号', prop: 'mobile', align: 'center' as const, width: '180' },
|
||||||
{ prop: 'agentUsername', label: '所属代理', align: 'center' as const },
|
{ 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 },
|
{ prop: 'amount', label: '资金', align: 'center' as const, isNumber: true },
|
||||||
{ label: '状态', slotName: 'status', align: 'center' as const },
|
{ 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配置
|
//定义添加客户form配置
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue