Browse Source

删除404未排查

lihuilin/feature-20250718094329-25周年庆后台
lihuilin 4 weeks ago
parent
commit
64fa2af662
  1. 5
      activitylink/.env.development
  2. 5
      activitylink/.env.production
  3. 2
      activitylink/index.html
  4. 1043
      activitylink/package-lock.json
  5. 39
      activitylink/src/api/manage/gift.js
  6. 52
      activitylink/src/api/manage/level.js
  7. 0
      activitylink/src/global.d.ts
  8. 5
      activitylink/src/router/index.js
  9. 13
      activitylink/src/views/choujiang/index.vue
  10. 116
      activitylink/src/views/zhongchou/gift/index.vue
  11. 541
      activitylink/src/views/zhongchou/level/index.vue
  12. 17
      activitylink/vite.config.js

5
activitylink/.env.development

@ -3,12 +3,9 @@ VITE_ENV = 'development'
VITE_OUTPUT_DIR = 'dev'
# public path
VITE_PUBLIC_PATH = /
#新数据接口
# VITE_APP_API_BASE_URL = "http://39.101.133.168:8828/link"
# VITE_APP_BASE_API = 'http://47.92.148.30:3003/mock/3267'
# VITE_APP_BASE_API = 'http://39.98.127.73/price'
VITE_APP_BASE_API = '/api'
# VITE_APP_BASE_API = '/api'
# Whether to open mock
VITE_USE_MOCK = true

5
activitylink/.env.production

@ -10,11 +10,6 @@ VITE_USE_MOCK = true
#新数据接口
# VITE_APP_API_BASE_URL = https://api.homilychart.com/link
# Whether to enable gzip or brotli compression
# Optional: gzip | brotli | none
# If you need multiple forms, you can use `,` to separate
VITE_BUILD_COMPRESS = 'none'
# Whether to delete origin files when using compress, default false
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false

2
activitylink/index.html

@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + Vue</title>
<title>周年庆后台 V1.0</title>
</head>
<body>
<div id="app"></div>

1043
activitylink/package-lock.json
File diff suppressed because it is too large
View File

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

