Browse Source

差跨域

lihuilin/feature-20250718094329-25周年庆后台
lihuilin 4 weeks ago
parent
commit
13ae291aaf
  1. 1
      activitylink/.env.development
  2. 2
      activitylink/src/api/manage/gift.js
  3. 39
      activitylink/src/views/homePage.vue
  4. 66
      activitylink/src/views/zhongchou/activity/index.vue
  5. 2
      activitylink/src/views/zhongchou/gift/index.vue
  6. 436
      activitylink/src/views/zhongchou/level/index.vue
  7. 10
      activitylink/src/views/zhongchou/winning/index.vue

1
activitylink/.env.development

@ -3,3 +3,4 @@ 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 = 'https://dbqb.nfdxy.net/devLotApi/'
VITE_USE_MOCK = true VITE_USE_MOCK = true
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload

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

@ -17,7 +17,7 @@ export function deletePrize(id) {
return request({ return request({
url: '/admin/prize/delete', url: '/admin/prize/delete',
method: 'post', method: 'post',
params: { pageNum,pageSize }
params: { id }
}) })
} }
//奖品分页查询 //奖品分页查询

39
activitylink/src/views/homePage.vue

@ -26,27 +26,26 @@ const username = ref("");
const password = ref(""); const password = ref("");
// username.value=='90038794' && password.value=='697522' // username.value=='90038794' && password.value=='697522'
const loginHandler = async () => { const loginHandler = async () => {
// try {
// const response = await adminlogin({
// username: username.value,
// password: password.value
// })
router.push('/zhongchou/mainimg')
// code == 200
// if (response.code ) {
// const token = response.code
try {
const response = await adminlogin({
username: username.value,
password: password.value
})
// // token localStorage
// localStorage.setItem('token', token)
// ElMessage.success('使')
// router.push('/zhongchou/mainimg')
// } else {
// ElMessage.error(response.message || '')
// }
// } catch (error) {
// ElMessage.error('')
// console.error(':', error)
// }
if (response.code===200 ) {
const token = response.code
// token localStorage
localStorage.setItem('token', token)
ElMessage.success('登录成功,欢迎您使用本系统')
router.push('/zhongchou/mainimg')
} else {
ElMessage.error(response.message || '登录失败,请检查用户名或密码')
}
} catch (error) {
ElMessage.error('登录失败,请稍后再试')
console.error('登录错误:', error)
}
} }
</script> </script>
<style scoped> <style scoped>

66
activitylink/src/views/zhongchou/activity/index.vue

@ -77,7 +77,7 @@
align-center align-center
@closed="cancel" @closed="cancel"
> >
<el-form ref="addForm" :model="activity" label-width="80px">
<el-form ref="addForm" :model="activity" :rules="rules" label-width="80px">
<el-form-item label="活动名称" prop="activityName"> <el-form-item label="活动名称" prop="activityName">
<el-input v-model="activity.activityName" placeholder="请输入活动名称" /> <el-input v-model="activity.activityName" placeholder="请输入活动名称" />
</el-form-item> </el-form-item>
@ -113,7 +113,7 @@
<el-form-item label="开始时间" prop="startTime"> <el-form-item label="开始时间" prop="startTime">
<el-date-picker <el-date-picker
v-model="activity.startTime" v-model="activity.startTime"
type="datetime"
type="date"
placeholder="请选择开始时间" placeholder="请选择开始时间"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
format="YYYY-MM-DD" format="YYYY-MM-DD"
@ -125,7 +125,7 @@
<el-form-item label="结束时间" prop="endTime"> <el-form-item label="结束时间" prop="endTime">
<el-date-picker <el-date-picker
v-model="activity.endTime" v-model="activity.endTime"
type="datetime"
type="date"
placeholder="请选择结束时间" placeholder="请选择结束时间"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
format="YYYY-MM-DD" format="YYYY-MM-DD"
@ -204,6 +204,7 @@ const fetchMarketList = async () => {
// //
const cancel = () => { const cancel = () => {
centerDialogVisible.value = false; centerDialogVisible.value = false;
addForm.value.resetFields();
resetForm(); resetForm();
}; };
@ -222,31 +223,49 @@ const addActivityShow = () => {
}; };
// //
const addForm = ref(); // addForm ref
const addActivity = async () => { const addActivity = async () => {
try { try {
const valid = await new Promise((resolve, reject) => {
addForm.value.validate(valid => {
if (valid) {
resolve(true);
} else {
resolve(false);
}
});
});
if (!valid) {
ElMessage.warning('请填写完整表单');
return;
}
//
const activityData = { const activityData = {
activityName: activity.value.activityName, activityName: activity.value.activityName,
marketOne: activity.value.marketOne, marketOne: activity.value.marketOne,
marketTwo: activity.value.marketTwo, marketTwo: activity.value.marketTwo,
status: Number(activity.value.status), //
status: Number(activity.value.status),
startTime: activity.value.startTime, startTime: activity.value.startTime,
endTime: activity.value.endTime endTime: activity.value.endTime
} }
const response = await addActivityandtime(activityData)
const response = await addActivityandtime(activityData);
if (response.code === 200) { if (response.code === 200) {
ElMessage.success('活动添加成功')
centerDialogVisible.value = false
fetchActivityList() //
ElMessage.success('活动添加成功');
centerDialogVisible.value = false;
fetchActivityList();
} else { } else {
ElMessage.error(response.message || '活动添加失败')
ElMessage.error(response.message || '活动添加失败');
} }
} catch (error) { } catch (error) {
console.error('添加活动失败:', error)
ElMessage.error('请求失败,请重试')
console.error('添加活动失败:', error);
ElMessage.error('请求失败,请重试');
} }
}
};
// //
const deleteConfirmVisible = ref(false) const deleteConfirmVisible = ref(false)
@ -292,6 +311,28 @@ const activity = ref({
endTime: '' endTime: ''
}) })
//
const rules = {
activityName: [
{ required: true, message: '请输入活动名称', trigger: 'blur' }
],
marketOne: [
{ required: true, message: '请选择市场一', trigger: 'change' }
],
marketTwo: [
{ required: true, message: '请选择市场二', trigger: 'change' }
],
status: [
{ required: true, message: '请选择活动状态', trigger: 'change' }
],
startTime: [
{ required: true, message: '请选择开始时间', trigger: 'change' }
],
endTime: [
{ required: true, message: '请选择结束时间', trigger: 'change' }
]
}
// //
const currentPage = ref(1); const currentPage = ref(1);
const pageSize = ref(10); // 10 const pageSize = ref(10); // 10
@ -314,6 +355,7 @@ const handleCurrentChange = (val) => {
// //
const goToDetail = (row) => { const goToDetail = (row) => {
activityStone.setselectedactivityId(row.id);
router.push({ name: 'activityDetail' }); router.push({ name: 'activityDetail' });
}; };

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

@ -143,7 +143,7 @@ const editForm = ref({
gradeId: '', gradeId: '',
imageUrl: null imageUrl: null
}) })
const uploadUrl = 'http://39.101.133.168:8828/hljw/api/aws/upload';
const uploadUrl = 'https://39.101.133.168:8828/hljw/api/aws/upload';
const formRef = ref(null) const formRef = ref(null)
const uploadRef = ref(null) const uploadRef = ref(null)

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

@ -1,282 +1,282 @@
<template> <template>
<h2>等级管理</h2>
<el-card style=" display: flex; flex-direction: column;">
<div class="level-management-container" style="flex: 1; overflow-y: auto;">
<!-- 添加等级按钮 -->
<div class="action-buttons">
<el-button type="primary" @click="showAddDialog">添加等级</el-button>
</div>
<h2>等级管理</h2>
<el-card style=" display: flex; flex-direction: column;">
<div class="level-management-container" style="flex: 1; overflow-y: auto;">
<!-- 添加等级按钮 -->
<div class="action-buttons">
<el-button type="primary" @click="showAddDialog">添加等级</el-button>
</div>
<!-- 等级表格 -->
<div class="table-container">
<el-table :data="tableData" style="width: 100%" :row-style="{ height: '60px' }">
<el-table-column type="index" label="ID" width="120px" fixed="left" >
<template #default="scope">
{{ pagination.pageSize * (pagination.pageNum - 1) + scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="gradeName" label="等级名称" width="240" 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="240" align="center" />
<el-table-column prop="operation" fixed="right" width="240" 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="danger" @click="deleteLevel(scope.row)">删除</el-button>
</div>
</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="pagination.total" :page-sizes="[10, 20, 50, 100]"
@size-change="handleSizeChange" @current-change="handleCurrentChange" />
<!-- 添加 -->
<el-dialog v-model="addVisible" :title="dialogTitle" width=400px @closed="resetForm">
<el-form :model="addForm" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="addForm.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input v-model="addForm.amount" :precision="0" :min="0" placeholder="请输入数量"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input v-model="addForm.perWin" :precision="0" :min="0" placeholder="请输入抽取人数"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input v-model="addForm.sort" :precision="0" :min="0" placeholder="请输入排序等级"
style="width: 100%;"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button @click="addVisible = false">取消</el-button>
<el-button type="primary" @click="submitAdd">确认</el-button>
</span>
<!-- 等级表格 -->
<div class="table-container">
<el-table :data="tableData" style="width: 100%" :row-style="{ height: '60px' }">
<el-table-column type="index" label="ID" width="120px" fixed="left" >
<template #default="scope">
{{ pagination.pageSize * (pagination.pageNum - 1) + scope.$index + 1 }}
</template> </template>
</el-dialog>
<!-- 编辑 -->
<el-dialog v-model="editVisible" :title="dialogTitle" width=400px @closed="resetForm">
<el-form :model="editForm" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="editForm.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input v-model="editForm.amount" :precision="0" :min="0" placeholder="请输入数量"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input v-model="editForm.perWin" :precision="0" :min="0" placeholder="请输入抽取人数"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input v-model="editForm.sort" :precision="0" :min="0" placeholder="请输入排序等级"
style="width: 100%;"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button @click="editVisible = false">取消</el-button>
<el-button type="primary" @click="submitEdit">确认</el-button>
</span>
</el-table-column>
<el-table-column prop="gradeName" label="等级名称" width="240" 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="240" align="center" />
<el-table-column prop="operation" fixed="right" width="240" 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="danger" @click="deleteLevel(scope.row)">删除</el-button>
</div>
</template> </template>
</el-dialog>
</el-table-column>
</el-table>
</div>
</div>
</el-card>
<!-- 分页 -->
<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="addVisible" :title="dialogTitle" width=400px @closed="resetForm">
<el-form :model="addForm" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="addForm.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input v-model="addForm.amount" :precision="0" :min="0" placeholder="请输入数量"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input v-model="addForm.perWin" :precision="0" :min="0" placeholder="请输入抽取人数"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input v-model="addForm.sort" :precision="0" :min="0" placeholder="请输入排序等级"
style="width: 100%;"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button @click="addVisible = false">取消</el-button>
<el-button type="primary" @click="submitAdd">确认</el-button>
</span>
</template>
</el-dialog>
<!-- 编辑 -->
<el-dialog v-model="editVisible" :title="dialogTitle" width=400px @closed="resetForm">
<el-form :model="editForm" label-width="120px">
<el-form-item label="等级名称" align="center">
<el-input v-model="editForm.gradeName" placeholder="请输入等级名称"></el-input>
</el-form-item>
<el-form-item label="数量" align="center">
<el-input v-model="editForm.amount" :precision="0" :min="0" placeholder="请输入数量"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="每轮抽取人数" align="center">
<el-input v-model="editForm.perWin" :precision="0" :min="0" placeholder="请输入抽取人数"
style="width: 100%;"></el-input>
</el-form-item>
<el-form-item label="排序" align="center">
<el-input v-model="editForm.sort" :precision="0" :min="0" placeholder="请输入排序等级"
style="width: 100%;"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button @click="editVisible = false">取消</el-button>
<el-button type="primary" @click="submitEdit">确认</el-button>
</span>
</template>
</el-dialog>
</el-card>
</template> </template>
<script setup> <script setup>
import { ref, computed, onMounted } from 'vue' import { ref, computed, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import { getLevelList, addLevel, deleteGrade, updateGrade } from '@/api/manage/level'
import { getLevelList, addLevel, deleteLevel, updateGrade } from '@/api/manage/level'
const tableData = ref([]) const tableData = ref([])
const pagination = ref({ const pagination = ref({
pageNum: 1,
pageSize: 10,
total:0
pageNum: 1,
pageSize: 10,
total:0
}) })
const addVisible = ref(false) const addVisible = ref(false)
const editVisible = ref(false) const editVisible = ref(false)
const dialogTitle = ref('') const dialogTitle = ref('')
const addForm = ref({ const addForm = ref({
gradeName: '',
amount: '',
perWin: '',
sort: ''
gradeName: '',
amount: '',
perWin: '',
sort: ''
}) })
const editForm = ref({}) const editForm = ref({})
// //
const showAddDialog = () => { const showAddDialog = () => {
dialogTitle.value = '添加等级'
addVisible.value = true
dialogTitle.value = '添加等级'
addVisible.value = true
} }
// //
const editLevel = (row) => { const editLevel = (row) => {
dialogTitle.value = '编辑等级'
editForm.value = {
id: row.id,
gradeName: row.gradeName,
amount: row.amount,
perWin: row.perWin,
sort: row.sort
}
editVisible.value = true
dialogTitle.value = '编辑等级'
editForm.value = {
id: row.id,
gradeName: row.gradeName,
amount: row.amount,
perWin: row.perWin,
sort: row.sort
}
editVisible.value = true
} }
// //
const getLevels = async () => { 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 || '获取数据失败')
}
} catch (error) {
console.error('请求失败:', error)
ElMessage.error('请求失败,请重试')
}
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 || '获取数据失败')
}
} catch (error) {
console.error('请求失败:', error)
ElMessage.error('请求失败,请重试')
}
} }
// //
const submitAdd = async () => { const submitAdd = async () => {
if (!addForm.value.gradeName || addForm.value.amount === '' || addForm.value.sort === '' || addForm.value.perWin === '') {
ElMessage.error('请填写完整信息')
return
}
try {
const data = {
gradeName: String(addForm.value.gradeName),
amount: String(addForm.value.amount),
sort: String(addForm.value.sort),
perWin: String(addForm.value.perWin)
}
console.log('看看添加参数',data)
const response = await addLevel(data)
if (response.code === 200) {
ElMessage.success('添加成功')
addVisible.value = false
getLevels()
} else {
ElMessage.error(response.message || '添加失败')
}
} catch (error) {
console.error('添加等级失败:', error)
ElMessage.error('添加失败,请重试')
}
if (!addForm.value.gradeName || addForm.value.amount === '' || addForm.value.sort === '' || addForm.value.perWin === '') {
ElMessage.error('请填写完整信息')
return
}
try {
const data = {
gradeName: String(addForm.value.gradeName),
amount: String(addForm.value.amount),
sort: String(addForm.value.sort),
perWin: String(addForm.value.perWin)
}
console.log('看看添加参数',data)
const response = await addLevel(data)
if (response.code === 200) {
ElMessage.success('添加成功')
addVisible.value = false
getLevels()
} else {
ElMessage.error(response.message || '添加失败')
}
} catch (error) {
console.error('添加等级失败:', error)
ElMessage.error('添加失败,请重试')
}
} }
// //
const submitEdit = async () => { const submitEdit = async () => {
if (!editForm.value.id || !editForm.value.gradeName || !editForm.value.amount || !editForm.value.perWin || !editForm.value.sort) {
ElMessage.error('请填写完整信息')
return
}
try {
const editData = {
id: editForm.value.id,
gradeName: editForm.value.gradeName,
amount: editForm.value.amount,
perWin: editForm.value.perWin,
sort: editForm.value.sort
}
console.log('看看编辑参数',editData)
const response = await updateGrade(editData)
if (response.code === 200) {
ElMessage.success('修改成功')
editVisible.value = false
getLevels()
} else {
ElMessage.error(response.message || '修改失败')
}
} catch (error) {
console.error('编辑等级失败:', error)
ElMessage.error('修改失败,请重试')
}
if (!editForm.value.id || !editForm.value.gradeName || !editForm.value.amount || !editForm.value.perWin || !editForm.value.sort) {
ElMessage.error('请填写完整信息')
return
}
try {
const editData = {
id: editForm.value.id,
gradeName: editForm.value.gradeName,
amount: editForm.value.amount,
perWin: editForm.value.perWin,
sort: editForm.value.sort
}
console.log('看看编辑参数',editData)
const response = await updateGrade(editData)
if (response.code === 200) {
ElMessage.success('修改成功')
editVisible.value = false
getLevels()
} else {
ElMessage.error(response.message || '修改失败')
}
} catch (error) {
console.error('编辑等级失败:', error)
ElMessage.error('修改失败,请重试')
}
} }
// //
const deleteLevel = (row) => { const deleteLevel = (row) => {
ElMessageBox.confirm('确定要删除该等级吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try {
const id = String(row.id)
console.log('删除等级的id是:', 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('已取消删除')
})
ElMessageBox.confirm('确定要删除该等级吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try {
const id = String(row.id)
console.log('删除等级的id是:', 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 = () => { const resetForm = () => {
addForm.value = {
gradeName: '',
amount: '',
perWin: '',
sort: ''
}
addForm.value = {
gradeName: '',
amount: '',
perWin: '',
sort: ''
}
} }
const handleSizeChange = (val) => { const handleSizeChange = (val) => {
pagination.value.pageSize = val
pagination.value.pageNum = 1
getLevels()
pagination.value.pageSize = val
pagination.value.pageNum = 1
getLevels()
} }
const handleCurrentChange = (val) => { const handleCurrentChange = (val) => {
pagination.value.pageNum = val
getLevels()
pagination.value.pageNum = val
getLevels()
} }
onMounted(() => { onMounted(() => {
getLevels()
getLevels()
}) })
</script> </script>
<style scoped> <style scoped>
.level-management-container { .level-management-container {
padding: 20px;
width: 100%;
box-sizing: border-box;
min-height: 80vh;
padding: 20px;
width: 100%;
box-sizing: border-box;
min-height: 80vh;
} }
.pagination { .pagination {
padding: 10px 20px;
background-color: #fff;
border-top: 1px solid #ebeef5;
display: flex;
justify-content: flex-start;
/* 改为左对齐 */
padding: 10px 20px;
background-color: #fff;
border-top: 1px solid #ebeef5;
display: flex;
justify-content: flex-start;
/* 改为左对齐 */
} }
.action-buttons { .action-buttons {
margin-bottom: 20px;
margin-bottom: 20px;
} }
.table-container { .table-container {
max-height: 650px;
overflow-y: auto;
max-height: 650px;
overflow-y: auto;
} }
</style> </style>

10
activitylink/src/views/zhongchou/winning/index.vue

@ -106,6 +106,16 @@ const fetchWinLevelList = async () => {
} }
} }
const handleSizeChange = (val) => {
pagination.value.pageSize = val
pagination.value.pageNum = 1
getPrizes()
}
const handleCurrentChange = (val) => {
pagination.value.pageNum = val
getPrizes()
}
// //
const fetchWinList = async () => { const fetchWinList = async () => {
try { try {

Loading…
Cancel
Save