Browse Source

钱包界面字段修改

jiangcheng/feature-20260402142510-现金四期
ZhangYong 5 days ago
parent
commit
69e6df9bab
  1. 28
      src/assets/SvgIcons/wallet_management.svg
  2. 1
      src/components/locales/lang/en.js
  3. 3
      src/components/locales/lang/zh-CN.js
  4. 309
      src/views/walletManage/WalletBalance.vue
  5. 37
      src/views/walletManage/components/WalletDetailTemplate.vue

28
src/assets/SvgIcons/wallet_management.svg

@ -1 +1,27 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1775116665367" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5512" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#E84F4F" p-id="5513"></path><path d="M486.810394 1023.36001L228.926423 766.848018 800.467493 295.085389 1023.912001 517.191919c-2.805956 280.355619-230.904392 506.778082-511.928001 506.778081-8.445868 0-16.837737-0.215997-25.181606-0.61799l0.008 0.008z" fill="#D14747" p-id="5514"></path><path d="M268.16181 270.889767h485.350416c31.909501 0 57.781097 25.867596 57.781098 57.781098V656.089749c0 31.909501-25.867596 57.781097-57.781098 57.781097H268.16181c-31.909501 0-57.781097-25.867596-57.781097-57.781097V328.668865c0.002-31.911501 25.871596-57.779097 57.781097-57.779098z" fill="#F5C013" p-id="5515"></path><path d="M271.98975 288.785488L740.256433 246.196153l34.151467 438.42315-490.730332 40.343369-11.693818-436.181184 0.006 0.004z" fill="#E6E6E6" p-id="5516"></path><path d="M272.363744 293.871408l486.4004-12.261808 16.02575 408.105623-490.730332 40.33737-11.695818-436.181185z" fill="#FFFFFF" p-id="5517"></path><path d="M210.382713 328.662865h564.321182c20.125686 0 36.589428 16.463743 36.589429 36.589428V735.048515c0 20.125686-16.463743 36.589428-36.589429 36.589428h-527.731754c-20.125686 0-36.589428-16.463743-36.589428-36.589428V328.662865z" fill="#FFD630" p-id="5518"></path><path d="M801.625475 340.544679c5.991906 6.523898 9.667849 15.211762 9.667849 24.713614v369.796222c0 20.131685-16.463743 36.589428-36.589429 36.589428H246.980141c-10.277839 0-19.599694-4.293933-26.26759-11.177825l580.920923-419.923439h-0.007999v0.002z" fill="#FFC919" p-id="5519"></path><path d="M210.382713 735.048515V365.258293h546.495461c11.097827 0 20.183685 9.077858 20.183684 20.183684v329.430853c0 11.097827-9.077858 20.183685-20.183684 20.183685H210.382713v-0.008z" fill="#F5BE18" p-id="5520"></path><path d="M210.382713 719.174763V381.132045h531.463696c11.729817 0 21.325667 8.30187 21.325666 18.449712v301.141294c0 10.149841-9.59585 18.443712-21.325666 18.443712H210.382713v0.008z" fill="#FFD630" p-id="5521"></path><path d="M700.127061 474.530585h110.516273c10.011844 0 18.197716 8.243871 18.197715 18.197716v65.684974c0 9.947845-8.243871 18.197716-18.197715 18.197715h-110.516273c-28.017562 0-51.033203-22.967641-51.033203-51.033202v-0.008c0-28.067561 22.959641-51.033203 51.033203-51.033203v-0.006z" fill="#FFF490" p-id="5522"></path><path d="M704.214997 526.305776m-31.115514 0a31.115514 31.115514 0 1 0 62.231027 0 31.115514 31.115514 0 1 0-62.231027 0Z" fill="#F5BE18" p-id="5523"></path><path d="M704.214997 526.305776m-25.433603 0a25.433603 25.433603 0 1 0 50.867205 0 25.433603 25.433603 0 1 0-50.867205 0Z" fill="#E6E6E6" p-id="5524"></path></svg>
<svg width="31" height="31" viewBox="0 0 31 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.74612 0.375959C11.6259 0.0545255 15.0739 -0.278254 20.0466 0.375959C25.0192 1.03017 28.1825 3.79754 29.2367 7.13376C30.2909 10.47 30.2144 16.9942 29.826 20.258C29.507 24.1645 27.2331 28.7886 21.7954 29.5942C16.3576 30.3997 9.67485 30.1849 6.99417 29.2304C4.3135 28.2758 0.763355 26.2434 0.299165 20.5505C-0.165026 14.8577 -0.471763 7.2173 2.42497 4.11929C4.43352 1.73288 7.86631 0.697393 9.74612 0.375959Z" fill="#FFE2F4"/>
<g filter="url(#filter0_d_2049_43228)">
<path d="M22.1043 26.6488H7.99325C7.54074 26.649 7.09261 26.5594 6.67449 26.3852C6.25636 26.211 5.87643 25.9555 5.55638 25.6334C5.23634 25.3113 4.98246 24.9288 4.80924 24.5079C4.63603 24.0869 4.54687 23.6358 4.54688 23.1801V6.90912C4.54687 6.45348 4.63603 6.00231 4.80924 5.58137C4.98246 5.16044 5.23634 4.77799 5.55638 4.45587C5.87643 4.13376 6.25636 3.87828 6.67449 3.70405C7.09261 3.52982 7.54074 3.44024 7.99325 3.44043H20.2205L25.5449 8.73726V23.1801C25.5446 24.0992 25.1821 24.9806 24.5371 25.6309C23.892 26.2812 23.0171 26.6473 22.1043 26.6488Z" fill="url(#paint0_linear_2049_43228)"/>
</g>
<path d="M21.0781 12.1216H9.74479C9.3766 12.1216 9.07812 12.4201 9.07812 12.7882V20.1216C9.07812 20.4898 9.3766 20.7882 9.74479 20.7882H21.0781C21.4463 20.7882 21.7448 20.4898 21.7448 20.1216V12.7882C21.7448 12.4201 21.4463 12.1216 21.0781 12.1216Z" stroke="white" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21.7422 14.4546H15.7422V18.1213H21.7422V14.4546Z" stroke="white" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21.7422 13.7881V18.7881" stroke="white" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.0781 12.1216C18.0781 10.4549 16.9115 10.1216 16.4115 10.1216C15.3004 10.1216 12.7781 10.1216 11.5781 10.1216C10.3781 10.1216 10.0781 11.0768 10.0781 11.5544V12.1216" stroke="white" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.5781 16.7881C18.8543 16.7881 19.0781 16.5642 19.0781 16.2881C19.0781 16.0119 18.8543 15.7881 18.5781 15.7881C18.302 15.7881 18.0781 16.0119 18.0781 16.2881C18.0781 16.5642 18.302 16.7881 18.5781 16.7881Z" fill="white"/>
<path d="M20.0195 3.44043V7.76966C20.0195 8.08702 20.1465 8.39137 20.3726 8.61577C20.5987 8.84017 20.9053 8.96624 21.2251 8.96624H25.5453V8.85939L20.0195 3.44043Z" fill="#EED2FF"/>
<defs>
<filter id="filter0_d_2049_43228" x="3.54688" y="2.44043" width="23" height="25.2085" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.0745098 0 0 0 0 0.74902 0 0 0 0 0.52549 0 0 0 0.3 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_2049_43228"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2049_43228" result="shape"/>
</filter>
<linearGradient id="paint0_linear_2049_43228" x1="36.044" y1="15.0446" x2="12.9513" y2="-5.84872" gradientUnits="userSpaceOnUse">
<stop stop-color="#4C02B3"/>
<stop offset="1" stop-color="#E992FF"/>
</linearGradient>
</defs>
</svg>

1
src/components/locales/lang/en.js

@ -422,6 +422,7 @@ export default {
// Common List Fields // Common List Fields
common_list: { common_list: {
marketName: "Region",
id: "No.", id: "No.",
originalChinese: "Chinese", originalChinese: "Chinese",
english: "English", english: "English",

3
src/components/locales/lang/zh-CN.js

@ -422,6 +422,7 @@ export default {
// 通用列表字段组 // 通用列表字段组
common_list: { common_list: {
marketName: "所属地区",
id: "序号", id: "序号",
originalChinese: "原始中文", originalChinese: "原始中文",
english: "英文", english: "英文",
@ -944,7 +945,7 @@ export default {
transactionCurrency: "交易币种", transactionCurrency: "交易币种",
transactionDesc: "交易说明", transactionDesc: "交易说明",
transactionOrderNo: "交易单号", transactionOrderNo: "交易单号",
transactionStatus: "交易状态",
transactionStatus: "状态",
exceptionData: "异常数据", exceptionData: "异常数据",
time: "时间", time: "时间",
market: { market: {

309
src/views/walletManage/WalletBalance.vue

@ -6,7 +6,7 @@ import { findMenuById, permissionMapping } from "@/utils/menuTreePermission.js"
const adminStore = useAdminStore() const adminStore = useAdminStore()
const { adminData, menuTree, flag } = storeToRefs(adminStore) const { adminData, menuTree, flag } = storeToRefs(adminStore)
// flag() // flag()
watch(flag, (newFlag, oldFlag) => {
watch(flag, (newFlag, oldFlag) => {
// flag // flag
if (newFlag !== oldFlag) { if (newFlag !== oldFlag) {
console.log('员工数据flag状态改变,重新加载数据', newFlag) console.log('员工数据flag状态改变,重新加载数据', newFlag)
@ -211,31 +211,31 @@ const cellClick = function (row, column) {
console.log('cellClick', column) console.log('cellClick', column)
const walletId = propToWalletId[column.property]; const walletId = propToWalletId[column.property];
const propToMarketName = { const propToMarketName = {
historyGold: t('clientCount.market.historyGold'),
hkGold: t('clientCount.market.hkGold'),
sgHcGold: t('clientCount.market.sgHcGold'),
myGold: t('clientCount.market.myGold'),
sgGold: t('clientCount.market.sgCmGold'),
caGold: t('clientCount.market.caGold'),
thHsGold: t('clientCount.market.thHsGold'),
thHaGold: t('clientCount.market.thHaGold'),
vnGold: t('clientCount.market.vnGold'),
bjGold: t('clientCount.market.bjGold')
historyGold: t('clientCount.market.historyGold'),
hkGold: t('clientCount.market.hkGold'),
sgHcGold: t('clientCount.market.sgHcGold'),
myGold: t('clientCount.market.myGold'),
sgGold: t('clientCount.market.sgCmGold'),
caGold: t('clientCount.market.caGold'),
thHsGold: t('clientCount.market.thHsGold'),
thHaGold: t('clientCount.market.thHaGold'),
vnGold: t('clientCount.market.vnGold'),
bjGold: t('clientCount.market.bjGold')
}
const marketName = propToMarketName[column.property]
if (marketName && walletId) {
currentWalletInfo.value = {
userName: row.name,
jwcode: row.jwcode,
marketName: row.market, //
walletName: marketName + t('clientCount.wallet'), //
currentBalance: row[column.property] || 0,
walletId: walletId
} }
const marketName = propToMarketName[column.property]
if (marketName && walletId) {
currentWalletInfo.value = {
userName: row.name,
jwcode: row.jwcode,
marketName: row.market, //
walletName: marketName + t('clientCount.wallet'), //
currentBalance: row[column.property] || 0,
walletId: walletId
}
walletDetailQuery.value.pageNum = 1
getWalletDetail()
walletDetailVisible.value = true
walletDetailQuery.value.pageNum = 1
getWalletDetail()
walletDetailVisible.value = true
} }
} }
@ -283,17 +283,17 @@ const getWalletDetail = async () => {
}) })
if (result.code === 200) { if (result.code === 200) {
walletDetailList.value = result.data.list.map(item => ({
time: moment(item.createTime).format('YYYY-MM-DD HH:mm:ss'),
type: getWalletRecordTypeText(item),
amount: Number(item.amount) || 0,
desc: item.description || '',
orderNo: item.orderCode,
status: item.status === 0 ? 1 : 2
}))
walletDetailTotal.value = result.data.total
walletDetailList.value = result.data.list.map(item => ({
time: moment(item.createTime).format('YYYY-MM-DD HH:mm:ss'),
type: getWalletRecordTypeText(item),
amount: Number(item.amount) || 0,
desc: item.description || '',
orderNo: item.orderCode,
status: item.status === 0 ? 1 : 2
}))
walletDetailTotal.value = result.data.total
} else { } else {
ElMessage.error(result.msg || t('elmessage.getDetailFailed'))
ElMessage.error(result.msg || t('elmessage.getDetailFailed'))
} }
} catch (error) { } catch (error) {
console.error(error) console.error(error)
@ -629,102 +629,106 @@ const format3 = (num) => {
</script> </script>
<template> <template>
<el-card class="card1" style="margin-bottom: 1vh;">
<div class="head-card">
<div class="head-card-element">
<el-text class="mx-1" size="large">{{ $t('common.jwcode') }}</el-text>
<el-input v-model="selectData.jwcode" style="width: 160px" :placeholder="$t('common.jwcodePlaceholder')" clearable />
<div style="display: flex; flex-direction: column; height: 95vh;">
<el-card class="card1" style="margin-bottom: 1vh;">
<div class="head-card">
<div class="head-card-element">
<el-text class="mx-1" size="large">{{ $t('common.jwcode') }}</el-text>
<el-input v-model="selectData.jwcode" style="width: 160px" :placeholder="$t('common.jwcodePlaceholder')"
clearable />
</div>
<div class="head-card-element">
<el-text class="mx-1" size="large">{{ $t('common.market') }}</el-text>
<el-cascader v-model="selectedMarketPath" :options="markets" :placeholder="$t('common.marketPlaceholder')"
clearable style="width:180px" @change="handleMarketChange" />
</div>
<div class="head-card-element">
<!-- <el-checkbox v-model="showEmployeeData" @change="search()">员工数据</el-checkbox> -->
</div>
<el-button type="primary" @click="search()">{{ $t('common.search') }}</el-button>
<el-button @click="reset" type="success">{{ $t('common.reset') }}</el-button>
<el-button type="primary" @click="exportExcel()">{{ $t('common.exportExcel') }}</el-button>
<!-- <el-button type="primary" @click="selectWallet()">{{ $t('common.exportCompanyWalletDetail') }}</el-button> -->
<el-button type="primary" @click="openExportList">{{ $t('common.viewExportList') }}</el-button>
</div> </div>
<div class="head-card-element">
<el-text class="mx-1" size="large">{{ $t('common.market') }}</el-text>
<el-cascader v-model="selectedMarketPath" :options="markets" :placeholder="$t('common.marketPlaceholder')" clearable style="width:180px"
@change="handleMarketChange" />
<!-- </div> -->
</el-card>
<el-card class="card2">
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 85vh; overflow-y: auto">
<el-table ref="tableRef" :data="tableData" @cellClick="cellClick" style="width: 100%; height: 85vh"
@sort-change="handleSortChange" :row-style="{ height: '50px' }">
<el-table-column type="index" :label="$t('common_list.id')" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<el-table-column prop="name" :label="$t('common_list.name')" width="140" />
<el-table-column prop="jwcode" :label="$t('common_list.jwcode')" width="140" />
<el-table-column prop="market" :label="$t('common_list.market')" width="140" />
<el-table-column prop="historyGold" :label="$t('clientCount.market.historyGold')" sortable="custom"
min-width="140">
<template #default="scope">
<span>{{ (scope.row.historyGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="hkGold" :label="$t('clientCount.market.hkGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.hkGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="sgHcGold" :label="$t('clientCount.market.sgHcGold')" sortable="custom" min-width="150">
<template #default="scope">
<span>{{ (scope.row.sgHcGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="myGold" :label="$t('clientCount.market.myGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.myGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="sgGold" :label="$t('clientCount.market.sgCmGold')" sortable="custom" min-width="150">
<template #default="scope">
<span>{{ (scope.row.sgGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="caGold" :label="$t('clientCount.market.caGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.caGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="thHsGold" :label="$t('clientCount.market.thHsGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.thHsGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="thHaGold" :label="$t('clientCount.market.thHaGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.thHaGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="vnGold" :label="$t('clientCount.market.vnGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.vnGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="bjGold" :label="$t('clientCount.market.bjGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.bjGold || 0) }}</span>
</template>
</el-table-column>
</el-table>
</div> </div>
<div class="head-card-element">
<!-- <el-checkbox v-model="showEmployeeData" @change="search()">员工数据</el-checkbox> -->
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<el-pagination background :current-page="getObj.pageNum" :page-size="getObj.pageSize"
:page-sizes="[5, 10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange" @current-change="handleCurrentChange"></el-pagination>
</div> </div>
<el-button type="primary" @click="search()">{{ $t('common.search') }}</el-button>
<el-button @click="reset" type="success">{{ $t('common.reset') }}</el-button>
<el-button type="primary" @click="exportExcel()">{{ $t('common.exportExcel') }}</el-button>
<!-- <el-button type="primary" @click="selectWallet()">{{ $t('common.exportCompanyWalletDetail') }}</el-button> -->
<el-button type="primary" @click="openExportList">{{ $t('common.viewExportList') }}</el-button>
</div>
<!-- </div> -->
</el-card>
<el-card class="card2">
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 69vh; overflow-y: auto">
<el-table ref="tableRef" :data="tableData" @cellClick="cellClick" style="width: 100%; height: 69vh"
@sort-change="handleSortChange" :row-style="{ height: '50px' }">
<el-table-column type="index" :label="$t('common_list.id')" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<el-table-column prop="name" :label="$t('common_list.name')" width="140" />
<el-table-column prop="jwcode" :label="$t('common_list.jwcode')" width="140" />
<el-table-column prop="market" :label="$t('common_list.market')" width="140" />
<el-table-column prop="historyGold" :label="$t('clientCount.market.historyGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.historyGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="hkGold" :label="$t('clientCount.market.hkGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.hkGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="sgHcGold" :label="$t('clientCount.market.sgHcGold')" sortable="custom" min-width="150">
<template #default="scope">
<span>{{ (scope.row.sgHcGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="myGold" :label="$t('clientCount.market.myGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.myGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="sgGold" :label="$t('clientCount.market.sgCmGold')" sortable="custom" min-width="150">
<template #default="scope">
<span>{{ (scope.row.sgGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="caGold" :label="$t('clientCount.market.caGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.caGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="thHsGold" :label="$t('clientCount.market.thHsGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.thHsGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="thHaGold" :label="$t('clientCount.market.thHaGold')" sortable="custom" min-width="140">
<template #default="scope">
<span>{{ (scope.row.thHaGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="vnGold" :label="$t('clientCount.market.vnGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.vnGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="bjGold" :label="$t('clientCount.market.bjGold')" sortable="custom" min-width="120">
<template #default="scope">
<span>{{ (scope.row.bjGold || 0) }}</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<el-pagination background :current-page="getObj.pageNum" :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
</el-card>
</div>
<el-dialog v-model="exportListVisible" :title="$t('common_export.exportList')" width="80%"> <el-dialog v-model="exportListVisible" :title="$t('common_export.exportList')" width="80%">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading"> <el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
<el-table-column prop="fileName" :label="$t('common_export.fileName')" /> <el-table-column prop="fileName" :label="$t('common_export.fileName')" />
@ -756,10 +760,11 @@ const format3 = (num) => {
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="selectWalletVisible" width="30%" top="20%" :before-close="closeSelectWallet">
<el-form :model="selectWalletForm" :rules="selectWalletRules" ref="selectWalletFormRef" label-width="120px">
<el-dialog v-model="selectWalletVisible" width="30%" top="20%" :before-close="closeSelectWallet">
<el-form :model="selectWalletForm" :rules="selectWalletRules" ref="selectWalletFormRef" label-width="120px">
<el-form-item :label="$t('common_list.companyWallet')" prop="companyWalletId" style="margin-top: 30px;"> <el-form-item :label="$t('common_list.companyWallet')" prop="companyWalletId" style="margin-top: 30px;">
<el-select v-model="selectWalletForm.companyWalletId" :placeholder="$t('common_list.companyWalletPlaceholder')" style="width: 80%;">
<el-select v-model="selectWalletForm.companyWalletId" :placeholder="$t('common_list.companyWalletPlaceholder')"
style="width: 80%;">
<el-option v-for="item in companyWalletList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in companyWalletList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -773,19 +778,24 @@ const format3 = (num) => {
<el-dialog v-model="walletDetailVisible" width="70%" top="20vh"> <el-dialog v-model="walletDetailVisible" width="70%" top="20vh">
<template #header> <template #header>
<div class="wallet-detail-header" style="display: flex; gap: 40px; justify-content: space-between; align-items: center; font-size: 16px;">
<div class="wallet-detail-header"
style="display: flex; gap: 40px; justify-content: space-between; align-items: center; font-size: 16px;">
<span style="font-weight: bold; color: #F56C6C;">* {{ currentWalletInfo.walletName }}</span> <span style="font-weight: bold; color: #F56C6C;">* {{ currentWalletInfo.walletName }}</span>
<span><span style="color: #F56C6C;">*</span> {{ $t('clientCount.user') }}: {{ currentWalletInfo.userName }} (ID: {{ currentWalletInfo.jwcode }})</span>
<span><span style="color: #F56C6C;">*</span> {{ $t('common.market') }}: {{ currentWalletInfo.marketName }}</span>
<span><span style="color: #F56C6C;">*</span> {{ $t('clientCount.user') }}: {{ currentWalletInfo.userName }} (ID:
{{ currentWalletInfo.jwcode }})</span>
<span><span style="color: #F56C6C;">*</span> {{ $t('common.market') }}: {{ currentWalletInfo.marketName
}}</span>
</div> </div>
<div style="margin-top: 15px; font-size: 16px;"> <div style="margin-top: 15px; font-size: 16px;">
<span style="color: #F56C6C; font-weight: bold;">* {{ $t('clientCount.currentBalance') }}: {{ format3(currentWalletInfo.currentBalance || 0) }} {{ $t('common.goldCoin') }}</span>
<span style="color: #F56C6C; font-weight: bold;">* {{ $t('clientCount.currentBalance') }}: {{
format3(currentWalletInfo.currentBalance || 0) }} {{ $t('common.goldCoin') }}</span>
</div> </div>
</template> </template>
<el-table :data="walletDetailList" v-loading="walletDetailLoading" style="width: 100%; height: 50vh; overflow-y: auto;" border stripe>
<el-table :data="walletDetailList" v-loading="walletDetailLoading"
style="width: 100%; height: 50vh; overflow-y: auto;" border stripe>
<el-table-column prop="time" :label="$t('clientCount.time')" align="center" width="180"> <el-table-column prop="time" :label="$t('clientCount.time')" align="center" width="180">
<template #default="scope">{{ scope.row.time }}</template>
<template #default="scope">{{ scope.row.time }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="type" :label="$t('clientCount.transactionType')" align="center" width="120" /> <el-table-column prop="type" :label="$t('clientCount.transactionType')" align="center" width="120" />
<el-table-column prop="amount" :label="$t('common_list.money')" align="center" width="120"> <el-table-column prop="amount" :label="$t('common_list.money')" align="center" width="120">
@ -797,10 +807,13 @@ const format3 = (num) => {
</el-table-column> </el-table-column>
<el-table-column prop="desc" :label="$t('clientCount.transactionDesc')" align="center" /> <el-table-column prop="desc" :label="$t('clientCount.transactionDesc')" align="center" />
<el-table-column prop="orderNo" :label="$t('clientCount.transactionOrderNo')" align="center" width="220" /> <el-table-column prop="orderNo" :label="$t('clientCount.transactionOrderNo')" align="center" width="220" />
<el-table-column prop="status" :label="$t('clientCount.transactionStatus')" align="center" width="220" fixed="right">
<el-table-column prop="status" :label="$t('clientCount.transactionStatus')" align="center" width="220"
fixed="right">
<template #default="scope"> <template #default="scope">
<el-tag :type="scope.row.status === 1 ? 'success' : scope.row.status === 2 ? 'danger' : 'info'" :effect="scope.row.status === 1 ? 'light' : 'plain'">
{{ scope.row.status === 1 ? t('common_list.normal') : scope.row.status === 2 ? t('common_list.refunded') : t('clientCount.exceptionData') }}
<el-tag :type="scope.row.status === 1 ? 'success' : scope.row.status === 2 ? 'danger' : 'info'"
:effect="scope.row.status === 1 ? 'light' : 'plain'">
{{ scope.row.status === 1 ? t('common_list.normal') : scope.row.status === 2 ? t('common_list.refunded') :
t('clientCount.exceptionData') }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
@ -809,16 +822,9 @@ const format3 = (num) => {
<template #footer> <template #footer>
<div class="dialog-footer" style="display: flex; justify-content: space-between; align-items: center;"> <div class="dialog-footer" style="display: flex; justify-content: space-between; align-items: center;">
<div class="pagination-container"> <div class="pagination-container">
<el-pagination
background
:current-page="walletDetailQuery.pageNum"
:page-size="walletDetailQuery.pageSize"
:page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
:total="walletDetailTotal"
@size-change="handleWalletDetailSizeChange"
@current-change="handleWalletDetailCurrentChange"
/>
<el-pagination background :current-page="walletDetailQuery.pageNum" :page-size="walletDetailQuery.pageSize"
:page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" :total="walletDetailTotal"
@size-change="handleWalletDetailSizeChange" @current-change="handleWalletDetailCurrentChange" />
</div> </div>
<div> <div>
<el-button type="primary" @click="exportWalletDetail">{{ $t('common.exportExcel') }}</el-button> <el-button type="primary" @click="exportWalletDetail">{{ $t('common.exportExcel') }}</el-button>
@ -842,7 +848,7 @@ const format3 = (num) => {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
:deep(.el-card__body) {
:deep(.el-card__body) {
padding: 20px; padding: 20px;
flex: 1; flex: 1;
display: flex; display: flex;
@ -850,6 +856,7 @@ const format3 = (num) => {
overflow: hidden; overflow: hidden;
} }
} }
// //
:deep(.el-table__header-wrapper), :deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper), :deep(.el-table__body-wrapper),

37
src/views/walletManage/components/WalletDetailTemplate.vue

@ -267,7 +267,7 @@ onMounted(() => {
</script> </script>
<template> <template>
<div style="display: flex; flex-direction: column; height: 100%;">
<div style="display: flex; flex-direction: column; height: 95vh;">
<el-card class="card1" style="margin-bottom: 1vh;"> <el-card class="card1" style="margin-bottom: 1vh;">
<div class="head-card"> <div class="head-card">
<div class="head-card-element"> <div class="head-card-element">
@ -284,20 +284,20 @@ onMounted(() => {
</el-card> </el-card>
<el-card class="card2"> <el-card class="card2">
<div style="height: 69vh; overflow-y: auto">
<el-table ref="tableRef" :data="tableData" v-loading="loading" style="width: 100%; height: 69vh" :row-style="{ height: '50px' }">
<div style="height: 85vh; overflow-y: auto">
<el-table ref="tableRef" :data="tableData" v-loading="loading" style="width: 100%; height: 85vh"
:row-style="{ height: '50px' }">
<el-table-column type="index" :label="$t('common_list.id')" width="80px" fixed="left"> <el-table-column type="index" :label="$t('common_list.id')" width="80px" fixed="left">
<template #default="scope"> <template #default="scope">
<span>{{ scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize }}</span> <span>{{ scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userName" :label="$t('common_list.name')" width="140" />
<el-table-column prop="jwcode" :label="$t('common_list.jwcode')" width="140" /> <el-table-column prop="jwcode" :label="$t('common_list.jwcode')" width="140" />
<el-table-column prop="time" :label="$t('clientCount.time')" align="center" width="180">
<template #default="scope">{{ scope.row.time }}</template>
</el-table-column>
<el-table-column prop="userName" :label="$t('common_list.name')" width="140" />
<el-table-column prop="marketName" :label="$t('common_list.marketName')" width="140" />
<el-table-column prop="typeText" :label="$t('clientCount.transactionType')" align="center" width="120" /> <el-table-column prop="typeText" :label="$t('clientCount.transactionType')" align="center" width="120" />
<el-table-column prop="transactionCurrency" :label="$t('clientCount.transactionCurrency')" align="center" width="120" />
<el-table-column prop="transactionCurrency" :label="$t('clientCount.transactionCurrency')" align="center"
width="120" />
<el-table-column prop="amount" :label="$t('common_list.money')" align="center" width="120"> <el-table-column prop="amount" :label="$t('common_list.money')" align="center" width="120">
<template #default="scope"> <template #default="scope">
<span :style="{ color: scope.row.amount >= 0 ? '#67C23A' : '#F56C6C', fontWeight: 'bold' }"> <span :style="{ color: scope.row.amount >= 0 ? '#67C23A' : '#F56C6C', fontWeight: 'bold' }">
@ -305,23 +305,28 @@ onMounted(() => {
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="desc" :label="$t('clientCount.transactionDesc')" align="center" min-width="150" />
<el-table-column prop="orderNo" :label="$t('clientCount.transactionOrderNo')" align="center" width="220" /> <el-table-column prop="orderNo" :label="$t('clientCount.transactionOrderNo')" align="center" width="220" />
<el-table-column prop="status" :label="$t('clientCount.transactionStatus')" align="center" width="150" fixed="right">
<el-table-column prop="desc" :label="$t('clientCount.transactionDesc')" align="center" min-width="150" />
<el-table-column prop="status" :label="$t('clientCount.transactionStatus')" align="center" width="150">
<template #default="scope"> <template #default="scope">
<el-tag :type="scope.row.status === 1 ? 'success' : scope.row.status === 2 ? 'danger' : 'info'" :effect="scope.row.status === 1 ? 'light' : 'plain'">
{{ scope.row.status === 1 ? t('common_list.normal') : scope.row.status === 2 ? t('common_list.refunded') : t('clientCount.exceptionData') }}
<el-tag :type="scope.row.status === 1 ? 'success' : scope.row.status === 2 ? 'danger' : 'info'"
:effect="scope.row.status === 1 ? 'light' : 'plain'">
{{ scope.row.status === 1 ? t('common_list.normal') : scope.row.status === 2 ? t('common_list.refunded')
: t('clientCount.exceptionData') }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="time" :label="$t('clientCount.time')" align="center" width="180">
<template #default="scope">{{ scope.row.time }}</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :current-page="getObj.pageNum" :page-size="getObj.pageSize" :page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
<el-pagination background :current-page="getObj.pageNum" :page-size="getObj.pageSize"
:page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange" @current-change="handleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>
@ -370,7 +375,7 @@ onMounted(() => {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
:deep(.el-card__body) {
:deep(.el-card__body) {
padding: 20px; padding: 20px;
flex: 1; flex: 1;
display: flex; display: flex;

Loading…
Cancel
Save