|
|
@ -1,18 +1,19 @@ |
|
|
|
<template> |
|
|
|
<h2>礼品管理</h2> |
|
|
|
<el-card style="min-height: 90vh; max-height: 90vh; display: flex; flex-direction: column;"> |
|
|
|
<h2>礼品管理</h2> |
|
|
|
<el-card style="display: flex; flex-direction: column;"> |
|
|
|
<div class="gift-management-container" style="flex: 1; overflow-y: auto;"> |
|
|
|
<div class="action-buttons"> |
|
|
|
<el-button type="primary" @click="showAdd">添加礼品</el-button> |
|
|
|
<el-button type="primary" @click="goToimportUsers">导入抽奖用户</el-button> |
|
|
|
</div> |
|
|
|
<div class="table-container" style="flex: 1; overflow-y: auto;"> |
|
|
|
<el-table :data="tableData" style="width: 100%" class="gift-table"> |
|
|
|
<el-table-column type="index" label="ID" width="100" align="center"></el-table-column> |
|
|
|
<el-table :data="tableData" style="width: 100%" class="gift-table" :row-style="{ height: '60px' }"> |
|
|
|
<el-table-column type="index" label="ID" width="100" align="center"> |
|
|
|
<template #default="scope">{{ scope.$index + 1 + (pagination.pageNum - 1) * pagination.pageSize }}</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="礼品图片" width="200" align="center"> |
|
|
|
<template #default="scope"> |
|
|
|
<img v-if="scope.row.imageUrl" :src="scope.row.imageUrl" |
|
|
|
style="max-width: 100px; max-height: 30px;"> |
|
|
|
<img v-if="scope.row.imageUrl" :src="scope.row.imageUrl" style="max-width: 100px; max-height: 30px;"> |
|
|
|
<el-icon v-else :size="20" color="#67C23A"> |
|
|
|
<Check /> |
|
|
|
</el-icon> |
|
|
@ -43,20 +44,13 @@ |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="礼品等级" :rules="{ required: true, message: '请选择礼品等级', trigger: 'change' }"> |
|
|
|
<el-select v-model="addForm.gradeId" placeholder="请选择礼品等级"> |
|
|
|
<el-option v-for="item in gradeNames" :key="item.id" :label="item.gradeName" :value="item.id"/> |
|
|
|
<el-option v-for="item in gradeNames" :key="item.id" :label="item.gradeName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="礼品图片" :rules="{ required: true, message: '请上传图片', trigger: 'change' }"> |
|
|
|
<el-upload |
|
|
|
ref="uploadRef" |
|
|
|
:action="uploadUrl" |
|
|
|
list-type="picture-card" |
|
|
|
:auto-upload="false" |
|
|
|
:on-change="handleImageChange" |
|
|
|
:on-success="handleUploadSuccess" |
|
|
|
:on-error="handleUploadError" |
|
|
|
:before-upload="beforeUpload" |
|
|
|
:show-file-list="false"> |
|
|
|
<el-upload ref="uploadRef" :action="uploadUrl" list-type="picture-card" :auto-upload="false" |
|
|
|
:on-change="handleImageChange" :on-success="handleUploadSuccess" :on-error="handleUploadError" |
|
|
|
:before-upload="beforeUpload" :show-file-list="false"> |
|
|
|
<el-icon> |
|
|
|
<Plus /> |
|
|
|
</el-icon> |
|
|
@ -78,7 +72,7 @@ |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 编辑 --> |
|
|
|
<el-dialog v-model="editVisible" :title="dialogTitle" width="40%"> |
|
|
|
<el-form :model="editForm" label-width="100px" ref="formRef"> |
|
|
@ -87,20 +81,13 @@ |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="礼品等级" :rules="{ required: true, message: '请选择礼品等级', trigger: 'change' }"> |
|
|
|
<el-select v-model="editForm.gradeId" placeholder="请选择礼品等级"> |
|
|
|
<el-option v-for="item in gradeNames" :key="item.id" :label="item.gradeName" :value="item.id"/> |
|
|
|
<el-option v-for="item in gradeNames" :key="item.id" :label="item.gradeName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="礼品图片" :rules="{ required: true, message: '请上传图片', trigger: 'change' }"> |
|
|
|
<el-upload |
|
|
|
ref="uploadRef" |
|
|
|
:action="uploadUrl" |
|
|
|
list-type="picture-card" |
|
|
|
:auto-upload="false" |
|
|
|
:on-change="handleImageChange" |
|
|
|
:on-success="handleUploadSuccess" |
|
|
|
:on-error="handleUploadError" |
|
|
|
:before-upload="beforeUpload" |
|
|
|
:show-file-list="false"> |
|
|
|
<el-upload ref="uploadRef" :action="uploadUrl" list-type="picture-card" :auto-upload="false" |
|
|
|
:on-change="handleImageChange" :on-success="handleUploadSuccess" :on-error="handleUploadError" |
|
|
|
:before-upload="beforeUpload" :show-file-list="false"> |
|
|
|
<el-icon> |
|
|
|
<Plus /> |
|
|
|
</el-icon> |
|
|
@ -172,12 +159,12 @@ const showAdd = () => { |
|
|
|
|
|
|
|
const editGift = (row) => { |
|
|
|
dialogTitle.value = '编辑礼品' |
|
|
|
editForm.value = { |
|
|
|
editForm.value = { |
|
|
|
id: row.id, |
|
|
|
prizeName: row.prizeName, |
|
|
|
gradeId: row.gradeId, |
|
|
|
imageUrl: row.imageUrl |
|
|
|
} |
|
|
|
} |
|
|
|
editVisible.value = true |
|
|
|
} |
|
|
|
|
|
|
@ -205,7 +192,6 @@ const getPrizes = async () => { |
|
|
|
const getGradeNames = async () => { |
|
|
|
try { |
|
|
|
const res = await getGradeNameList() |
|
|
|
|
|
|
|
if (res.code === 200) { |
|
|
|
gradeNames.value = res.data |
|
|
|
} else { |
|
|
@ -221,7 +207,7 @@ const getGradeNames = async () => { |
|
|
|
const submitAdd = async () => { |
|
|
|
formRef.value.validate((valid) => { |
|
|
|
if (!valid) return false; |
|
|
|
|
|
|
|
|
|
|
|
if (!addForm.value.imageUrl) { |
|
|
|
ElMessage.error('请上传图片'); |
|
|
|
return; |
|
|
@ -309,14 +295,14 @@ const submitEdit = async () => { |
|
|
|
} |
|
|
|
const goToimportFixedList = (row) => { |
|
|
|
giftStore.setFixedGiftName(row.name); |
|
|
|
router.push({ |
|
|
|
name: 'importFixedList', |
|
|
|
query: { |
|
|
|
router.push({ |
|
|
|
name: 'importFixedList', |
|
|
|
query: { |
|
|
|
prizeName: row.prizeName, |
|
|
|
gradeName: row.gradeName, |
|
|
|
gradeId: row.id // 都传吧 |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
const goToimportUsers = () => { |
|
|
@ -408,7 +394,7 @@ onMounted(() => { |
|
|
|
} |
|
|
|
|
|
|
|
.table-container { |
|
|
|
max-height: 600px; |
|
|
|
max-height: 650px; |
|
|
|
overflow-y: auto; |
|
|
|
} |
|
|
|
|
|
|
|