Commit 638a4901 authored by 冷玲鹏's avatar 冷玲鹏

修改上传,页面bug

parent 6da8c50a
...@@ -3,18 +3,39 @@ ...@@ -3,18 +3,39 @@
<div class="app-container"> <div class="app-container">
<div v-show="showSwitch.courseContent" class="courseContent"> <div v-show="showSwitch.courseContent" class="courseContent">
<div class="search"> <div class="search">
<el-form ref="queryForm" style="padding: 0 0 0 10px" :model="queryParams" :inline="true"> <el-form ref="queryForm" style="padding: 30px 0 0 10px" :model="queryParams" :inline="true">
<el-form-item label="发布状态:" prop="flag"> <el-form-item label="标题:" prop="title">
<el-select v-model="queryParams.flag" placeholder="请选择发布状态"> <el-input
v-model.trim="queryParams.title"
placeholder="请输入活动标题"
clearable
:maxlength="30"
size="small"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="顶置:" prop="isTop">
<el-select v-model="queryParams.isTop" placeholder="请选择顶置状态" style="width: 150px" clearable>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="推荐:" prop="isRecommended">
<el-select v-model="queryParams.isRecommended" placeholder="请选择推荐状态" style="width: 150px" clearable>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="状态:" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择发布状态" style="width: 150px" clearable>
<el-option <el-option
v-for="item in releaseStatusOptions" v-for="item in releaseStatusOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
style="width: 150px"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发布日期:" prop="publishDate"> <el-form-item label="发布日期:" prop="publishDate" clearable>
<el-date-picker <el-date-picker
v-model="dateRange" v-model="dateRange"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
...@@ -84,9 +105,6 @@ ...@@ -84,9 +105,6 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.isTop === 1" type="success" size="medium ">置顶</el-tag> <el-tag v-if="scope.row.isTop === 1" type="success" size="medium ">置顶</el-tag>
</template> </template>
<!-- <template slot-scope="scope">
<span>{{ scope.row.isTop === 1 ? '是' : '否' }}</span>
</template>-->
</el-table-column> </el-table-column>
<el-table-column align="center" prop="isRecommended" min-width="80" label="推荐" show-overflow-tooltip> <el-table-column align="center" prop="isRecommended" min-width="80" label="推荐" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -296,6 +314,7 @@ import { ...@@ -296,6 +314,7 @@ import {
import { parseTime } from '@/utils' import { parseTime } from '@/utils'
import { getDataCache, setDataCache } from '@/assets/js/filterData' import { getDataCache, setDataCache } from '@/assets/js/filterData'
import { listCmsApplication } from '@/api/contentManagement/application' import { listCmsApplication } from '@/api/contentManagement/application'
import { yesOrNo } from '@/utils/allPageData'
export default { export default {
name: 'Index', name: 'Index',
// components: { // components: {
...@@ -303,6 +322,7 @@ export default { ...@@ -303,6 +322,7 @@ export default {
// }, // },
data() { data() {
return { return {
yesOrNo,
pageKey: 0, pageKey: 0,
hasAddPerm: ['sys:activity:add'], hasAddPerm: ['sys:activity:add'],
hasUpdatePerm: ['sys:activity:update'], hasUpdatePerm: ['sys:activity:update'],
...@@ -390,10 +410,6 @@ export default { ...@@ -390,10 +410,6 @@ export default {
uploadList: { uploadList: {
fm: '' fm: ''
}, },
// search area
courseid: '',
coursename: '',
queryParams: { queryParams: {
page: 1, page: 1,
rows: 10, rows: 10,
......
...@@ -179,13 +179,13 @@ ...@@ -179,13 +179,13 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="男生数量:" label="人数上限:"
prop="maleCount" prop="maxApplicationCount"
> >
<el-input <el-input
v-model.trim="form.maleCount" v-model.trim="form.maxApplicationCount"
:disabled="secondFromDisabled" :disabled="secondFromDisabled"
placeholder="请输入男生数量" placeholder="请输入人数上限"
size="small" size="small"
class="normalInput" class="normalInput"
:maxlength="100" :maxlength="100"
...@@ -194,31 +194,35 @@ ...@@ -194,31 +194,35 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="女生数量:" label="报名费用:"
prop="femaleCount" prop="applicationFee"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入报名所需费用', trigger: 'blur' }"
> >
<el-input <el-input
v-model.trim="form.femaleCount" v-model.trim="form.applicationFee"
:disabled="secondFromDisabled" :disabled="secondFromDisabled"
placeholder="请女生数量" placeholder="请输入报名所需费用"
size="small" size="small"
class="normalInput" class="normalInput"
:maxlength="100" :maxlength="300"
/> >
<template slot="append">
<span></span>
</template>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="人数上限:" label="男生数量:"
prop="maxApplicationCount" prop="maleCount"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入人数上限', trigger: 'blur' }"
> >
<el-input <el-input
v-model.trim="form.maxApplicationCount" v-model.trim="form.maleCount"
:disabled="secondFromDisabled" :disabled="secondFromDisabled"
placeholder="请输入人数上限" placeholder="请输入男生数量"
size="small" size="small"
class="normalInput" class="normalInput"
:maxlength="100" :maxlength="100"
...@@ -227,22 +231,17 @@ ...@@ -227,22 +231,17 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="报名费用:" label="女生数量:"
prop="applicationFee" prop="femaleCount"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入报名所需费用', trigger: 'blur' }"
> >
<el-input <el-input
v-model.trim="form.applicationFee" v-model.trim="form.femaleCount"
:disabled="secondFromDisabled" :disabled="secondFromDisabled"
placeholder="请输入报名所需费用" placeholder="请女生数量"
size="small" size="small"
class="normalInput" class="normalInput"
:maxlength="300" :maxlength="100"
> />
<template slot="append">
<span></span>
</template>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -264,25 +263,40 @@ ...@@ -264,25 +263,40 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="24">
<el-form-item
label="活动摘要:"
prop="summary">
<el-input
v-model.trim="form.summary"
type="textarea"
:disabled="secondFromDisabled"
placeholder="请输入活动摘要"
size="small"
rows="3"
class="normalInput"
:maxlength="300"
/>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="活动封面:" prop="pictureId"> <el-form-item label="活动封面:" prop="pictureId">
<el-upload <el-upload
ref="upload"
accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG" accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG"
:disabled="secondFromDisabled"
:file-list="fileList" :file-list="fileList"
class="avatar-uploader"
list-type="picture-card" list-type="picture-card"
class="avatar-uploader"
action="#" action="#"
:on-preview="handlePreview" :show-file-list="false"
:on-remove="handleUploadRemoveFake"
:on-exceed="handleUploadExceed"
:before-upload="handleUploadBeforeFake" :before-upload="handleUploadBeforeFake"
:before-remove="handleFileRemoveBefore"
:auto-upload="true" :auto-upload="true"
:limit="8"
> >
<i class="el-icon-plus avatar-uploader-icon" /> <img v-if="imageUrl" :src="imageUrl" class="avatar" alt="">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
...@@ -374,7 +388,7 @@ export default { ...@@ -374,7 +388,7 @@ export default {
weight: null, weight: null,
maleCount: null, maleCount: null,
femaleCount: null, femaleCount: null,
maxApplicationCount: null, maxApplicationCount: '0',
applicationFee: '0.00', applicationFee: '0.00',
isRecommended: null, isRecommended: null,
isTop: null, isTop: null,
...@@ -441,15 +455,16 @@ export default { ...@@ -441,15 +455,16 @@ export default {
formData.append('file', file) formData.append('file', file)
formData.append('temp', 'CmsActivity') formData.append('temp', 'CmsActivity')
try { try {
// 发起上传请求
const response = await uploadPublic(formData) const response = await uploadPublic(formData)
// 获取返回的 businessId,并更新 form.pictureId
const businessId = response.data.businessId const businessId = response.data.businessId
this.form.pictureId = businessId // 更新 fileList,保存文件的 URL 和其他信息
this.fileList.push({ this.fileList = [{
url: response.data.url, url: response.data.url,
name: response.data.activityName, businessId: businessId
businessId: response.data.businessId }]
}) this.form.pictureId = businessId
this.imageUrl = response.data.url
} catch (error) { } catch (error) {
console.error('上传失败:', error) console.error('上传失败:', error)
} }
...@@ -460,12 +475,12 @@ export default { ...@@ -460,12 +475,12 @@ export default {
// 判断是新增、编辑还是查看 // 判断是新增、编辑还是查看
if (isOperation === '1') { if (isOperation === '1') {
// 新增时,默认置顶为'是'(value: '1') // 新增时,默认置顶为'是'(value: '1')
this.form.isRecommended = 1 this.form.isRecommended = 0
this.form.isTop = 1 this.form.isTop = 0
this.form.isRegistration = 1 this.form.isRegistration = 0
this.form.isAuthentication = 1 this.form.isAuthentication = 0
this.form.isApplication = 1 this.form.isApplication = 0
this.form.isNeedMember = 1 this.form.isNeedMember = 0
this.form.flag = '0' this.form.flag = '0'
} }
}, },
...@@ -516,10 +531,7 @@ export default { ...@@ -516,10 +531,7 @@ export default {
getCmsActivity(this.$route.query.bussinessId).then(response => { getCmsActivity(this.$route.query.bussinessId).then(response => {
if (response.code === 200) { if (response.code === 200) {
this.form = response.data this.form = response.data
const param = { this.imageUrl = response.data.path
url: response.data.path
}
this.fileList.push(param)
} }
}) })
} }
......
...@@ -10,9 +10,19 @@ ...@@ -10,9 +10,19 @@
clearable clearable
:maxlength="500" :maxlength="500"
size="small" size="small"
style="width: 150px" style="width: 100%"
/> />
</el-form-item> </el-form-item>
<el-form-item label="分类:" prop="type">
<el-select v-model.trim="queryParams.isTop" show-word-limit placeholder="请输入类型" style="width: 100%">
<el-option
v-for="item in typeField"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
:class="commonField.queryClass" :class="commonField.queryClass"
...@@ -146,15 +156,12 @@ ...@@ -146,15 +156,12 @@
list-type="picture-card" list-type="picture-card"
class="avatar-uploader" class="avatar-uploader"
action="#" action="#"
:on-preview="handlePreview" :show-file-list="false"
:on-remove="handleUploadRemoveFake"
:on-exceed="handleUploadExceed"
:before-upload="handleUploadBeforeFake" :before-upload="handleUploadBeforeFake"
:before-remove="handleFileRemoveBefore"
:auto-upload="true" :auto-upload="true"
:limit="8"
> >
<i class="el-icon-plus avatar-uploader-icon" /> <img v-if="imageUrl" :src="imageUrl" class="avatar" alt="">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="权重:" prop="weight"> <el-form-item label="权重:" prop="weight">
...@@ -223,11 +230,11 @@ export default { ...@@ -223,11 +230,11 @@ export default {
flag: '' flag: ''
}, },
showImg: false, showImg: false,
imagUrl: '',
// 表单参数 // 表单参数
form: {}, form: {},
fileList: [], fileList: [],
dialogImageUrl: '', dialogImageUrl: '',
imageUrl: '',
dialogVisible: false, dialogVisible: false,
typeField, typeField,
enableOrDisable, enableOrDisable,
...@@ -256,24 +263,6 @@ export default { ...@@ -256,24 +263,6 @@ export default {
}, },
methods: { methods: {
/** 上传 */ /** 上传 */
handlePreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleFileRemoveBefore(file, fileList) {
console.log('filebusinessId', file)
return this.$confirm(`确定移除该图片吗?`)
},
handleUploadRemoveFake(file, fileList) {
if (file.businessId) {
this.fileList = this.fileList.filter(fileItem => fileItem.businessId !== file.businessId)
} else {
this.fileList = this.fileList.filter(fileItem => fileItem.pictureId !== file.pictureId)
}
},
handleUploadExceed(files, fileList) {
this.$message.warning(`最多上传8张图片`)
},
// 获取对应的分类名称 // 获取对应的分类名称
getTypeValue(type) { getTypeValue(type) {
// 查找 type 对应的 value // 查找 type 对应的 value
...@@ -418,11 +407,8 @@ export default { ...@@ -418,11 +407,8 @@ export default {
const id = row.businessId const id = row.businessId
getCmsBanner(id).then(response => { getCmsBanner(id).then(response => {
this.form = response.data this.form = response.data
const param = { this.imageUrl = response.data.path
url: response.data.path console.log('hhahaah', this.imagUrl)
}
this.fileList.push(param)
console.log('hhahaah', this.fileList)
this.open = true this.open = true
this.title = '修改banner' this.title = '修改banner'
}) })
...@@ -509,6 +495,7 @@ export default { ...@@ -509,6 +495,7 @@ export default {
}).catch(function() { }).catch(function() {
}) })
}, },
// 上传
async handleUploadBeforeFake(file) { async handleUploadBeforeFake(file) {
if (!file.type.startsWith('image/')) { if (!file.type.startsWith('image/')) {
this.$message.warning('只支持上传图片') this.$message.warning('只支持上传图片')
...@@ -520,17 +507,14 @@ export default { ...@@ -520,17 +507,14 @@ export default {
try { try {
// 发起上传请求 // 发起上传请求
const response = await uploadPublic(formData) const response = await uploadPublic(formData)
// 获取返回的 businessId,并更新 form.pictureId
const businessId = response.data.businessId const businessId = response.data.businessId
this.form.pictureId = businessId
// 更新 fileList,保存文件的 URL 和其他信息 // 更新 fileList,保存文件的 URL 和其他信息
this.fileList.push({ this.fileList = [{
url: response.data.url, url: response.data.url,
name: response.data.bannerName,
businessId: businessId businessId: businessId
}) }]
this.form.pictureId = businessId
this.imageUrl = response.data.url
} catch (error) { } catch (error) {
console.error('上传失败:', error) console.error('上传失败:', error)
} }
...@@ -580,4 +564,33 @@ export default { ...@@ -580,4 +564,33 @@ export default {
height: 45px; height: 45px;
} }
} }
::v-deep.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
display: flex;
width: 200px;
height: 180px;
}
::v-deep.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
::v-deep.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 200px;
height: 180px;
line-height: 180px;
text-align: center;
}
::v-deep.avatar {
width: 200px;
height: 178px;
display: block;
}
</style> </style>
...@@ -3,15 +3,35 @@ ...@@ -3,15 +3,35 @@
<div class="app-container"> <div class="app-container">
<div v-show="showSwitch.courseContent" class="courseContent"> <div v-show="showSwitch.courseContent" class="courseContent">
<div class="search"> <div class="search">
<el-form ref="queryForm" style="padding: 0 0 0 10px" :model="queryParams" :inline="true"> <el-form ref="queryForm" style="padding: 30px 0 0 10px" :model="queryParams" :inline="true">
<el-form-item label="发布状态:" prop="flag"> <el-form-item label="标题:" prop="title">
<!-- 发布状态下拉框--> <el-input
<el-select v-model="queryParams.flag" placeholder="请选择发布状态"> v-model.trim="queryParams.title"
placeholder="请输入活动标题"
clearable
:maxlength="30"
size="small"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="顶置:" prop="isTop">
<el-select v-model="queryParams.isTop" placeholder="请选择顶置状态" style="width: 150px" clearable>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="推荐:" prop="isRecommended">
<el-select v-model="queryParams.isRecommended" placeholder="请选择推荐状态" style="width: 150px" clearable>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="状态:" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择发布状态" style="width: 150px" clearable>
<el-option <el-option
v-for="item in releaseStatusOptions" v-for="item in releaseStatusOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
style="width: 150px"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -174,6 +194,7 @@ import { ...@@ -174,6 +194,7 @@ import {
} from '@/api/contentManagement/notice' } from '@/api/contentManagement/notice'
import { parseTime } from '@/utils' import { parseTime } from '@/utils'
import { getDataCache, setDataCache } from '@/assets/js/filterData' import { getDataCache, setDataCache } from '@/assets/js/filterData'
import { yesOrNo } from '@/utils/allPageData'
export default { export default {
name: 'Index', name: 'Index',
// components: { // components: {
...@@ -181,6 +202,7 @@ export default { ...@@ -181,6 +202,7 @@ export default {
// }, // },
data() { data() {
return { return {
yesOrNo,
pageKey: 0, pageKey: 0,
hasAddPerm: ['sys:notice:add'], hasAddPerm: ['sys:notice:add'],
hasUpdatePerm: ['sys:notice:update'], hasUpdatePerm: ['sys:notice:update'],
......
...@@ -77,7 +77,25 @@ ...@@ -77,7 +77,25 @@
prop="weight" prop="weight"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择权重', trigger: 'change' }" :rules="{ required: !(controls.isOperation === '3'), message: '请选择权重', trigger: 'change' }"
> >
<el-input-number v-model.trim="form.weight" style="width: 100%" controls-position="right" :min="0" /> <el-input-number v-model.trim="form.weight" style="width: 100%" :disabled="secondFromDisabled" controls-position="right" :min="0" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item
label="活动摘要:"
prop="summary">
<el-input
v-model.trim="form.summary"
type="textarea"
:disabled="secondFromDisabled"
placeholder="请输入活动摘要"
size="small"
rows="3"
class="normalInput"
:maxlength="300"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -91,15 +109,12 @@ ...@@ -91,15 +109,12 @@
list-type="picture-card" list-type="picture-card"
class="avatar-uploader" class="avatar-uploader"
action="#" action="#"
:on-preview="handlePreview" :show-file-list="false"
:on-remove="handleUploadRemoveFake"
:on-exceed="handleUploadExceed"
:before-upload="handleUploadBeforeFake" :before-upload="handleUploadBeforeFake"
:before-remove="handleFileRemoveBefore"
:auto-upload="true" :auto-upload="true"
:limit="8"
> >
<i class="el-icon-plus avatar-uploader-icon" /> <img v-if="imageUrl" :src="imageUrl" class="avatar" alt="">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -265,17 +280,14 @@ export default { ...@@ -265,17 +280,14 @@ export default {
try { try {
// 发起上传请求 // 发起上传请求
const response = await uploadPublic(formData) const response = await uploadPublic(formData)
// 获取返回的 businessId,并更新 form.pictureId
const businessId = response.data.businessId const businessId = response.data.businessId
this.form.pictureId = businessId
// 更新 fileList,保存文件的 URL 和其他信息 // 更新 fileList,保存文件的 URL 和其他信息
this.fileList.push({ this.fileList = [{
url: response.data.url, url: response.data.url,
name: response.data.noticeName,
businessId: businessId businessId: businessId
}) }]
this.form.pictureId = businessId
this.imageUrl = response.data.url
} catch (error) { } catch (error) {
console.error('上传失败:', error) console.error('上传失败:', error)
} }
...@@ -337,10 +349,7 @@ export default { ...@@ -337,10 +349,7 @@ export default {
getCmsNotice(this.$route.query.bussinessId).then(response => { getCmsNotice(this.$route.query.bussinessId).then(response => {
if (response.code === 200) { if (response.code === 200) {
this.form = response.data this.form = response.data
const param = { this.imageUrl = response.data.path
url: response.data.path
}
this.fileList.push(param)
} }
}) })
} }
......
...@@ -3,10 +3,19 @@ ...@@ -3,10 +3,19 @@
<div class="app-container"> <div class="app-container">
<div v-show="showSwitch.courseContent" class="courseContent"> <div v-show="showSwitch.courseContent" class="courseContent">
<div class="search"> <div class="search">
<el-form ref="queryForm" style="padding: 0 0 0 10px" :model="queryParams" :inline="true"> <el-form ref="queryForm" style="padding: 30px 0 0 10px" :model="queryParams" :inline="true">
<el-form-item label="发布状态:" prop="flag"> <el-form-item label="话题名称 :" prop="title">
<!-- 发布状态下拉框--> <el-input
<el-select v-model="queryParams.flag" placeholder="请选择发布状态"> v-model.trim="queryParams.title"
placeholder="请输入话题名称"
clearable
:maxlength="30"
size="small"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="状态:" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择发布状态" style="width: 150px">
<el-option <el-option
v-for="item in releaseStatusOptions" v-for="item in releaseStatusOptions"
:key="item.value" :key="item.value"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment