Browse Source

钱包二级界面

jiangcheng/feature-20260402142510-现金四期
ZhangYong 1 week ago
parent
commit
3742632ec8
  1. 10
      src/api/cash/cash.js
  2. 162
      src/views/walletManage/components/WalletDetailTemplate.vue
  3. 2
      src/views/walletManage/walletDetail/BJWallet.vue
  4. 2
      src/views/walletManage/walletDetail/CAWallet.vue
  5. 3
      src/views/walletManage/walletDetail/HKWallet.vue
  6. 2
      src/views/walletManage/walletDetail/MyWallet.vue
  7. 2
      src/views/walletManage/walletDetail/SGWalletCM.vue
  8. 2
      src/views/walletManage/walletDetail/SGWalletHC.vue
  9. 2
      src/views/walletManage/walletDetail/THWalletHA.vue
  10. 2
      src/views/walletManage/walletDetail/THWalletHS.vue
  11. 2
      src/views/walletManage/walletDetail/VNWallet.vue

10
src/api/cash/cash.js

@ -0,0 +1,10 @@
import http from '@/util/http.js'
// 查询钱包记录
export const selectWalletRecords = (data) => {
return http({
method: 'POST',
url: '/cashCollection/selectWalletRecords',
data
})
}

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

@ -7,6 +7,14 @@ import moment from 'moment'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useAdminStore } from "@/store/index.js" import { useAdminStore } from "@/store/index.js"
import { storeToRefs } from "pinia" import { storeToRefs } from "pinia"
import { selectWalletRecords } from "@/api/cash/cash.js"
const props = defineProps({
type: {
type: Number,
required: true
}
})
const { t } = useI18n() const { t } = useI18n()
const route = useRoute() const route = useRoute()
@ -61,6 +69,7 @@ const format3 = (num) => {
// //
const getWalletData = async () => { const getWalletData = async () => {
console.log('walletId:', selectData.value.walletId)
if (!selectData.value.walletId) return; if (!selectData.value.walletId) return;
if (selectData.value.jwcode) { if (selectData.value.jwcode) {
@ -78,15 +87,10 @@ const getWalletData = async () => {
pageSize: getObj.value.pageSize, pageSize: getObj.value.pageSize,
userWalletRecord: { userWalletRecord: {
walletId: selectData.value.walletId, walletId: selectData.value.walletId,
jwcode: selectData.value.jwcode ? Number(selectData.value.jwcode) : null
} }
} }
const result = await API({
url: '/cashCollection/selectWalletRecords',
method: 'post',
data: params
})
const result = await selectWalletRecords(params)
if (result.code === 200) { if (result.code === 200) {
tableData.value = result.data.list.map(item => ({ tableData.value = result.data.list.map(item => ({
@ -144,9 +148,9 @@ watch(flag, (newFlag, oldFlag) => {
} }
}) })
//
// props
watch( watch(
() => route.query.type,
() => props.type,
(newType) => { (newType) => {
if (newType) { if (newType) {
selectData.value.walletId = newType selectData.value.walletId = newType
@ -156,6 +160,110 @@ watch(
}, },
{ immediate: true } { immediate: true }
) )
// ==================== ====================
const exportListVisible = ref(false)
const exportList = ref([])
const exportListLoading = ref(false)
const exportExcelOnlyOne = async function () {
if (!selectData.value.walletId) {
ElMessage.error(t('elmessage.selectCompanyWallet'))
return
}
const params = {
pageNum: 1, //
pageSize: 10000, //
userWalletRecord: {
walletId: selectData.value.walletId,
jwcode: selectData.value.jwcode ? Number(selectData.value.jwcode) : null
}
}
try {
const res = await API({
url: '/export/exportUserWalletRecord',
method: 'post',
data: params
})
if (res.code === 200) {
ElMessage.success(t('elmessage.exportSuccess'))
} else {
ElMessage.error(res.msg || t('elmessage.exportFailed'))
}
} catch (error) {
console.error('导出失败:', error)
ElMessage.error(t('elmessage.exportFailed'))
}
}
//
const openExportList = () => {
getExportList()
exportListVisible.value = true
}
//
const getExportList = async () => {
exportListLoading.value = true
try {
const result = await API({ url: '/export/export' })
if (result.code === 200) {
// type 16 17 WalletBalance
const filteredData = result.data.filter(item => {
return item.type === 16 || item.type === 17;
});
exportList.value = filteredData
} else {
ElMessage.error(result.msg || t('elmessage.getExportListError'))
}
} catch (error) {
console.error('获取导出列表出错:', error)
ElMessage.error(t('elmessage.getExportListError'))
} finally {
exportListLoading.value = false
}
}
//
const downloadExportFile = (item) => {
if (item.state === 2) {
const link = document.createElement('a')
link.href = item.url
link.download = item.fileName
link.click()
} else {
ElMessage.warning(t('elmessage.exportingInProgress'))
}
}
//
const getTagType = (state) => {
switch (state) {
case 0: return 'info';
case 1: return 'primary';
case 2: return 'success';
case 3: return 'danger';
default: return 'info';
}
}
//
const getTagText = (state) => {
switch (state) {
case 0: return t('elmessage.pendingExecution');
case 1: return t('elmessage.executing');
case 2: return t('elmessage.executed');
case 3: return t('elmessage.errorExecution');
default: return t('elmessage.unknownStatus');
}
}
onMounted(() => {
selectData.value.walletId = props.type
})
</script> </script>
<template> <template>
@ -164,11 +272,13 @@ watch(
<div class="head-card"> <div class="head-card">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">{{ $t('common_list.jwcode') }}</el-text> <el-text class="mx-1" size="large">{{ $t('common_list.jwcode') }}</el-text>
<el-input v-model="selectData.jwcode" style="width: 240px" :placeholder="$t('common_list.jwcodePlaceholder')" clearable />
<el-input v-model="selectData.jwcode" style="width: 240px" placeholder="请输入精网号" clearable />
</div> </div>
<div class="head-card-btn"> <div class="head-card-btn">
<el-button type="default" @click="reset">{{ $t('common.reset') }}</el-button>
<el-button type="success" @click="reset">{{ $t('common.reset') }}</el-button>
<el-button type="primary" @click="search">{{ $t('common.search') }}</el-button> <el-button type="primary" @click="search">{{ $t('common.search') }}</el-button>
<el-button type="primary" @click="exportExcelOnlyOne">{{ $t('common.exportExcel') }}</el-button>
<el-button type="primary" @click="openExportList">{{ $t('common.viewExportList') }}</el-button>
</div> </div>
</div> </div>
</el-card> </el-card>
@ -213,6 +323,38 @@ watch(
@current-change="handleCurrentChange"></el-pagination> @current-change="handleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>
<!-- 导出列表弹窗 -->
<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-column prop="fileName" :label="$t('common_export.fileName')" />
<el-table-column prop="state" :label="$t('common_export.status')">
<template #default="scope">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="createTime" :label="$t('common_export.createTime')">
<template #default="scope">
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column :label="$t('common_export.operation')">
<template #default="scope">
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)"
:disabled="scope.row.state !== 2">
{{ $t('common_export.download') }}
</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button text @click="exportListVisible = false">{{ $t('common_export.close') }}</el-button>
</div>
</template>
</el-dialog>
</div> </div>
</template> </template>

2
src/views/walletManage/walletDetail/BJWallet.vue

@ -1,7 +1,7 @@
<!-- 北京钱包界面 --> <!-- 北京钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="bj" />
<WalletDetailTemplate :type="1" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/CAWallet.vue

@ -1,7 +1,7 @@
<!-- 加拿大钱包界面 --> <!-- 加拿大钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="ca" />
<WalletDetailTemplate :type="6" />
</div> </div>
</template> </template>
<script setup> <script setup>

3
src/views/walletManage/walletDetail/HKWallet.vue

@ -1,8 +1,7 @@
<!-- 初始界面 --> <!-- 初始界面 -->
<template> <template>
<div> <div>
111
<WalletDetailTemplate type="hk" />
<WalletDetailTemplate :type="2" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/MyWallet.vue

@ -1,7 +1,7 @@
<!-- 马来钱包界面 --> <!-- 马来钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="my" />
<WalletDetailTemplate :type="4" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/SGWalletCM.vue

@ -1,7 +1,7 @@
<!-- 新加坡CM钱包界面 --> <!-- 新加坡CM钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="sg_cm" />
<WalletDetailTemplate :type="5" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/SGWalletHC.vue

@ -1,7 +1,7 @@
<!-- 新加坡HC钱包界面 --> <!-- 新加坡HC钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="sg_hc" />
<WalletDetailTemplate :type="3" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/THWalletHA.vue

@ -1,7 +1,7 @@
<!-- 泰国HA钱包界面 --> <!-- 泰国HA钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="th_ha" />
<WalletDetailTemplate :type="8" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/THWalletHS.vue

@ -1,7 +1,7 @@
<!-- 泰国HS钱包界面 --> <!-- 泰国HS钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="th_hs" />
<WalletDetailTemplate :type="7" />
</div> </div>
</template> </template>
<script setup> <script setup>

2
src/views/walletManage/walletDetail/VNWallet.vue

@ -1,7 +1,7 @@
<!-- 越南钱包界面 --> <!-- 越南钱包界面 -->
<template> <template>
<div> <div>
<WalletDetailTemplate type="vn" />
<WalletDetailTemplate :type="9" />
</div> </div>
</template> </template>
<script setup> <script setup>

Loading…
Cancel
Save