|
|
@ -6,62 +6,54 @@ |
|
|
|
<el-card style="min-height: 90vh; max-height: 90vh;"> |
|
|
|
<div style="margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center;"> |
|
|
|
<div style="display: flex; gap: 10px; align-items: center;"> |
|
|
|
<span style="white-space: nowrap;">姓名:</span> |
|
|
|
<el-input v-model="searchObj.name" placeholder="请输入姓名" style="width: 150px;" clearable></el-input> |
|
|
|
|
|
|
|
<span style="white-space: nowrap; margin-left: 10px;">精网号:</span> |
|
|
|
<el-input v-model="searchObj.jwcode" placeholder="请输入精网号" style="width: 180px;" clearable |
|
|
|
@input="trimJwcode"></el-input> |
|
|
|
<el-button type="primary" @click="" style="margin-left: 10px;">搜索</el-button> |
|
|
|
姓名:<el-input v-model="searchObj.username" placeholder="请输入姓名" style="width: 150px;" clearable></el-input> |
|
|
|
精网号:<el-input v-model="searchObj.jwcode" placeholder="请输入精网号" style="width: 180px;" clearable @input="trimJwcode"></el-input> |
|
|
|
<el-button type="primary" @click="getFixUsers" style="margin-left: 10px;">搜索</el-button> |
|
|
|
</div> |
|
|
|
<div style="display: flex; gap: 10px;"> |
|
|
|
<el-button type="primary" @click="addUser">添加用户</el-button> |
|
|
|
<el-button type="primary" @click="openAdd">添加用户</el-button> |
|
|
|
<el-button type="success" @click="importExcel">导入Excel</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 用户表格 --> |
|
|
|
<el-table :data="tableData" style="width: 100%;" :row-style="{ height: '60px' }"> |
|
|
|
<el-table-column type="selection" width="200" /> |
|
|
|
<el-table-column prop="id" label="ID" width="250" /> |
|
|
|
<el-table-column prop="name" label="姓名" width="250" /> |
|
|
|
<el-table-column type="index" label="ID" width="250" > |
|
|
|
<template #default="scope"> |
|
|
|
{{ pagination.pageSize * (pagination.pageNum - 1) + scope.$index + 1 }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="username" label="姓名" width="250" /> |
|
|
|
<el-table-column prop="jwcode" label="精网号" width="300" /> |
|
|
|
<el-table-column label="操作"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button size="small" type="danger" @click="deleteUser(scope.row)">删除</el-button> |
|
|
|
<el-button size="small" type="danger" @click="delUser(scope.row)">删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<!-- 底部操作区域 --> |
|
|
|
<div style="margin-top: 20px; display: flex; justify-content: space-between; align-items: center;"> |
|
|
|
<el-button type="danger" @click="batchDelete">批量删除</el-button> |
|
|
|
<div style="display: flex; align-items: center;"> |
|
|
|
<span style="margin-right: 15px;">共{{ total }}条</span> |
|
|
|
<el-select v-model="pageSize" style="width: 120px; margin-right: 15px;"> |
|
|
|
<el-option label="10条/页" :value="10" /> |
|
|
|
<el-option label="20条/页" :value="20" /> |
|
|
|
<el-option label="50条/页" :value="50" /> |
|
|
|
</el-select> |
|
|
|
<el-pagination layout="prev, pager, next" :total="total" :page-size="pageSize" |
|
|
|
v-model:current-page="currentPage" /> |
|
|
|
<el-input v-model="jumpPage" style="width: 80px; margin-left: 15px; margin-right: 10px;" placeholder="页码" /> |
|
|
|
<el-button type="primary" @click="goToPage">前往</el-button> |
|
|
|
<!-- 分页 --> |
|
|
|
<el-pagination class="pagination" v-model:current-page="pagination.pageNum" v-model:page-size="pagination.pageSize" |
|
|
|
layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" :page-sizes="[10, 20, 50, 100]" |
|
|
|
@size-change="handleSizeChange" @current-change="handleCurrentChange" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
|
|
|
|
<el-dialog v-model="addVisible" title="添加用户" width="500" align-center> |
|
|
|
<el-form ref="addForm" :model="winuser" label-width="80px"> |
|
|
|
<el-form-item label="姓名" prop="name"> |
|
|
|
<el-input v-model="winuser.name" placeholder="请输入用户姓名" /> |
|
|
|
<el-form ref="addObj" :model="addObj" label-width="80px"> |
|
|
|
<el-form-item label="姓名" prop="username"> |
|
|
|
<el-input v-model="addObj.username" placeholder="请输入用户姓名" />z |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="精网号" prop="jwcode"> |
|
|
|
<el-input v-model="winuser.jwcode" placeholder="请输入精网号" @input="trimJwcode" /> |
|
|
|
<el-input v-model="addObj.jwcode" placeholder="请输入精网号" @input="trimJwcode" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button @click="cancel">取消</el-button> |
|
|
|
<el-button type="primary" @click="addwinUser"> |
|
|
|
<el-button @click="addVisible = false">取消</el-button> |
|
|
|
<el-button type="primary" @click="submitAdd"> |
|
|
|
确定 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
@ -73,10 +65,15 @@ |
|
|
|
import { ref, computed, onMounted } from 'vue' |
|
|
|
import { useRouter } from 'vue-router' |
|
|
|
import { usegiftFixedListStone } from '@/stone/giftFixedListStone'; |
|
|
|
import { getFixUserList } from '@/api/manage/gift' |
|
|
|
import { getFixUserList, addFixUser, deleteFixUser } from '@/api/manage/gift' |
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus' |
|
|
|
const giftStore = usegiftFixedListStone(); |
|
|
|
const router = useRouter() |
|
|
|
|
|
|
|
const addObj = ref({ |
|
|
|
username:'', |
|
|
|
jwcode:'', |
|
|
|
gradeId:'' |
|
|
|
}) |
|
|
|
const addVisible = ref(false) |
|
|
|
const tableData = ref([]) |
|
|
|
const pagination = ref({ |
|
|
@ -89,6 +86,10 @@ const searchObj = ref({ |
|
|
|
username: '', |
|
|
|
jwcode: '', |
|
|
|
}) |
|
|
|
const openAdd = () => { |
|
|
|
addObj.value = {} |
|
|
|
addVisible.value = true |
|
|
|
} |
|
|
|
// 查全部 |
|
|
|
const getFixUsers = async () => { |
|
|
|
try { |
|
|
@ -110,17 +111,69 @@ const getFixUsers = async () => { |
|
|
|
ElMessage.error('请求失败,请重试') |
|
|
|
} |
|
|
|
} |
|
|
|
// 跳转到指定页 |
|
|
|
const goToPage = () => { |
|
|
|
const page = parseInt(jumpPage.value) |
|
|
|
if (!isNaN(page) && page > 0 && page <= Math.ceil(total.value / pageSize.value)) { |
|
|
|
currentPage.value = page |
|
|
|
// 添加内定用户 |
|
|
|
const submitAdd = async () => { |
|
|
|
if (!addObj.value.username || addObj.value.jwcode === '') { |
|
|
|
ElMessage.error('请填写完整信息') |
|
|
|
return |
|
|
|
} |
|
|
|
jumpPage.value = '' |
|
|
|
try { |
|
|
|
const data = { |
|
|
|
username: addObj.value.username, |
|
|
|
jwcode: addObj.value.jwcode, |
|
|
|
gradeId: addObj.value.gradeId |
|
|
|
} |
|
|
|
console.log('看看添加参数',data) |
|
|
|
const response = await addFixUser(data) |
|
|
|
if (response.code === 200) { |
|
|
|
ElMessage.success('添加成功') |
|
|
|
addVisible.value = false |
|
|
|
getFixUsers() |
|
|
|
} else { |
|
|
|
ElMessage.error(response.message || '添加失败') |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('添加等级失败:', error) |
|
|
|
ElMessage.error('添加失败,请重试') |
|
|
|
} |
|
|
|
} |
|
|
|
// 删除内定用户 |
|
|
|
const delUser = (row) => { |
|
|
|
ElMessageBox.confirm('确定要删除该用户吗?', '提示', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
|
}).then(async () => { |
|
|
|
try { |
|
|
|
const id = String(row.id) |
|
|
|
console.log('删除等级的id是:', id) |
|
|
|
const response = await deleteFixUser(id) |
|
|
|
if (response.code === 200) { |
|
|
|
ElMessage.success('删除成功') |
|
|
|
getFixUsers() |
|
|
|
} else { |
|
|
|
ElMessage.error(response.message || '删除失败') |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('删除失败:', error) |
|
|
|
ElMessage.error('删除失败,请重试') |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
ElMessage.info('已取消删除') |
|
|
|
}) |
|
|
|
} |
|
|
|
const trimJwcode = (value) => { |
|
|
|
searchObj.value.jwcode = value.replace(/\D/g, '') |
|
|
|
} |
|
|
|
const handleSizeChange = (val) => { |
|
|
|
pagination.value.pageSize = val |
|
|
|
pagination.value.pageNum = 1 |
|
|
|
getFixUsers() |
|
|
|
} |
|
|
|
const handleCurrentChange = (val) => { |
|
|
|
pagination.value.pageNum = val |
|
|
|
getFixUsers() |
|
|
|
} |
|
|
|
// 返回上一页 |
|
|
|
const goBack = () => { |
|
|
|
router.back() |
|
|
|