21 changed files with 377 additions and 84 deletions
-
6activitylink/.env.development
-
6activitylink/.env.production
-
1activitylink/package-lock.json
-
1activitylink/package.json
-
34activitylink/src/api/manage/activity.js
-
2activitylink/src/api/manage/gift.js
-
BINactivitylink/src/img/1.jpg
-
BINactivitylink/src/img/2.png
-
BINactivitylink/src/img/3.png
-
5activitylink/src/router/index.js
-
7activitylink/src/utils/request.js
-
36activitylink/src/views/homePage.vue
-
6activitylink/src/views/zhongchou/activity/detail/index.vue
-
2activitylink/src/views/zhongchou/activity/index.vue
-
76activitylink/src/views/zhongchou/activity/set/index.vue
-
9activitylink/src/views/zhongchou/gift/index.vue
-
33activitylink/src/views/zhongchou/index.vue
-
19activitylink/src/views/zhongchou/mainImg/DefaultImage.vue
-
189activitylink/src/views/zhongchou/user/index.vue
-
10activitylink/src/views/zhongchou/winning/index.vue
-
19activitylink/vite.config.js
@ -1,7 +1,7 @@ |
|||||
VITE_ENV = 'development' |
VITE_ENV = 'development' |
||||
VITE_OUTPUT_DIR = 'dev' |
VITE_OUTPUT_DIR = 'dev' |
||||
VITE_PUBLIC_PATH = '/testBack/' |
VITE_PUBLIC_PATH = '/testBack/' |
||||
VITE_APP_BASE_API = 'https://dbqb.nfdxy.net/devLotApi/' |
|
||||
# VITE_APP_BASE_API = 'http://localhost:12699/' |
|
||||
VITE_USE_MOCK = true |
VITE_USE_MOCK = true |
||||
VITE_UPLOAD_URL='/hljw/api/aws/upload' |
|
||||
|
VITE_APP_BASE_API = 'https://dbqb.nfdxy.net/devLotApi' |
||||
|
VITE_UPLOAD_URL='http://39.101.133.168:8828/hljw/api/aws/upload' |
||||
|
# VITE_APP_BASE_API = 'http://localhost:12699/' |
Before Width: 5244 | Height: 2950 | Size: 2.1 MiB |
After Width: 1920 | Height: 1080 | Size: 204 KiB |
After Width: 1020 | Height: 704 | Size: 5.9 KiB |
@ -0,0 +1,189 @@ |
|||||
|
<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-form-item label="姓名"> |
||||
|
<el-input v-model="searchParams.username" placeholder="请输入姓名"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="精网号"> |
||||
|
<el-input |
||||
|
v-model="searchParams.jwcode" |
||||
|
placeholder="请输入精网号" |
||||
|
@input="handleJingwangIdInput" |
||||
|
></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="primary" @click="handleSearch">搜索</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button @click="handleReset">重置</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="primary" @click="addusershow">添加用户</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
|
||||
|
<!-- 表格 --> |
||||
|
<div class="table-container"> |
||||
|
<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> |
||||
|
</div> |
||||
|
</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> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { ref, onMounted } from 'vue' |
||||
|
import { useactivityStone } from '@/stone/activityStone' |
||||
|
import { useWinStone } from '@/stone/winStone' |
||||
|
import { getWinList, getWinLevelList ,exportWinExcel} from '@/api/manage/win' |
||||
|
import { onBeforeRouteLeave } from 'vue-router' |
||||
|
import { ElMessage } from 'element-plus' |
||||
|
const activityStone = useactivityStone() |
||||
|
const winStone = useWinStone() |
||||
|
|
||||
|
// 搜索参数(初始化时使用持久化值) |
||||
|
const searchParams = ref({ |
||||
|
pageNum: 1, |
||||
|
pageSize: 10, |
||||
|
username: "", |
||||
|
jwcode: "" |
||||
|
}) |
||||
|
|
||||
|
|
||||
|
// 表格数据 |
||||
|
const tableData = ref([]) |
||||
|
const total = ref(0) |
||||
|
|
||||
|
|
||||
|
const handleSizeChange = (val) => { |
||||
|
searchParams.value.pageSize = val |
||||
|
searchParams.value.pageNum = 1 |
||||
|
fetchWinList() |
||||
|
} |
||||
|
|
||||
|
const handleCurrentChange = (val) => { |
||||
|
searchParams.value.pageNum = val |
||||
|
fetchWinList() |
||||
|
} |
||||
|
// 获取中奖列表 |
||||
|
const fetchWinList = async () => { |
||||
|
try { |
||||
|
const requestData = { |
||||
|
username: activityStone.searchUsername, |
||||
|
gradeId: "" , |
||||
|
jwcode: activityStone.searchJwcode, |
||||
|
pageNum: searchParams.value.pageNum, |
||||
|
pageSize: searchParams.value.pageSize |
||||
|
} |
||||
|
console.log('请求参数:', requestData) |
||||
|
const res = await getWinList(requestData) |
||||
|
if (res.code === 200) { |
||||
|
tableData.value = res.data.list |
||||
|
console.log('获取中奖列表成功:', tableData.value) |
||||
|
total.value = res.data.total |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.error('获取中奖列表失败:', error) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 搜索 |
||||
|
const handleSearch = () => { |
||||
|
searchParams.value.pageNum = 1 |
||||
|
|
||||
|
// // 更新持久化值 |
||||
|
// activityStone.setSearchUsername(searchParams.value.username) |
||||
|
// activityStone.setSearchJwcode(searchParams.value.jwcode) |
||||
|
// winStone.setSearchgradeId(searchParams.value.gradeId) |
||||
|
|
||||
|
fetchWinList() |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
// 重置搜索 |
||||
|
const handleReset = () => { |
||||
|
searchParams.value = { |
||||
|
pageNum: 1, |
||||
|
pageSize: 10, |
||||
|
username: '', |
||||
|
gradeId: '', |
||||
|
jwcode: '' |
||||
|
} |
||||
|
|
||||
|
// 清空持久化值 |
||||
|
// activityStone.setSearchUsername('') |
||||
|
// activityStone.setSearchJwcode('') |
||||
|
// winStone.setSearchgradeId('') |
||||
|
|
||||
|
fetchWinList() |
||||
|
} |
||||
|
|
||||
|
// 精网号输入处理 |
||||
|
const handleJingwangIdInput = (value) => { |
||||
|
searchParams.value.jwcode = value.replace(/\D/g, '') |
||||
|
} |
||||
|
|
||||
|
// 页面加载时获取数据 |
||||
|
onMounted(() => { |
||||
|
fetchWinList() |
||||
|
}) |
||||
|
|
||||
|
// onBeforeRouteLeave((to, from, next) => { |
||||
|
// // 判断是否跳转到 activity/index 页面 |
||||
|
// if (to.name !== 'zhongchouwinning') { |
||||
|
// // 清空 winStone 中的 gradeId |
||||
|
// winStone.setSearchgradeId('') |
||||
|
|
||||
|
// // 清空 activityStone 中的搜索值 |
||||
|
// activityStone.setSearchUsername('') |
||||
|
// activityStone.setSearchJwcode('') |
||||
|
// } |
||||
|
|
||||
|
// next() // 必须调用 next() |
||||
|
// }) |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.gray-container { |
||||
|
width: 100%; |
||||
|
background-color: #ffffff; |
||||
|
padding: 20px; |
||||
|
box-sizing: border-box; |
||||
|
min-height: 80vh; |
||||
|
overflow-x: hidden; |
||||
|
} |
||||
|
|
||||
|
.search-bar { |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.prize-level-select { |
||||
|
width: 220px; |
||||
|
} |
||||
|
|
||||
|
.table-container { |
||||
|
height: 600px; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue