Browse Source

导出

zhangrenyuan/feature-20250714163943-金币前端二期
zhangyongQINGHU 3 weeks ago
parent
commit
4235152c47
  1. 1
      src/views/home.vue
  2. 38
      src/views/usergold/clientCountBalance.vue
  3. 39
      src/views/usergold/clientCountDetail.vue

1
src/views/home.vue

@ -264,7 +264,6 @@ const openChangePassword = () => {
<el-menu-item @click="message()">查看个人信息</el-menu-item> <el-menu-item @click="message()">查看个人信息</el-menu-item>
<el-menu-item @click="openChangePassword">修改密码</el-menu-item> <el-menu-item @click="openChangePassword">修改密码</el-menu-item>
<el-menu-item @click="logout">退出登录</el-menu-item> <el-menu-item @click="logout">退出登录</el-menu-item>
<el-menu-item index="1-3" @click="openExportList">查看下载列表</el-menu-item>
</el-sub-menu> </el-sub-menu>

38
src/views/usergold/clientCountBalance.vue

@ -231,16 +231,10 @@ const handleCurrentChange = function (val) {
} }
const exportExcel = async function () { const exportExcel = async function () {
const params = { const params = {
goldDetail: {
user: {
jwcode: user.value.jwcode || '', jwcode: user.value.jwcode || '',
payPlatform: user.value.payPlatform || '',
type: user.value.type || '',
markets: user.value.markets || '',
startTime: user.value.startTime || '',
endTime: user.value.endTime || '',
},
page:getObj.value.pageNum,
size:total.value
markets: user.value.markets || []
}
} }
const res = await API({ url: '/goldDetail/exportGold', data: params }) const res = await API({ url: '/goldDetail/exportGold', data: params })
if (res.code === 200) { if (res.code === 200) {
@ -321,6 +315,24 @@ const getTagText = (state) => {
return '未知状态'; return '未知状态';
} }
} }
const handleMarketChange = (val) => {
if (!Array.isArray(val)) return
const hasHeadquarters = val.includes('总部')
const hasOther = val.some(item => item !== '总部')
if (hasHeadquarters && hasOther) {
if (val[val.length - 1] === '总部') {
//
goldDetail.value.markets = ['总部']
ElMessage.warning('“总部”与其他地区不可同时选择,系统已为您保留“总部”')
} else {
//
goldDetail.value.markets = val.filter(item => item !== '总部')
ElMessage.warning('“总部”与其他地区不可同时选择,系统已为您去除“总部”')
}
}
}
</script> </script>
<template> <template>
@ -334,7 +346,7 @@ const getTagText = (state) => {
</div> </div>
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="user.markets" placeholder="请选择所属地区" style="width: 180px" clearable multiple>
<el-select v-model="user.markets" placeholder="请选择所属地区" style="width: 180px" clearable multiple @change="handleMarketChange">
<el-option v-for="item in market" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in market" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</div> </div>
@ -435,8 +447,7 @@ const getTagText = (state) => {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" <el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination> @current-change="handleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>
@ -448,8 +459,7 @@ const getTagText = (state) => {
<el-table-column prop="fileName" label="文件名" /> <el-table-column prop="fileName" label="文件名" />
<el-table-column prop="state" label="状态"> <el-table-column prop="state" label="状态">
<template #default="scope"> <template #default="scope">
<el-tag :type="getTagType(scope.row.state)"
:effect="scope.row.state === 3 ? 'light' : 'plain'">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }} {{ getTagText(scope.row.state) }}
</el-tag> </el-tag>
</template> </template>

39
src/views/usergold/clientCountDetail.vue

@ -337,12 +337,13 @@ const exportExcel = async function () {
jwcode: goldDetail.value.jwcode || '', jwcode: goldDetail.value.jwcode || '',
payPlatform: goldDetail.value.payPlatform || '', payPlatform: goldDetail.value.payPlatform || '',
type: goldDetail.value.type || '', type: goldDetail.value.type || '',
markets: goldDetail.value.markets || '',
markets: goldDetail.value.markets || [],
startTime: goldDetail.value.startTime || '', startTime: goldDetail.value.startTime || '',
endTime: goldDetail.value.endTime || '', endTime: goldDetail.value.endTime || '',
sortField: goldDetail.value.sortField || '',
sortOrder: goldDetail.value.sortOrder || ''
}, },
page: getObj.value.pageNum,
size: total.value
} }
const res = await API({ url: '/goldDetail/export', data: params }) const res = await API({ url: '/goldDetail/export', data: params })
if (res.code === 200) { if (res.code === 200) {
@ -440,6 +441,24 @@ const getTagText = (state) => {
return '未知状态'; return '未知状态';
} }
} }
const handleMarketChange = (val) => {
if (!Array.isArray(val)) return
const hasHeadquarters = val.includes('总部')
const hasOther = val.some(item => item !== '总部')
if (hasHeadquarters && hasOther) {
if (val[val.length - 1] === '总部') {
//
goldDetail.value.markets = ['总部']
ElMessage.warning('“总部”与其他地区不可同时选择,系统已为您保留“总部”')
} else {
//
goldDetail.value.markets = val.filter(item => item !== '总部')
ElMessage.warning('“总部”与其他地区不可同时选择,系统已为您去除“总部”')
}
}
}
</script> </script>
<template> <template>
<div> <div>
@ -475,7 +494,7 @@ const getTagText = (state) => {
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="goldDetail.markets" placeholder="请选择所属地区" style="width: 180px" clearable multiple <el-select v-model="goldDetail.markets" placeholder="请选择所属地区" style="width: 180px" clearable multiple
:loading="isLoadingArea">
:loading="isLoadingArea" @change="handleMarketChange">
<el-option v-for="item in market" :key="item.value || item" :label="item.label || item" <el-option v-for="item in market" :key="item.value || item" :label="item.label || item"
:value="item.value || item" /> :value="item.value || item" />
</el-select> </el-select>
@ -487,9 +506,12 @@ const getTagText = (state) => {
<el-text class="mx-1" size="large">更新时间</el-text> <el-text class="mx-1" size="large">更新时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间" <el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" /> end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" />
<el-button @click="getToday()" style="margin-left: 10px" :type="activeTimeRange === 'today' ? 'primary' : ''"> </el-button>
<el-button @click="getYesterday()" style="margin-left: 10px" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"> </el-button>
<el-button @click="get7Days()" style="margin-left: 10px" :type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天</el-button>
<el-button @click="getToday()" style="margin-left: 10px"
:type="activeTimeRange === 'today' ? 'primary' : ''"> </el-button>
<el-button @click="getYesterday()" style="margin-left: 10px"
:type="activeTimeRange === 'yesterday' ? 'primary' : ''"> </el-button>
<el-button @click="get7Days()" style="margin-left: 10px"
:type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天</el-button>
<el-button type="success" @click="reset()">重置</el-button> <el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button> <el-button type="primary" @click="search()">查询</el-button>
@ -589,8 +611,7 @@ const getTagText = (state) => {
<el-table-column prop="fileName" label="文件名" /> <el-table-column prop="fileName" label="文件名" />
<el-table-column prop="state" label="状态"> <el-table-column prop="state" label="状态">
<template #default="scope"> <template #default="scope">
<el-tag :type="getTagType(scope.row.state)"
:effect="scope.row.state === 3 ? 'light' : 'plain'">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }} {{ getTagText(scope.row.state) }}
</el-tag> </el-tag>
</template> </template>

Loading…
Cancel
Save