@ -1,9 +1,42 @@
import request from '@/utils/request'
export function deleteUser(id) {
//奖品新增
export function addprize(params) {
return request({
url: '/admin/prize/update',
url: 'admin/prize/add',
method: 'post',
params: { id }
params: params
})
}
// 查询所有奖品和对应等级并排序
export function prizelist(params) {
return request({
url: 'api/prize/list',
method: 'post',
params: params
})
}
// 奖品删除
export function deleteprize(params) {
return request({
url: 'admin/prize/delete',
method: 'post',
params: params
})
}
//奖品分页查询
export function getprizelimit(params) {
return request({
url: 'admin/prize/list',
method: 'post',
params: params
})
}
// 根据id查询奖品
export function getprizebyid(params) {
return request({
url: 'admin/prize/detail',
method: 'post',
params: params
})
}

52
activitylink/src/api/manage/level.js

@ -1,10 +1,50 @@
import request from '@/utils/request'
export function deleteUser() {
// 等级查询
export function getLevelList(params) {
return request({
url: '/admin/grade/list',
method: 'post',
params: params
})
}
// 等级新增
export function addLevel(data) {
return request({
url: '/admin/funding/getActivity',
method: 'get',
url: '/admin/grade/add',
method: 'post',
data,
headers: {
'Content-Type': 'application/json'
}
})
}
}
// 删除等级
export function deleteGrade(id) {
return request({
url: '/admin/grade/delete',
method: 'post',
params: { id }
})
}
// 根据id查询等级
export function getgradedetails(params) {
return request({
url: 'admin/grade/details',
method: 'post',
params: params
})
}
// 修改等级
export function updateGrade(data) {
return request({
url: 'admin/grade/update',
method: 'post',
data,
headers: {
'Content-Type': 'application/json'
}
})
}

0
activitylink/src/global.d.ts

5
activitylink/src/router/index.js

@ -13,11 +13,6 @@ const routes = [
// ]
},
{
path: '/choujiang',
name: 'choujiang',
component: () => import('../views/choujiang/index.vue'),
},
{
path: '/zhongchou',
name: 'zhongchou',
component: () => import('../views/zhongchou/index.vue'),

13
activitylink/src/views/choujiang/index.vue

@ -1,13 +0,0 @@
<template>
<div>
抽奖
</div>
</template>
<script setup>
</script>
<style scoped>
</style>

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

@ -10,48 +10,37 @@
<el-button @click="goToimportUsers">导入抽奖用户</el-button>
</div>
<div class="table-container" style="flex: 1; overflow-y: auto;">
<el-table :data="currentPageData" style="width: 100%" class="gift-table">
<el-table-column prop="id" label="ID" width="100" align="center"></el-table-column>
<el-table-column label="图片" width="200" align="center">
<template #default="scope">
<!-- 使用作用域插槽显示当前行的图片 -->
<img
v-if="scope.row.image"
:src="getImageUrl(scope.row.image)"
style="max-width: 100px; max-height: 30px;"
>
<el-icon v-else :size="20" color="#67C23A">
<Check />
</el-icon>
</template>
</el-table-column>
<el-table-column prop="name" label="名称" width="300" align="center"></el-table-column>
<el-table-column prop="level" label="等级" width="200" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button size="default" @click="goToimportFixedList(scope.row)">导入内定名单</el-button>
<el-button size="default" @click="editGift(scope.row)">编辑</el-button>
<el-button size="default" type="danger" @click="deleteGift(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-table :data="tableData" style="width: 100%" class="gift-table">
<el-table-column prop="id" label="ID" width="100" align="center"></el-table-column>
<el-table-column label="礼品图片" width="200" align="center">
<template #default="scope">
<!-- 使用作用域插槽显示当前行的图片 -->
<img v-if="scope.row.imageUrl" :src="getImageUrl(scope.row.imageUrl)"
style="max-width: 100px; max-height: 30px;">
<el-icon v-else :size="20" color="#67C23A">
<Check />
</el-icon>
</template>
</el-table-column>
<el-table-column prop="prizeName" label="名称" width="300" align="center"></el-table-column>
<el-table-column prop="gradeName" label="等级" width="200" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button size="default" @click="goToimportFixedList(scope.row)">导入内定名单</el-button>
<el-button size="default" @click="editGift(scope.row)">编辑</el-button>
<el-button size="default" type="danger" @click="deleteGift(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- 礼品表格 -->
</div>
<!-- 分页控件 -->
<el-pagination
class="pagination"
v-model:current-page="pagination.pageNum"
v-model:page-size="pagination.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length"
:page-sizes="[10, 20, 50, 100]"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<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">
</el-pagination>
<!-- 添加/编辑礼品对话框 -->
@ -71,13 +60,10 @@
</el-select>
</el-form-item>
<el-form-item label="礼品图片">
<el-upload
action="#"
list-type="picture-card"
:auto-upload="false"
:on-change="handleImageChange"
>
<el-icon><Plus /></el-icon>
<el-upload action="#" list-type="picture-card" :auto-upload="false" :on-change="handleImageChange">
<el-icon>
<Plus />
</el-icon>
</el-upload>
</el-form-item>
</el-form>
@ -92,11 +78,12 @@
</template>
<script setup>
import { ref, computed } from 'vue'
import { ref, computed, onMounted } from 'vue'
import { Check, Plus } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useRouter } from 'vue-router';
import { usegiftFixedListStone } from '@/stone/giftFixedListStone';
import { usegiftFixedListStone } from '@/stone/giftFixedListStone';
import { getGiftList } from '@/api/manage/gift';
const router = useRouter();
// URL
const getImageUrl = (path) => {
@ -106,27 +93,9 @@ const getImageUrl = (path) => {
}
return path
}
const tableData = ref([])
const giftStore = usegiftFixedListStone();
// -
const tableData = ref([
{ id: 1, image: '@/img/image.png', name: 'zimomo', level: '特等奖' },
{ id: 2, image: '@/img/image.png', name: '高级耳机', level: '一等奖' },
{ id: 3, image: '@/img/image.png', name: '智能手表', level: '二等奖' },
{ id: 4, image: '@/img/image.png', name: '蓝牙音箱', level: '三等奖' },
{ id: 5, image: '@/img/image.png', name: '充电宝', level: '四等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
{ id: 6, image: '@/img/image.png', name: 'U盘', level: '五等奖' },
])
//
const pagination = ref({
pageNum: 1,
@ -134,13 +103,6 @@ const pagination = ref({
total: 0
})
// -
const currentPageData = computed(() => {
const start = (pagination.value.pageNum - 1) * pagination.value.pageSize
const end = start + pagination.value.pageSize
return tableData.value.slice(start, end)
})
//
const handleSizeChange = (val) => {
pagination.value.pageSize = val
@ -194,7 +156,7 @@ const submitForm = () => {
...form.value
})
}
dialogVisible.value = false
ElMessage.success('操作成功')
}
@ -226,6 +188,12 @@ const goToimportUsers = () => {
const handleImageChange = (file) => {
form.value.image = file.raw
}
onMounted(() => {
getGiftList().then(response => {
tableData.value = response.data.list
})
})
</script>
<style scoped>
@ -247,8 +215,10 @@ const handleImageChange = (file) => {
.action-buttons {
margin-bottom: 20px;
}
.table-container {
max-height: 600px; /* 或者根据你的页面布局调整 */
max-height: 600px;
/* 或者根据你的页面布局调整 */
overflow-y: auto;
}

541
activitylink/src/views/zhongchou/level/index.vue

@ -1,337 +1,252 @@
<template>
<el-card style="margin-top: 50px; min-height: 90vh; max-height: 90vh; display: flex; flex-direction: column;">
<div class="level-management-container" style="flex: 1; overflow-y: auto;">
<h2>等级管理</h2>
<!-- 添加等级按钮 -->
<div class="action-buttons">
<el-button type="primary" @click="showAddDialog">添加等级</el-button>
</div>
<!-- 等级表格 -->
<div class="table-container">
<el-table :data="currentPageData" style="width: 100%" :row-style="{ height: '55px' }">
<el-table-column type="index" label="ID" width="150" align="center" />
<el-table-column prop="gradeName" label="等级名称" width="200" align="center" />
<el-table-column prop="num" label="数量" width="250" align="center" />
<el-table-column prop="numPeople" label="每轮抽取人数" width="300" align="center" />
<el-table-column prop="sort" label="排序" width="200" align="center" />
<el-table-column fixed="right" label="操作" align="center">
<template #default="scope">
<div style="display: flex; gap: 10px; justify-content: center;">
<el-button size="default" @click="editLevel(scope.row)">编辑</el-button>
<el-button size="default" @click=setmor>设置多个</el-button>
<el-button size="default" type="danger" @click="deleteLevel(scope.row)">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
</div>
<el-card style="margin-top: 50px; min-height: 90vh; max-height: 90vh; display: flex; flex-direction: column;">
<div class="level-management-container" style="flex: 1; overflow-y: auto;">
<h2>等级管理</h2>
<!-- 添加等级按钮 -->
<div class="action-buttons">
<el-button type="primary" @click="showAddDialog">添加等级</el-button>
</div>
<!-- 分页 -->
<el-pagination
class="pagination"
v-model:current-page="pagination.pageNum"
v-model:page-size="pagination.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length"
:page-sizes="[10, 20, 50, 100]"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<!-- 添加/编辑等级对话框 -->
<el-dialog v-model="dialogVisible" :title="dialogTitle" width=400px @closed="resetForm">
<el-form :model="form" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="form.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input-number v-model="form.num" :precision="0" :min="0" placeholder="请输入数量" style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input-number v-model="form.numPeople" :precision="0" :min="0" placeholder="请输入抽取人数" style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input-number v-model="form.sort" :precision="0" :min="0" placeholder="请输入排序等级" style="width: 100%;"></el-input-number>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="submitForm">确认</el-button>
</span>
</template>
</el-dialog>
<!-- 设置多个对话框 -->
<!-- 添加/编辑等级对话框 -->
<el-dialog v-model="setmore" :title="setTitle" width=400px @closed="resetForm">
<el-form :model="form" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="form.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input-number v-model="form.num" :precision="0" :min="0" placeholder="请输入数量" style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input-number v-model="form.numPeople" :precision="0" :min="0" placeholder="请输入抽取人数" style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input-number v-model="form.sort" :precision="0" :min="0" placeholder="请输入排序等级" style="width: 100%;"></el-input-number>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="setmore = false">取消</el-button>
<el-button type="primary" @click="submitForm">确认</el-button>
</span>
</template>
</el-dialog>
</el-card>
</template>
<script setup>
import { ref, computed,onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
// import { deleteUser } from '@/api/manage/level'
import { deleteUser } from '@/api/manage/level'
// import axios from 'axios';
//
const tableData = ref([
{
id: 1,
gradeName: '等级一',
num: 100,
numPeople: 10,
sort: 1
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
},
{
id: 2,
gradeName: '等级二',
num: 200,
numPeople: 20,
sort: 2
}
])
<!-- 等级表格 -->
<div class="table-container">
<el-table :data="tableData" style="width: 100%" :row-style="{ height: '55px' }">
<el-table-column prop="id" type="index" label="ID" width="100px" fixed="left" />
<el-table-column prop="gradeName" label="等级名称" width="200" align="center" />
<el-table-column prop="amount" label="数量" width="250" align="center" />
<el-table-column prop="perWin" label="每轮抽取人数" width="300" align="center" />
<el-table-column prop="sort" label="排序" width="200" align="center" />
<el-table-column prop="operation" fixed="right" label="操作" align="center">
<template #default="scope">
<div style="display: flex; gap: 10px; justify-content: center;">
<el-button text type="warning" @click="editLevel(scope.row)">编辑</el-button>
<el-button text type="primary" @click=setmor>设置多个</el-button>
<el-button text type="danger" @click="deleteLevel(scope.row)">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
const setmore=ref(false)
//
const pagination = ref({
pageNum: 1,
pageSize: 10
})
const currentPageData = computed(() => {
const start = (pagination.value.pageNum - 1) * pagination.value.pageSize
const end = start + pagination.value.pageSize
return tableData.value.slice(start, end)
})
const handleSizeChange = (val) => {
pagination.value.pageSize = val
pagination.value.pageNum = 1
}
onMounted(() => {
//
<!-- 分页 -->
<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" />
<!-- 添加/编辑等级对话框 -->
<el-dialog v-model="dialogVisible" :title="dialogTitle" width=400px @closed="resetForm">
<el-form :model="form" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="form.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input v-model="form.amount" :precision="0" :min="0" placeholder="请输入数量"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input v-model="form.perWin" :precision="0" :min="0" placeholder="请输入抽取人数"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input v-model="form.sort" :precision="0" :min="0" placeholder="请输入排序等级"
style="width: 100%;"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="submitForm">确认</el-button>
</span>
</template>
</el-dialog>
<!-- 设置多个对话框 -->
<!-- 添加/编辑等级对话框 -->
<el-dialog v-model="setmore" :title="setTitle" width=400px @closed="resetForm">
<el-form :model="form" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="form.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input-number v-model="form.amount" :precision="0" :min="0" placeholder="请输入数量"
style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input-number v-model="form.perWin" :precision="0" :min="0" placeholder="请输入抽取人数"
style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input-number v-model="form.sort" :precision="0" :min="0" placeholder="请输入排序等级"
style="width: 100%;"></el-input-number>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="setmore = false">取消</el-button>
<el-button type="primary" @click="submitForm">确认</el-button>
</span>
</template>
</el-dialog>
</el-card>
</template>
deleteUser().then(response => {
console.log('删除成功:', response)
}).catch(error => {
console.error('删除失败:', error)
})
})
<script setup>
import { ref, computed, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getLevelList, addLevel, deleteGrade, updateGrade } from '@/api/manage/level'
const tableData = ref([])
const pagination = ref({
pageNum: 1,
pageSize: 10,
total:0
})
const setmore = ref(false)
const handleSizeChange = (val) => {
pagination.value.pageSize = val
pagination.value.pageNum = 1
getLevels()
}
const handleCurrentChange = (val) => {
pagination.value.pageNum = val
getLevels()
}
//
const setTitle = ref('设置多个')
const setmor = () => {
setmore.value = true
}
const dialogVisible = ref(false)
const dialogTitle = ref('')
const form = ref({
id: null,
gradeName: '',
amount: '',
perWin: '',
sort: ''
})
//
const showAddDialog = () => {
dialogTitle.value = '添加等级'
const handleCurrentChange = (val) => {
pagination.value.pageNum = val
}
//
const setTitle = ref('设置多个')
const setmor=()=>{
setmore.value=true
}
dialogVisible.value = true
}
const dialogVisible = ref(false)
const dialogTitle = ref('添加等级')
const form = ref({
id: null,
gradeName: '',
num: null,
numPeople: null,
sort: null
})
//
const showAddDialog = () => {
dialogTitle.value = '添加等级'
form.value = {
id: null,
gradeName: '',
num: null,
numPeople: null,
sort: null
//
const editLevel = (row) => {
dialogTitle.value = '编辑等级'
form.value = { ...row }
dialogVisible.value = true
}
const getLevels = async () => {
try {
const res = await getLevelList({
pageNum: pagination.value.pageNum,
pageSize: pagination.value.pageSize
})
if (res.code === 200) {
tableData.value = res.data.list
pagination.value.total = res.data.total
} else {
ElMessage.error(res.message || '获取数据失败')
}
dialogVisible.value = true
} catch (error) {
console.error('请求失败:', error)
ElMessage.error('请求失败,请重试')
}
//
const editLevel = (row) => {
dialogTitle.value = '编辑等级'
form.value = { ...row }
dialogVisible.value = true
}
//
const submitForm = async () => {
if (!form.value.gradeName || form.value.num === '' || form.value.sort === '' || form.value.perWin === '') {
ElMessage.error('请填写完整信息')
return
}
//
const submitForm = () => {
if (!form.value.gradeName || form.value.num === null || form.value.sort === null) {
ElMessage.error('请填写完整信息')
return
try {
const data = {
gradeName: form.value.gradeName,
amount: form.value.amount,
sort: form.value.sort,
perWin: form.value.perWin
}
if (form.value.id) {
//
const index = tableData.value.findIndex(item => item.id === form.value.id)
if (index !== -1) {
tableData.value[index] = { ...form.value }
}
const response = await addLevel(data)
if (response.code === 200) {
ElMessage.success('添加成功')
dialogVisible.value = false
getLevels()
} else {
//
const newId = tableData.value.length > 0 ? Math.max(...tableData.value.map(item => item.id)) + 1 : 1
tableData.value.push({
id: newId,
...form.value
})
ElMessage.error(response.message || '添加失败')
}
dialogVisible.value = false
ElMessage.success('操作成功')
}
//
const deleteLevel = (row) => {
ElMessageBox.confirm('确定要删除该等级吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
tableData.value = tableData.value.filter(item => item.id !== row.id)
ElMessage.success('删除成功')
}).catch(() => {
ElMessage.info('已取消删除')
})
} catch (error) {
console.error('添加等级失败:', error)
ElMessage.error('添加失败,请重试')
}
//
const resetForm = () => {
form.value = {
id: null,
gradeName: '',
num: null,
numPeople: null,
sort: null
}
//
const deleteLevel = (row) => {
ElMessageBox.confirm('确定要删除该等级吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try {
const id = row.id
const response = await deleteGrade({ id })
if (response.code === 200) {
ElMessage.success('删除成功')
getLevels()
} else {
ElMessage.error(response.message || '删除失败')
}
} catch (error) {
console.error('删除失败:', error)
ElMessage.error('删除失败,请重试')
}
}).catch(() => {
ElMessage.info('已取消删除')
})
}
//
const resetForm = () => {
form.value = {
gradeName: '',
amount: '',
perWin: '',
sort: ''
}
</script>
<style scoped>
.level-management-container {
padding: 20px;
width: 100%;
box-sizing: border-box;
min-height: 80vh;
}
.pagination {
}
onMounted(() => {
getLevels()
})
</script>
<style scoped>
.level-management-container {
padding: 20px;
width: 100%;
box-sizing: border-box;
min-height: 80vh;
}
.pagination {
padding: 10px 20px;
background-color: #fff;
border-top: 1px solid #ebeef5;
display: flex;
justify-content: flex-start; /* 改为左对齐 */
justify-content: flex-start;
/* 改为左对齐 */
}
.action-buttons {
margin-bottom: 20px;
}
.table-container {
max-height: 600px;
overflow-y: auto;
}
</style>
.action-buttons {
margin-bottom: 20px;
}
.table-container {
max-height: 600px;
overflow-y: auto;
}
</style>

17
activitylink/vite.config.js

@ -9,22 +9,13 @@ export default defineConfig({
'@': path.resolve(__dirname, './src')
}
},
// server: {
// proxy: {
// '/api': {
// target: 'http://39.98.127.73',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/api/, '/price/admin'),
// },
// },
// },
server: {
proxy: {
'/api': {
target: 'https://dbqb.nfdxy.net/devLotApi', // 后端基础地址
'/admin': {
target: 'http://localhost:12699', // 后端基础地址https://dbqb.nfdxy.net/devLotApi
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''), // 移除 /api 前缀
// 或者更精确的重写(根据后端路径调整):
rewrite: (path) => path
// 或者更精确的重写(根据后端路径调整):.replace(/^\/api/, '')
// rewrite: (path) => path.replace(/^\/api\/admin/, '/admin'),
},
},

Loading…
Cancel
Save