Browse Source

内定新增

lihuilin/feature-20250718094329-25周年庆后台
lhl 4 weeks ago
parent
commit
06e65c115e
  1. 24
      activitylink/src/api/manage/gift.js
  2. 127
      activitylink/src/views/zhongchou/gift/importFixedList/index.vue
  3. 33
      activitylink/src/views/zhongchou/gift/importuser/index.vue
  4. 2
      activitylink/src/views/zhongchou/gift/index.vue
  5. 3
      activitylink/vite.config.js

24
activitylink/src/api/manage/gift.js

@ -92,7 +92,29 @@ export function deleteUsers(ids) {
export function getFixUserList(data) {
return request({
url: '/admin/user/list/fix',
method: 'get',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 内定用户删除
export function deleteFixUser(id) {
return request({
url: '/admin/user/delete/fix',
method: 'post',
params: { id },
headers:{
'Content-Type': 'application/json'
}
})
}
// 内定用户新增
export function addFixUser(data) {
return request({
url: '/admin/prize/addFixUser',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'

127
activitylink/src/views/zhongchou/gift/importFixedList/index.vue

@ -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()

33
activitylink/src/views/zhongchou/gift/importuser/index.vue

@ -18,7 +18,11 @@
<!-- 用户表格 -->
<el-table :data="tableData" style="width: 100%;" :row-style="{ height: '60px' }" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="70" />
<el-table-column type="index" label="ID" width="200" />
<el-table-column type="index" label="ID" width="200">
<template #default="scope">
{{ pagination.pageSize * (pagination.pageNum - 1) + scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="username" label="姓名" width="200" />
<el-table-column prop="jwcode" label="精网号" width="200" />
<el-table-column label="操作" fixed="right">
@ -38,9 +42,10 @@
<el-option label="20条/页" :value="20" />
<el-option label="50条/页" :value="50" />
</el-select>
<el-pagination layout="prev, pager, next" :total="pagination.total" :page-size="pagination.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>
@ -67,6 +72,7 @@ import { ref, computed, onMounted } from 'vue'
import { useRouter } from 'vue-router'
import { getUserList, addUser, deleteUser, deleteUsers } from '@/api/manage/gift';
import { ElMessage, ElMessageBox } from 'element-plus'
import { pa } from 'element-plus/es/locales.mjs';
const router = useRouter()
const addVisible = ref(false)
const tableData = ref([])
@ -197,17 +203,20 @@ const batchDelete = async () => {
const goBack = () => {
router.back()
}
//
const goToPage = () => {
const page = parseInt(jumpPage.value)
if (!isNaN(page) && page > 0 && page <= Math.ceil(total.value / pageSize.value)) {
currentPage.value = page
}
jumpPage.value = ''
}
const handleSelectionChange = (selection) => {
// id
selectedIds.value = selection.map(row => row.id)
console.log('选中的id们是:', selectedIds.value)
}
const handleSizeChange = (val) => {
pagination.value.pageSize = val
pagination.value.pageNum = 1
getUsers()
}
const handleCurrentChange = (val) => {
pagination.value.pageNum = val
getUsers()
}
const trimJwcode = (value) => {
searchObj.value.jwcode = value.replace(/\D/g, '')

2
activitylink/src/views/zhongchou/gift/index.vue

@ -366,10 +366,12 @@ const beforeUpload = (file) => {
const handleSizeChange = (val) => {
pagination.value.pageSize = val
pagination.value.pageNum = 1
getPrizes()
}
const handleCurrentChange = (val) => {
pagination.value.pageNum = val
getPrizes()
}
onMounted(() => {

3
activitylink/vite.config.js

@ -12,7 +12,8 @@ export default defineConfig({
server: {
proxy: {
'/admin': {
target: 'http://localhost:12699', // 后端基础地址https://dbqb.nfdxy.net/devLotApi
target: 'https://dbqb.nfdxy.net/devLotApi', // 后端基础地址
//http://localhost:12699
changeOrigin: true,
rewrite: (path) => path
// 或者更精确的重写(根据后端路径调整):.replace(/^\/api/, '')

Loading…
Cancel
Save