Browse Source

最终合并

lihuilin/feature-20250718094329-25周年庆后台
lihuilin 4 weeks ago
parent
commit
71c77683fb
  1. 25
      activitylink/src/api/manage/user.js
  2. 2
      activitylink/src/router/index.js
  3. 518
      activitylink/src/views/zhongchou/user/index.vue

25
activitylink/src/api/manage/user.js

@ -0,0 +1,25 @@
import request from '@/utils/request'
export function getuserList(data) {
return request({
url: '/admin/isLogin/selectByJwcode',
method: 'post',
data
})
}
export function deleteuserByjwcode(data) {
return request({
url: '/admin/isLogin/deleteUser',
method: 'post',
data
})
}
export function adduserByjwcode(data) {
return request({
url: '/admin/isLogin/addUser',
method: 'post',
data
})
}

2
activitylink/src/router/index.js

@ -85,4 +85,4 @@ router.beforeEach((to, from, next) => {
next();
})
// 暴露
export default router
export default router

518
activitylink/src/views/zhongchou/user/index.vue

@ -1,309 +1,275 @@
<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="handleJwcodeInput"
></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-column label="操作" align="center">
<template #default="scope">
<el-button size="small" type="danger" @click="openDeleteDialog(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<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.jwcode"
placeholder="请输入精网号"
@input="handleJwcodeInput"
></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="jwcode" label="精网号" width="250" align="center"></el-table-column>
<el-table-column prop="createTime" label="中奖时间" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button size="small" type="danger" @click="openDeleteDialog(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<!-- 删除确认对话框 -->
<el-dialog v-model="deleteConfirmVisible" title="提示" width="30%">
<span>您确定删除该用户吗</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="deleteConfirmVisible = false"> </el-button>
<el-button type="primary" @click="confirmDelete"> </el-button>
</span>
</template>
</el-dialog>
<!-- 分页组件 -->
<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-dialog v-model="deleteConfirmVisible" title="提示" width="30%">
<span>您确定删除该用户吗</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="deleteConfirmVisible = false"> </el-button>
<el-button type="primary" @click="confirmDelete"> </el-button>
</span>
</template>
</el-dialog>
<!-- 分页组件 -->
<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-dialog
v-model="centerDialogVisible"
title="添加用户"
width="500"
align-center
@closed="cancel"
>
</el-pagination>
<el-dialog
v-model="centerDialogVisible"
title="添加用户"
width="500"
align-center
@closed="cancel"
>
<el-form ref="addForm" :model="JwUser" :rules="rules" label-width="80px">
<el-form-item label="用户名称" prop="username">
<el-input v-model="JwUser.username" placeholder="请输入用户名称" />
</el-form-item>
<el-form-item label="精网号" prop="jwcode">
<el-input v-model="JwUser.jwcode" placeholder="请输入精网号" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="addUser">
提交
</el-button>
</div>
</template>
</el-dialog>
</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 addForm = ref(
{
username: '',
jwcode: '',
}
);
const deleteConfirmVisible = ref(false)
//
const tableData = ref([])
const total = ref(0)
const centerDialogVisible = ref(false);
const addusershow = () => {
centerDialogVisible.value = true;
<el-form ref="addForm" :model="JwUser" :rules="rules" label-width="80px">
<el-form-item label="精网号" prop="jwcode">
<el-input v-model="JwUser.jwcode" placeholder="请输入精网号" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="addUser">
提交
</el-button>
</div>
</template>
</el-dialog>
</el-card>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { getuserList , deleteuserByjwcode , adduserByjwcode } from '@/api/manage/user'
import { ElMessage } from 'element-plus'
// 使
const searchParams = ref({
pageNum: 1,
pageSize: 10,
jwcode: ""
})
const addForm = ref(
{
jwcode: '',
}
);
const deleteConfirmVisible = ref(false)
//
const tableData = ref([])
const total = ref(0)
const centerDialogVisible = ref(false);
const addusershow = () => {
centerDialogVisible.value = true;
};
const deleteJwcode = ref('')
//
const openDeleteDialog = (row) => {
// activityToDelete.value = row.id
deleteConfirmVisible.value = true
deleteJwcode.value = row.jwcode
deleteConfirmVisible.value = true
}
//
const confirmDelete = async () => {
// if (!activityToDelete.value) {
// ElMessage.warning('ID')
// return
// }
// try {
// const response = await deleteActivityById({activityId: activityToDelete.value})
// if (response.code === 200) {
// ElMessage.success('')
// fetchActivityList() //
// } else {
// ElMessage.error(response.message || '')
// }
// } catch (error) {
// console.error(':', error)
// ElMessage.error('')
// } finally {
// deleteConfirmVisible.value = false
// activityToDelete.value = null
// }
console.log("删除用户")
fetchWinList()
try {
const response = await deleteuserByjwcode({ jwcode: deleteJwcode.value })
if (response.code === 200) {
ElMessage.success('删除成功')
fetchWinList() //
} else {
ElMessage.error(response.message || '删除失败')
}
} catch (error) {
ElMessage.error('删除请求失败,请稍后再试')
console.error('删除错误:', error)
} finally {
deleteConfirmVisible.value = false
}
}
const addUser = () => {
console.log("添加用户")
centerDialogVisible.value = false;
};
const JwUser = ref({
username: '',
jwcode: '',
})
const addUser = async () => {
try {
const response = await adduserByjwcode({
jwcode: JwUser.value.jwcode
});
const validateJwcode = (rule, value, callback) => {
const isNumber = /^\d*$/.test(value);
if (!isNumber) {
callback(new Error('只能输入数字'));
if (response.code === 200) {
ElMessage.success('添加成功');
centerDialogVisible.value = false;
fetchWinList(); //
} else {
callback();
ElMessage.error(response.message || '添加失败');
}
} catch (error) {
ElMessage.error('添加请求失败,请稍后再试');
console.error('添加用户错误:', error);
}
};
const rules = {
username: [
{ required: true, message: '请输入用户名称', trigger: 'blur' }
],
jwcode: [
{ required: true, message: '请输入精网号', trigger: 'blur' },
{ validator: validateJwcode, trigger: 'blur' }
]
const JwUser = ref({
username: '',
jwcode: '',
})
const validateJwcode = (rule, value, callback) => {
const isNumber = /^\d*$/.test(value);
if (!isNumber) {
callback(new Error('只能输入数字'));
} else {
callback();
}
};
const rules = {
username: [
{ required: true, message: '请输入用户名称', trigger: 'blur' }
],
jwcode: [
{ required: true, message: '请输入精网号', trigger: 'blur' },
{ validator: validateJwcode, trigger: 'blur' }
]
}
//
const handleJwcodeInput = (value) => {
searchParams.value.jwcode = value.replace(/\D/g, '')
searchParams.value.jwcode = value.replace(/\D/g, '')
}
const handleSizeChange = (val) => {
searchParams.value.pageSize = val
searchParams.value.pageNum = 1
fetchWinList()
}
const handleCurrentChange = (val) => {
searchParams.value.pageNum = val
fetchWinList()
}
const handleSizeChange = (val) => {
searchParams.value.pageSize = val
searchParams.value.pageNum = 1
fetchWinList()
}
const handleCurrentChange = (val) => {
searchParams.value.pageNum = val
fetchWinList()
}
const cancel = () => {
centerDialogVisible.value = false;
addForm.value.resetFields();
const cancel = () => {
centerDialogVisible.value = false;
addForm.value.resetFields();
};
//
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 fetchWinList = async () => {
try {
const requestData = {
jwcode: searchParams.value.jwcode,
pageNum: searchParams.value.pageNum,
pageSize: searchParams.value.pageSize
}
}
//
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: '',
jwcode: ''
console.log('请求参数:', requestData)
const res = await getuserList(requestData)
console.log('响应数据:', res)
if (res.code === 200) {
tableData.value = res.data.list
console.log('获取用户列表成功:', tableData.value)
total.value = res.data.total
}
//
// activityStone.setSearchUsername('')
// activityStone.setSearchJwcode('')
// winStone.setSearchgradeId('')
fetchWinList()
}
//
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;
} catch (error) {
console.error('获取用户列表失败:', error)
}
.prize-level-select {
width: 220px;
}
.table-container {
height: 600px;
overflow-y: auto;
}
//
const handleSearch = () => {
searchParams.value.pageNum = 1
fetchWinList()
searchParams.value.jwcode = ''
}
//
const handleReset = () => {
searchParams.value = {
pageNum: 1,
pageSize: 10,
username: '',
jwcode: ''
}
</style>
fetchWinList()
}
//
onMounted(() => {
fetchWinList()
})
</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>
Loading…
Cancel
Save