Commit 008a4d93 authored by 冷玲鹏's avatar 冷玲鹏

修改字段:权重,状态

parent 060b4d61
......@@ -118,12 +118,12 @@
<el-link type="primary" @click="handleClick(scope.row)">{{ scope.row.applicationCount || 0 }}</el-link>
</template>
</el-table-column>
<el-table-column label="排序" prop="weight" :show-overflow-tooltip="true" min-width="55">
<el-table-column label="权重" prop="weight" :show-overflow-tooltip="true" min-width="55">
<template slot-scope="scope">
{{ scope.row.weight || '-' }}
</template>
</el-table-column>
<el-table-column align="center" prop="releaseStatus" label="发布状态" min-width="80" show-overflow-tooltip>
<el-table-column align="center" prop="releaseStatus" label="状态" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<el-switch
v-model="scope.row.flag"
......@@ -152,12 +152,12 @@
<span>{{ scope.row.publishDate }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="startTime" label="结束时间" min-width="120" show-overflow-tooltip>
<el-table-column align="center" prop="startTime" label="开始时间" min-width="180" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.startTime }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="endTime" label="发布日期" min-width="120" show-overflow-tooltip>
<el-table-column align="center" prop="endTime" label="结束时间" min-width="180" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.endTime }}</span>
</template>
......
......@@ -64,6 +64,43 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="开放报名:"
prop="isRegistration"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择是否需要实名认证', trigger: 'change' }"
>
<el-select
v-model="form.isRegistration"
placeholder="请选择是否需要报名"
size="small"
class="normalInput"
:disabled="secondFromDisabled"
>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="是否实名:"
prop="isAuthentication"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择是否需要实名认证', trigger: 'change' }"
>
<el-select
v-model="form.isAuthentication"
placeholder="请选择是否需要实名认证"
size="small"
class="normalInput"
:disabled="secondFromDisabled"
>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
......@@ -84,7 +121,7 @@
</el-col>
<el-col :span="12">
<el-form-item
label="排序:"
label="权重:"
prop="weight"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择排序号', trigger: 'change' }"
>
......@@ -99,140 +136,91 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="活动封面:">
<el-upload
accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG"
:disabled="secondFromDisabled"
class="avatar-uploader"
action="#"
:http-request="handleUpload"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<img v-if="imageUrl" :src="imageUrl" style="height: 200px;width: 200px">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>
<el-col :span="24">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="活动摘要:"
prop="summary"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入活动简介', trigger: 'blur' }"
label="开始时间:"
prop="startTime"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择开始时间', trigger: 'blur' }"
>
<el-input
v-model.trim="form.summary"
type="textarea"
<el-date-picker
v-model="form.startTime"
type="datetime"
placeholder="选择开始时间"
:disabled="secondFromDisabled"
placeholder="请输入活动摘要"
size="small"
rows="3"
class="normalInput"
:maxlength="300"
value-format="yyyy-MM-dd HH:mm"
/>
</el-form-item>
</el-col>
</el-row>-->
<el-row>
<el-col :span="24">
<el-col :span="12">
<el-form-item
label="活动内容:"
prop="details"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入活动内容', trigger: 'blur' }"
label="结束时间:"
prop="endTime"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择结束时间', trigger: 'blur' }"
>
<vue-editor
id="editorsay"
v-model="form.details"
:use-custom-image-handler="true"
:editor-toolbar="customToolbar"
<el-date-picker
v-model="form.endTime"
type="datetime"
placeholder="选择结束时间"
:disabled="secondFromDisabled"
@blur="queryRules"
@image-added="handleImageAdded"
size="small"
class="normalInput"
value-format="yyyy-MM-dd HH:mm"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="开放报名:"
prop="isRegistration"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择是否需要实名认证', trigger: 'change' }"
label="男生数量:"
prop="maleCount"
>
<el-select
v-model="form.isRegistration"
placeholder="请选择是否需要报名"
size="small"
class="normalInput"
<el-input
v-model.trim="form.maleCount"
:disabled="secondFromDisabled"
>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="是否实名:"
prop="isAuthentication"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择是否需要实名认证', trigger: 'change' }"
>
<el-select
v-model="form.isAuthentication"
placeholder="请选择是否需要实名认证"
placeholder="请输入男生数量"
size="small"
class="normalInput"
:disabled="secondFromDisabled"
>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
:maxlength="100"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="开始时间:"
prop="startTime"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择开始时间', trigger: 'blur' }"
label="女生数量:"
prop="femaleCount"
>
<el-date-picker
v-model="form.releaseDate"
type="date"
placeholder="选择发布日期"
<el-input
v-model.trim="form.femaleCount"
:disabled="secondFromDisabled"
placeholder="请女生数量"
size="small"
class="normalInput"
value-format="yyyy-MM-dd"
:maxlength="100"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="结束时间:"
prop="endTime"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择结束时间', trigger: 'blur' }"
label="人数上限:"
prop="maximumApplication"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入人数上限', trigger: 'blur' }"
>
<el-date-picker
v-model="form.releaseDate"
type="date"
placeholder="选择发布日期"
<el-input
v-model.trim="form.maximumApplication"
:disabled="secondFromDisabled"
placeholder="请输入人数上限"
size="small"
class="normalInput"
value-format="yyyy-MM-dd"
:maxlength="100"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="报名费用:"
......@@ -254,6 +242,91 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="是否会员:"
prop="sNeedMember"
:rules="{ required: !(controls.isOperation === '3'), message: '请选择是否会员', trigger: 'change' }"
>
<el-select
v-model="form.sNeedMember"
placeholder="请选择是否会员"
size="small"
class="normalInput"
:disabled="secondFromDisabled"
>
<el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="活动封面:" prop="pictureId">
<el-upload
accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG"
:disabled="secondFromDisabled"
:file-list="fileList"
class="avatar-uploader"
list-type="picture-card"
action="#"
:on-preview="handlePreview"
:on-remove="handleUploadRemoveFake"
:on-exceed="handleUploadExceed"
:before-upload="handleUploadBeforeFake"
:before-remove="handleFileRemoveBefore"
:auto-upload="true"
:limit="8"
>
<!-- <img v-if="imageUrl" :src="imageUrl" style="height: 200px;width: 200px">-->
<i class="el-icon-plus avatar-uploader-icon" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>
<el-col :span="24">
<el-form-item
label="活动摘要:"
prop="summary"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入活动简介', trigger: 'blur' }"
>
<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-col :span="24">
<el-form-item
label="活动内容:"
prop="details"
:rules="{ required: !(controls.isOperation === '3'), message: '请输入活动内容', trigger: 'blur' }"
>
<vue-editor
id="editorsay"
v-model="form.details"
:use-custom-image-handler="true"
:editor-toolbar="customToolbar"
:disabled="secondFromDisabled"
@blur="queryRules"
@image-added="handleImageAdded"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
......@@ -274,6 +347,7 @@ import {
import { updateResponseUrl } from '@/utils/updateUrl'
import { VueEditor } from 'vue2-editor'
import { yesOrNo, enableOrDisable } from '@/utils/allPageData'
import {uploadPublic} from "@/api/system/ossInfo";
/* import { uploadPublic } from '@/api/contentManagement/sysContest'*/
export default {
......@@ -345,7 +419,7 @@ export default {
createDate: undefined,
deptId: undefined,
deptTwoId: undefined,
equipmentName: undefined,
activityName: undefined,
flag: undefined,
photoossId: undefined,
summary: undefined,
......@@ -357,6 +431,9 @@ export default {
isAuthentication: undefined,
registrationFee: '0.00'
},
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
yesOrNo,
enableOrDisable,
// 状态
......@@ -395,7 +472,43 @@ export default {
this.setFormDefaults()
},
methods: {
// 上传
handlePreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleFileRemoveBefore(file, fileList) {
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张图片`)
},
async handleUploadBeforeFake(file) {
if (!file.type.startsWith('image/')) {
this.$message.warning('只支持上传图片')
return false
}
const formData = new FormData()
formData.append('file', file)
formData.append('temp', 'CmsActivity')
try {
const response = await uploadPublic(formData)
this.fileList.push({
url: response.data.url,
name: response.data.activityName,
businessId: response.data.businessId
})
} catch (error) {
console.error('上传失败:', error)
}
},
setFormDefaults() {
const isOperation = this.isOperation
......@@ -419,7 +532,7 @@ export default {
* @param:
* @return:
**/
handleUpload(file) {
/* handleUpload(file) {
const formData = new FormData()
formData.append('file', file.file)
formData.append('temp', 'newInformation')
......@@ -447,7 +560,7 @@ export default {
// resetUploader()
// } else { }
// })
},
},*/
// 查询详情
getDetail() {
......@@ -607,14 +720,14 @@ export default {
border-color: #409EFF;
}
::v-deep.avatar-uploader-icon {
/*::v-deep.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
}*/
::v-deep.avatar {
width: 178px;
......
......@@ -20,13 +20,15 @@
:icon="commonField.queryIcon"
:size="commonField.smallSize"
@click="handleQuery"
>查询</el-button>
>查询
</el-button>
<el-button
:class="commonField.resetClass"
:icon="commonField.resetIcon"
:size="commonField.smallSize"
@click="resetQuery"
>重置</el-button>
>重置
</el-button>
</el-form-item>
<div style="float: right">
<el-form-item>
......@@ -36,7 +38,8 @@
:icon="commonField.addIcon"
:size="commonField.smallSize"
@click="handleAdd"
>新增</el-button>
>新增
</el-button>
</el-form-item>
</div>
......@@ -81,11 +84,6 @@
</div>
</template>-->
<el-table-column align="center" label="分类" prop="type" :show-overflow-tooltip="true" min-width="80">
<!-- <template slot-scope="scope">
<span>
{{ getTypeValue(scope.row.type) || '-' }}
</span>
</template>-->
<template slot-scope="scope">
<span v-if="scope.row.type=='0'">首页</span>
<span v-else-if="scope.row.type=='1'">活动</span>
......@@ -97,7 +95,7 @@
{{ scope.row.bannerName || '-' }}
</template>
</el-table-column>
<el-table-column label="排序" prop="weight" :show-overflow-tooltip="true" min-width="55">
<el-table-column label="权重" prop="weight" :show-overflow-tooltip="true" min-width="55">
<template slot-scope="scope">
{{ scope.row.weight || '-' }}
</template>
......@@ -120,13 +118,15 @@
:type="commonField.typeParent"
:size="commonField.size"
@click="handleUpdate(scope.row)"
>修改</el-button>
>修改
</el-button>
<el-button
:class="commonField.delClass"
:type="commonField.typeParent"
:size="commonField.size"
@click="handleDelete(scope.row)"
>删除</el-button>
>删除
</el-button>
</template>
</el-table-column>
</el-table>
......@@ -152,26 +152,29 @@
</el-select>
</el-form-item>
<el-form-item label="名称:" prop="bannerName">
<el-input v-model.trim="form.bannerName" show-word-limit :maxlength="500" placeholder="请输入banner名字" />
<el-input v-model.trim="form.bannerName" show-word-limit :maxlength="500" placeholder="请输入banner名字"/>
</el-form-item>
<el-form-item label="封面:" prop="bannerPicture">
<el-input v-model="form.bannerPicture" style="display: none" />
<el-form-item label="封面:" prop="pictureId">
<el-upload
accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG"
ref="upload"
:file-list="fileList"
list-type="picture-card"
class="avatar-uploader"
action="#"
accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG"
:http-request="handleUpload"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:on-preview="handlePreview"
:on-remove="handleUploadRemoveFake"
:on-exceed="handleUploadExceed"
:before-upload="handleUploadBeforeFake"
:before-remove="handleFileRemoveBefore"
:auto-upload="true"
:limit="8"
>
<img v-if="imageUrl" :src="imageUrl" style="height: 200px;width: 200px">
<i v-else class="el-icon-plus avatar-uploader-icon" />
<i class="el-icon-plus avatar-uploader-icon"/>
</el-upload>
</el-form-item>
<el-form-item label="排序:" prop="weight">
<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%" controls-position="right" :min="0"/>
</el-form-item>
<el-form-item label="状态:">
<el-radio-group v-model="form.flag" style="width: 100%">
......@@ -201,8 +204,10 @@ import {
listCmsBanner,
updateCmsBanner
} from '@/api/contentManagement/banner'
import { typeField, enableOrDisable } from '@/utils/allPageData'
import {typeField, enableOrDisable} from '@/utils/allPageData'
import commonField from '@/utils/commonField'
import {uploadPublic} from "@/api/system/ossInfo";
export default {
name: 'CmsBanner',
data() {
......@@ -240,35 +245,34 @@ export default {
queryParams: {
page: 1,
rows: 10,
bannerPicture: undefined,
pictureId: undefined,
bannerName: undefined,
type: undefined,
weight: undefined,
linkUrl: undefined,
path: undefined,
flag: ''
},
showImg: false,
imagUrl: '',
// 表单参数
form: {},
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
typeField,
enableOrDisable,
// 表单校验
rules: {
bannerName: [
{ required: true, message: '请输入名称', trigger: 'blur' }
{required: true, message: '请输入名称', trigger: 'blur'}
],
type: [
{ required: true, message: '请选择类型' }
{required: true, message: '请选择类型'}
],
weight: [
{ required: true, message: '请输入排序' }
],
bannerPicture: [
{ required: true, message: '请上传图片' }
{required: true, message: '请输入排序'}
]
}
......@@ -283,6 +287,24 @@ export default {
this.getList() // 列表查询
},
methods: {
// 上传
handlePreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleFileRemoveBefore(file, fileList) {
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) {
// 查找 type 对应的 value
......@@ -290,8 +312,12 @@ export default {
return found ? found.value : null // 如果没有找到对应的分类,返回 null
},
// 获取图片的正确路径
getImagePath() {
return require(`@/assets/image/testImage/test.png`)
getImagePath(path) {
// 返回图片路径
if (path) {
return path
}
return ''
},
// 封面图片预览
justEnter(event) {
......@@ -332,9 +358,9 @@ export default {
// 模拟本地上传,将图片保存到本地某个目录(如:assets/images)
const localPath = this.getImagePath(file.file) // 获取本地存储的路径
// 假设你将本地路径保存到 form.bannerPicture
// 假设你将本地路径保存到 form.pictureId
this.imageUrl = localPath // 显示图片路径
this.form.bannerPicture = localPath // 保存到表单字段中
this.form.pictureId = localPath // 保存到表单字段中
},
/* handleUpload(file) {
const formData = new FormData()
......@@ -344,13 +370,13 @@ export default {
// console.log('url', res.data.url)
this.imageUrl = res.data.url
this.showImg = true
this.form.bannerPicture = res.data.businessId
this.form.pictureId = res.data.businessId
})
},*/
handleAvatarSuccess(res, file) {
console.log('res', res)
// this.imageUrl = URL.createObjectURL(file.raw)
// this.form.bannerPicture = res.data.businessId
// this.form.pictureId = res.data.businessId
// this.form.url = res.data.url
},
beforeAvatarUpload(file) {
......@@ -395,15 +421,16 @@ export default {
},
// 表单重置
reset() {
this.fileList = []
this.form = {
businessId: undefined,
bannerPicture: undefined,
pictureId: undefined,
bannerName: undefined,
type: undefined,
weight: undefined,
remarks: undefined,
linkUrl: undefined,
flag: '0'
path: undefined,
flag: '1'
}
},
/** 查询按钮操作 */
......@@ -416,11 +443,11 @@ export default {
this.queryParams = {
page: 1,
rows: 10,
bannerPicture: undefined,
pictureId: undefined,
bannerName: undefined,
type: undefined,
weight: undefined,
linkUrl: undefined,
path: undefined,
flag: ''
}
this.handleQuery()
......@@ -439,7 +466,11 @@ export default {
const id = row.businessId
getCmsBanner(id).then(response => {
this.form = response.data
this.imageUrl = response.data.url
const param = {
url: response.data.path
}
this.fileList.push(param)
console.log("hhahaah",this.fileList)
this.open = true
this.title = '修改banner'
})
......@@ -451,19 +482,19 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
}).then(function () {
return updateCmsBanner(row)
}).then(() => {
this.$message({
message: text + '成功',
type: 'success'
})
}).catch(function() {
}).catch(function () {
row.flag = row.flag === '0' ? '1' : '0'
})
},
/** 提交按钮 */
submitForm: function() {
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.businessId !== undefined) {
......@@ -472,12 +503,17 @@ export default {
this.open = false
this.getList()
})
} else {
}else {
// 确保 pictureId 已经从 fileList 中获得正确的 businessId
if (this.form.pictureId) {
addCmsBanner(this.form).then(response => {
this.msgSuccess('新增成功')
this.open = false
this.getList()
})
this.msgSuccess('新增成功');
this.open = false;
this.getList();
});
} else {
this.$message.warning('请上传封面图片');
}
}
}
})
......@@ -489,7 +525,7 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
}).then(function () {
return delCmsBanner(id)
}).then(() => {
this.getList()
......@@ -497,9 +533,36 @@ export default {
message: '删除成功',
type: 'success'
})
}).catch(function() {
}).catch(function () {
})
},
async handleUploadBeforeFake(file) {
if (!file.type.startsWith('image/')) {
this.$message.warning('只支持上传图片')
return false
}
const formData = new FormData()
formData.append('file', file)
formData.append('temp', 'CmsBanner')
try {
// 发起上传请求
const response = await uploadPublic(formData);
// 获取返回的 businessId,并更新 form.pictureId
const businessId = response.data.businessId
this.form.pictureId = businessId
// 更新 fileList,保存文件的 URL 和其他信息
this.fileList.push({
url: response.data.url,
name: response.data.bannerName,
businessId: businessId
});
} catch (error) {
console.error('上传失败:', error);
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams
......@@ -507,7 +570,7 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
}).then(function () {
return exportCmsBanner(queryParams).then(response => {
const blob = new Blob([response])
const downloadElement = document.createElement('a')
......@@ -537,15 +600,16 @@ export default {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
/*.avatar-uploader-icon {
font-size: 30px;
color: #8c939d;
width: 178px;
height: 178px;
width: 180px;
height: 180px;
line-height: 178px;
text-align: center;
border: 1px solid #dcdfe6;
}
}*/
.app-container {
font-size: 18px;
padding: 0;
......@@ -554,7 +618,8 @@ export default {
margin: 10px;
height: 45px;
}
/* ::v-deep .el-table .cell {
/* ::v-deep .el-table .cell {
text-align: center !important;
}
::v-deep .el-table th .cell{
......
......@@ -98,10 +98,12 @@
<el-tag v-if="scope.row.isRecommended === 1" type="warning" size="medium ">推荐</el-tag>
</template>
</el-table-column>
<el-form-item label="排序:" prop="weight">
<el-input-number v-model.trim="form.weight" style="width: 100%" controls-position="right" :min="0" />
</el-form-item>
<el-table-column align="left" prop="releaseStatus" label="发布状态" min-width="120" show-overflow-tooltip>
<el-table-column label="权重" prop="weight" :show-overflow-tooltip="true" min-width="55">
<template slot-scope="scope">
{{ scope.row.weight || '-' }}
</template>
</el-table-column>
<el-table-column align="left" prop="releaseStatus" label="状态" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<el-switch
v-model="scope.row.flag"
......
......@@ -87,21 +87,24 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="公告封面:">
<el-form-item label="公告封面:" prop="pictureId">
<el-upload
accept=".png,.jpg,.jpeg,.PNG,.JPG,.JPEG"
:disabled="secondFromDisabled"
ref="upload"
:file-list="fileList"
list-type="picture-card"
class="avatar-uploader"
action="#"
:http-request="handleUpload"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:on-preview="handlePreview"
:on-remove="handleUploadRemoveFake"
:on-exceed="handleUploadExceed"
:before-upload="handleUploadBeforeFake"
:before-remove="handleFileRemoveBefore"
:auto-upload="true"
:limit="8"
>
<img v-if="imageUrl" :src="imageUrl" style="height: 200px;width: 200px">
<i v-else class="el-icon-plus avatar-uploader-icon" />
<i class="el-icon-plus avatar-uploader-icon"/>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -160,6 +163,7 @@ import {
import { updateResponseUrl } from '@/utils/updateUrl'
import { VueEditor } from 'vue2-editor'
import { yesOrNo, enableOrDisable } from '@/utils/allPageData'
import {uploadPublic} from "@/api/system/ossInfo";
/* import { uploadPublic } from '@/api/contentManagement/sysContest'*/
export default {
......@@ -210,6 +214,9 @@ export default {
// 1:代表新增 2:代表编辑 3:代表查看
isOperation: '1'
},
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
fileUpload: '/dev-api/common/fileUpload?file=' + this.file + '&temp=' + 'activity',
// 提交表单
form: {
......@@ -219,7 +226,7 @@ export default {
createDate: undefined,
deptId: undefined,
deptTwoId: undefined,
equipmentName: undefined,
noticeName: undefined,
flag: undefined,
photoossId: undefined,
summary: undefined,
......@@ -266,6 +273,51 @@ export default {
this.setFormDefaults()
},
methods: {
// 上传
handlePreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleFileRemoveBefore(file, fileList) {
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张图片`)
},
async handleUploadBeforeFake(file) {
if (!file.type.startsWith('image/')) {
this.$message.warning('只支持上传图片')
return false
}
const formData = new FormData()
formData.append('file', file)
formData.append('temp', 'CmsNotice')
try {
// 发起上传请求
const response = await uploadPublic(formData);
// 获取返回的 businessId,并更新 form.pictureId
const businessId = response.data.businessId
this.form.pictureId = businessId
// 更新 fileList,保存文件的 URL 和其他信息
this.fileList.push({
url: response.data.url,
name: response.data.noticeName,
businessId: businessId
});
} catch (error) {
console.error('上传失败:', error);
}
},
setFormDefaults() {
const isOperation = this.isOperation
......
......@@ -75,7 +75,7 @@
<el-table-column align="center" prop="weight" label="排序" min-width="200" show-overflow-tooltip />
<el-table-column align="center" prop="articleCount" label="动态数" min-width="200" show-overflow-tooltip />
<el-table-column align="left" prop="flag" label="发布状态" min-width="120" show-overflow-tooltip>
<el-table-column align="left" prop="flag" label="状态" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<el-switch
v-model="scope.row.flag"
......@@ -157,12 +157,12 @@
<el-form-item label="话题名称:" prop="topicName">
<el-input v-model.trim="form.topicName" show-word-limit :maxlength="500" placeholder="请输入话题名称" />
</el-form-item>
<el-form-item label="排序:" prop="weight">
<el-form-item label="权重:" prop="weight">
<el-input-number v-model.trim="form.weight" style="width: 100%" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="动态数:" prop="articleCount">
<el-input-number v-model.trim="form.articleCount" style="width: 100%" controls-position="right" :min="0" />
</el-form-item>
<!-- <el-form-item label="动态数:" prop="articleCount">-->
<!-- <el-input-number v-model.trim="form.articleCount" style="width: 100%" controls-position="right" :min="0" />-->
<!-- </el-form-item>-->
<el-form-item label="状态:">
<el-radio-group v-model="form.flag" style="width: 100%">
<el-radio
......
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