|
@ -1,33 +1,35 @@ |
|
|
<!-- 0特等奖 1一等奖 以此类推 --> |
|
|
|
|
|
<template> |
|
|
<template> |
|
|
<el-card style="margin-top: 50px ; min-height: 90vh; max-height: 90vh;"> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 返回按钮 --> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 搜索栏 --> |
|
|
|
|
|
<div class="gray-container"> |
|
|
|
|
|
<h2>中奖管理</h2> |
|
|
|
|
|
<el-form :inline="true" class="search-bar"> |
|
|
|
|
|
|
|
|
<el-card style="margin-top: 50px; min-height: 90vh; max-height: 90vh;"> |
|
|
|
|
|
<!-- 搜索栏 --> |
|
|
|
|
|
<div class="gray-container"> |
|
|
|
|
|
<h2>中奖管理</h2> |
|
|
|
|
|
<el-form :inline="true" class="search-bar"> |
|
|
<el-form-item label="姓名"> |
|
|
<el-form-item label="姓名"> |
|
|
<el-input v-model="searchData.name" placeholder="请输入姓名"></el-input> |
|
|
|
|
|
|
|
|
<el-input v-model="searchParams.username" placeholder="请输入姓名"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="精网号"> |
|
|
<el-form-item label="精网号"> |
|
|
<el-input |
|
|
|
|
|
v-model="searchData.jingwangId" |
|
|
|
|
|
placeholder="请输入精网号" |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
v-model="searchParams.jwcode" |
|
|
|
|
|
placeholder="请输入精网号" |
|
|
@input="handleJingwangIdInput" |
|
|
@input="handleJingwangIdInput" |
|
|
></el-input> |
|
|
></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="中奖等级"> |
|
|
<el-form-item label="中奖等级"> |
|
|
<el-select v-model="searchData.prizeLevel" placeholder="请选择" class="prize-level-select"> |
|
|
|
|
|
|
|
|
<!-- 增加下拉框宽度 --> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="searchParams.gradeName" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
class="prize-level-select" |
|
|
|
|
|
style="width: 220px"> <!-- 增加宽度到220px --> |
|
|
<el-option label="全部" value=""></el-option> |
|
|
<el-option label="全部" value=""></el-option> |
|
|
<el-option label="特等奖" value="0"></el-option> |
|
|
|
|
|
<el-option label="一等奖" value="1"></el-option> |
|
|
|
|
|
<!-- 其他选项... --> |
|
|
|
|
|
|
|
|
<el-option label="特等奖" value="特等奖"></el-option> |
|
|
|
|
|
<el-option label="一等奖" value="一等奖"></el-option> |
|
|
|
|
|
<el-option label="二等奖" value="二等奖"></el-option> |
|
|
|
|
|
<el-option label="三等奖" value="三等奖"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button type="primary">搜索</el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" @click="handleSearch">搜索</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button @click="handleReset">重置</el-button> |
|
|
<el-button @click="handleReset">重置</el-button> |
|
@ -39,217 +41,140 @@ |
|
|
|
|
|
|
|
|
<!-- 表格 --> |
|
|
<!-- 表格 --> |
|
|
<div class="table-container"> |
|
|
<div class="table-container"> |
|
|
<el-table :data="currentPageData" style="width: 100%" :row-style="{ height: '55px' }"> |
|
|
|
|
|
<el-table-column prop="id" label="ID" width="100" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="name" label="姓名" width="180" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="jingwangId" label="精网号" width="250" align="center"></el-table-column> |
|
|
|
|
|
<!-- <el-table-column prop="prizeLevel" label="中奖等级" width="200" align="center"></el-table-column> --> |
|
|
|
|
|
<el-table-column label="中奖等级" width="200" align="center"> |
|
|
|
|
|
<template #default="scope"> |
|
|
|
|
|
<span v-if="scope.row.prizeLevel == '0' ">特等奖</span> |
|
|
|
|
|
<span v-if="scope.row.prizeLevel == '1' ">一等奖</span> |
|
|
|
|
|
<span v-if="scope.row.prizeLevel == '2' ">二等奖</span> |
|
|
|
|
|
<span v-if="scope.row.prizeLevel == '3' ">三等奖</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column prop="prizeItem" label="所中礼品" width="300" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="prizeTime" label="中奖时间" align="center"></el-table-column> |
|
|
|
|
|
|
|
|
<el-table :data="tableData" style="width: 100%" :row-style="{ height: '55px' }"> |
|
|
|
|
|
<el-table-column prop="username" label="姓名" width="180" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="jwcode" label="精网号" width="250" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="gradeName" label="中奖等级" width="200" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="prizeName" label="所中礼品" width="300" align="center"></el-table-column> |
|
|
|
|
|
<el-table-column prop="winTime" label="中奖时间" align="center"></el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 分页 --> |
|
|
|
|
|
<el-pagination |
|
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
:current-page="currentPage" |
|
|
|
|
|
:page-sizes="[10, 20, 50, 100]" |
|
|
|
|
|
:page-size="pageSize" |
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
|
:total="tableData.length" |
|
|
|
|
|
> |
|
|
|
|
|
</el-pagination> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 修改后的分页组件 --> |
|
|
|
|
|
<el-pagination |
|
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
:current-page="searchParams.pageNum" |
|
|
|
|
|
:page-sizes="[10, 20, 50, 100]" |
|
|
|
|
|
:page-size="searchParams.pageSize" |
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
|
:total="total"> |
|
|
|
|
|
</el-pagination> |
|
|
</el-card> |
|
|
</el-card> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script setup> |
|
|
<script setup> |
|
|
import { ref, computed } from 'vue' |
|
|
|
|
|
import { useRouter } from 'vue-router' |
|
|
|
|
|
|
|
|
import { ref, onMounted } from 'vue' |
|
|
import { getWinList } from '@/api/manage/win' |
|
|
import { getWinList } from '@/api/manage/win' |
|
|
const router = useRouter() |
|
|
|
|
|
|
|
|
|
|
|
// 响应式数据 |
|
|
|
|
|
const searchData = ref({ |
|
|
|
|
|
name: '', |
|
|
|
|
|
jingwangId: '', |
|
|
|
|
|
prizeLevel: '' |
|
|
|
|
|
|
|
|
// 搜索参数 |
|
|
|
|
|
const searchParams = ref({ |
|
|
|
|
|
pageNum: 1, |
|
|
|
|
|
pageSize: 10, |
|
|
|
|
|
username: '', |
|
|
|
|
|
gradeName: '', |
|
|
|
|
|
jwcode: '' |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
const tableData = ref([ |
|
|
|
|
|
{ |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, { |
|
|
|
|
|
id: 1, |
|
|
|
|
|
name: '张家伟', |
|
|
|
|
|
jingwangId: '90047666', |
|
|
|
|
|
prizeLevel: '0', |
|
|
|
|
|
prizeItem: 'zimomo', |
|
|
|
|
|
prizeTime: '2025-07-12 14:05:30' |
|
|
|
|
|
}, |
|
|
|
|
|
// 可以继续添加更多数据... |
|
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
const currentPage = ref(1) |
|
|
|
|
|
const pageSize = ref(10) |
|
|
|
|
|
|
|
|
|
|
|
// 当前页数据计算属性 |
|
|
|
|
|
const currentPageData = computed(() => { |
|
|
|
|
|
const start = (currentPage.value - 1) * pageSize.value |
|
|
|
|
|
const end = start + pageSize.value |
|
|
|
|
|
return tableData.value.slice(start, end) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// const currentPageData = computed(() => { |
|
|
|
|
|
// const start = (currentPage.value - 1) * pageSize.value |
|
|
|
|
|
// const end = start + pageSize.value |
|
|
|
|
|
// return tableData.value.slice(start, end) |
|
|
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 表格数据 |
|
|
|
|
|
const tableData = ref([]) |
|
|
|
|
|
const total = ref(0) |
|
|
|
|
|
|
|
|
|
|
|
// 获取中奖列表(修改后的调用方式) |
|
|
|
|
|
const fetchWinList = async () => { |
|
|
|
|
|
try { |
|
|
|
|
|
// 创建请求数据对象(排除分页参数) |
|
|
|
|
|
const requestData = { |
|
|
|
|
|
username: searchParams.value.username, |
|
|
|
|
|
gradeName: searchParams.value.gradeName, |
|
|
|
|
|
jwcode: searchParams.value.jwcode |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 调用API,传递pageNum, pageSize作为查询参数,其他数据作为请求体 |
|
|
|
|
|
const res = await getWinList( |
|
|
|
|
|
searchParams.value.pageNum, |
|
|
|
|
|
searchParams.value.pageSize, |
|
|
|
|
|
requestData |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if (res.code === 200) { |
|
|
|
|
|
tableData.value = res.data.list |
|
|
|
|
|
total.value = res.data.total |
|
|
|
|
|
} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('获取中奖列表失败:', error) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 搜索 |
|
|
|
|
|
const handleSearch = () => { |
|
|
|
|
|
searchParams.value.pageNum = 1 // 重置为第一页 |
|
|
|
|
|
fetchWinList() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 返回上一页 |
|
|
|
|
|
const goBack = () => { |
|
|
|
|
|
router.back() |
|
|
|
|
|
|
|
|
// 重置搜索 |
|
|
|
|
|
const handleReset = () => { |
|
|
|
|
|
searchParams.value = { |
|
|
|
|
|
pageNum: 1, // 重置为第一页 |
|
|
|
|
|
pageSize: 10, |
|
|
|
|
|
username: '', |
|
|
|
|
|
gradeName: '', |
|
|
|
|
|
jwcode: '' |
|
|
|
|
|
} |
|
|
|
|
|
fetchWinList() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 导出数据 |
|
|
// 导出数据 |
|
|
const handleExport = () => { |
|
|
const handleExport = () => { |
|
|
console.log('Export Data') |
|
|
|
|
|
|
|
|
console.log('导出数据') |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 分页 size 改变 |
|
|
|
|
|
|
|
|
// 每页数量改变 |
|
|
const handleSizeChange = (val) => { |
|
|
const handleSizeChange = (val) => { |
|
|
pageSize.value = val |
|
|
|
|
|
currentPage.value = 1 |
|
|
|
|
|
|
|
|
searchParams.value.pageSize = val |
|
|
|
|
|
searchParams.value.pageNum = 1 // 重置为第一页 |
|
|
|
|
|
fetchWinList() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 当前页改变 |
|
|
// 当前页改变 |
|
|
const handleCurrentChange = (val) => { |
|
|
const handleCurrentChange = (val) => { |
|
|
currentPage.value = val |
|
|
|
|
|
|
|
|
searchParams.value.pageNum = val |
|
|
|
|
|
fetchWinList() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 输入精网号处理 |
|
|
|
|
|
|
|
|
// 精网号输入处理 |
|
|
const handleJingwangIdInput = (value) => { |
|
|
const handleJingwangIdInput = (value) => { |
|
|
searchData.value.jingwangId = value.replace(/\D/g, '') |
|
|
|
|
|
|
|
|
searchParams.value.jwcode = value.replace(/\D/g, '') |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 重置搜索条件 |
|
|
|
|
|
const handleReset = () => { |
|
|
|
|
|
searchData.value = { |
|
|
|
|
|
name: '', |
|
|
|
|
|
jingwangId: '', |
|
|
|
|
|
prizeLevel: '' |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 页面加载时获取数据 |
|
|
|
|
|
onMounted(() => { |
|
|
|
|
|
fetchWinList() |
|
|
|
|
|
}) |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
<style scoped> |
|
|
.info-bar { |
|
|
|
|
|
margin: 10px 0; |
|
|
|
|
|
font-size: 16px; |
|
|
|
|
|
|
|
|
.gray-container { |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
background-color: #ffffff; |
|
|
|
|
|
padding: 20px; |
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
min-height: 80vh; |
|
|
|
|
|
overflow-x: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.search-bar { |
|
|
.search-bar { |
|
|
margin-bottom: 20px; |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 添加下拉框样式 */ |
|
|
.prize-level-select { |
|
|
.prize-level-select { |
|
|
width: 200px; /* 调整中奖等级选择框的宽度 */ |
|
|
|
|
|
|
|
|
width: 220px; /* 设置下拉框宽度 */ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.table-container { |
|
|
.table-container { |
|
|
height: 600px; /* 根据需要调整高度 */ |
|
|
|
|
|
overflow-y: auto; /* 启用垂直滚动条 */ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.gray-container { |
|
|
|
|
|
width: 100%; /* 宽度自适应 */ |
|
|
|
|
|
background-color: #ffffff; /* 浅灰色背景 */ |
|
|
|
|
|
padding: 20px; /* 内边距 */ |
|
|
|
|
|
box-sizing: border-box; /* 包含内边距在总宽度内 */ |
|
|
|
|
|
min-height: 80vh; /* 设置最小高度 */ |
|
|
|
|
|
overflow-x: hidden; |
|
|
|
|
|
|
|
|
height: 600px; |
|
|
|
|
|
overflow-y: auto; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |