You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
601 lines
20 KiB
601 lines
20 KiB
<template>
|
|
<!-- 图文信息管理恒信动态管理 -->
|
|
<div>
|
|
<div class="gva-search-box">
|
|
<el-form ref="searchForm" :inline="true" :model="searchInfo">
|
|
<el-form-item label="文章标题">
|
|
<el-input v-model="queryParams.title" placeholder="文章标题" />
|
|
</el-form-item>
|
|
<el-form-item label="所属栏目">
|
|
<el-select v-model="queryParams.parentIdStr" clearable placeholder="请选择">
|
|
<el-option
|
|
v-for="item in archivetypeList"
|
|
:key="item.outID"
|
|
:label="item.columnr_name"
|
|
:value="item.outID">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="所属栏目">
|
|
<el-input v-model="queryParams.column" placeholder="所属栏目" />
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
|
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="gva-table-box">
|
|
<div class="gva-btn-list">
|
|
<el-button size="mini" type="primary" icon="el-icon-plus" @click="openDialog('add')">新增</el-button>
|
|
</div>
|
|
<el-table :data="tableData" border>
|
|
<el-table-column label="文章标题" prop="title" />
|
|
<el-table-column label="所属栏目" prop="parentColumnTitle" />
|
|
<el-table-column label="所属子栏目" prop="columnTitle" />
|
|
<el-table-column label="可见范围" prop="scope" />
|
|
<el-table-column label="访问数据" prop="data" center>
|
|
<template #default="scope">
|
|
<div>
|
|
<el-tag class="right mouse" @click="showDetails(scope.row,parameter=1)">阅读量:{{scope.row.reading}}</el-tag>
|
|
<el-tag class="right">评论数:{{scope.row.comment}}</el-tag>
|
|
<el-tag class="right">收藏数:{{scope.row.collect}}</el-tag>
|
|
<el-tag class="right">点赞数:{{scope.row.like}}</el-tag>
|
|
<el-tag class="right">踩:{{scope.row.tread}}</el-tag>
|
|
<el-tag>综合评分:{{scope.row.score}}</el-tag>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="状态" prop="state" center>
|
|
<template #default="scope">
|
|
<div>
|
|
<el-switch style="display: block" v-model="scope.row.state" active-color="#13ce66" inactive-color="#ff4949" active-text="启用" inactive-text="禁用"></el-switch>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="left" fixed="right" label="操作" width="200">
|
|
<template #default="scope">
|
|
<el-button icon="el-icon-edit" size="small" type="text" @click="editOperate(scope.row)">修改</el-button>
|
|
<el-button icon="el-icon-delete" size="small" type="text" @click="deleteOperate(scope.row)">删除</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<!-- 分页器 -->
|
|
<el-pagination
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
:current-page="currentPage4"
|
|
:page-sizes="[10, 20, 30, 40]"
|
|
:page-size="queryParams.pagesize"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="total">
|
|
</el-pagination>
|
|
</div>
|
|
|
|
<!-- 新增弹窗 -->
|
|
<el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="dialogTitle">
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
<el-form-item label="标题" prop="title">
|
|
<el-input v-model="form.title" placeholder="标题" />
|
|
</el-form-item>
|
|
<el-form-item label="归属栏目" prop="column">
|
|
<el-select clearable v-model="form.istrue" placeholder="请选择">
|
|
<el-option label="通知公告" :value=1></el-option>
|
|
<el-option label="检查通报" :value=2></el-option>
|
|
<el-option label="新闻动态" :value=3></el-option>
|
|
<el-option label="疫情防控" :value=4></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="文档来源" prop="source">
|
|
<el-radio-group v-model="form.source" @change='changeSource'>
|
|
<el-radio label=1>原创</el-radio>
|
|
<el-radio label=2>转帖</el-radio>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
<el-form-item v-show="originalUrlShow" label="原文地址" prop="source">
|
|
<el-input v-model="form.originalUrl" placeholder="请输入原文地址" />
|
|
</el-form-item>
|
|
<el-form-item label="上传封面" prop="source">
|
|
<!-- action为上传地址 -->
|
|
<el-upload
|
|
class="upload-demo"
|
|
drag
|
|
:before-upload="checkFile"
|
|
action=""
|
|
multiple>
|
|
<i class="el-icon-upload"></i>
|
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
|
<div class="el-upload__tip" slot="tip">只能上传jpg/png/jpeg文件</div>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="文档标签" prop="documentationTitle">
|
|
<el-input v-model="form.documentationTitle" placeholder="请输入文档标签,每个标签请用,隔开!"/>
|
|
</el-form-item>
|
|
<el-form-item label="文档描述" prop="describe">
|
|
<el-input type="textarea" v-model="form.describe" placeholder="请输入简略描述"/>
|
|
</el-form-item>
|
|
<el-form-item label="使用外链" prop="link">
|
|
<el-input v-model="form.link" placeholder="当使用外链地址的时候!(链接以http://或https://开头)"/>
|
|
</el-form-item>
|
|
<el-form-item label="文档正文" prop="text">
|
|
<tinymce ref="editor"
|
|
v-model="form.msg"
|
|
:disabled="disabled"
|
|
@onClick="onClick">
|
|
</tinymce>
|
|
</el-form-item>
|
|
<el-form-item label="上传正文" prop="link">
|
|
<el-upload
|
|
class="upload-demo"
|
|
action=""
|
|
:before-upload="checkFilePdf"
|
|
:on-preview="handlePreview"
|
|
:on-remove="handleRemove"
|
|
multiple
|
|
:on-exceed="handleExceed"
|
|
:file-list="fileList">
|
|
<el-button size="small" type="primary">点击上传</el-button>
|
|
<div slot="tip" class="el-upload__tip">只能上传pdf文件</div>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="附件" prop="link">
|
|
<el-upload
|
|
class="upload-demo"
|
|
action=""
|
|
:on-change="handleChange"
|
|
:file-list="fileList1">
|
|
<el-button size="small" type="primary">点击上传</el-button>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="附件下载" prop="uploadSettings">
|
|
<el-switch
|
|
style="display: block"
|
|
v-model="form.uploadSettings"
|
|
active-color="#13ce66"
|
|
inactive-color="#ff4949"
|
|
active-text="允许"
|
|
inactive-text="禁止">
|
|
</el-switch>
|
|
</el-form-item>
|
|
<el-form-item label="排序" prop="sort">
|
|
<el-input
|
|
placeholder="请输入排序"
|
|
v-model="form.sort"
|
|
clearable>
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="评论设置" prop="commentSettings">
|
|
<el-switch
|
|
style="display: block"
|
|
v-model="form.uploadSettings"
|
|
active-color="#13ce66"
|
|
inactive-color="#ff4949"
|
|
active-text="允许"
|
|
inactive-text="禁止">
|
|
</el-switch>
|
|
</el-form-item>
|
|
<el-form-item label="访问权限" prop="commentSettings">
|
|
<el-radio v-model="form.authority" label="1">公开</el-radio>
|
|
<el-radio v-model="form.authority" label="2">分厂</el-radio>
|
|
<el-radio v-model="form.authority" label="3">工段</el-radio>
|
|
<el-radio v-model="form.authority" label="4">自定义</el-radio>
|
|
</el-form-item>
|
|
</el-form>
|
|
<template #footer>
|
|
<div class="dialog-footer">
|
|
<el-button size="small" @click="closeDialog">取 消</el-button>
|
|
<el-button size="small" type="primary" @click="enterDialog">确 定</el-button>
|
|
</div>
|
|
</template>
|
|
</el-dialog>
|
|
|
|
<!-- 修改弹窗 -->
|
|
<el-dialog v-model="editDialogFormVisible" :before-close="closeEditDialog" title="修改顶级栏目" width="20%">
|
|
<el-form ref="editForm" :model="editForm" :rules="editRules" label-width="80px">
|
|
|
|
<el-form-item label="栏目名称" prop="user_name">
|
|
<el-input v-model="editForm.user_name" />
|
|
</el-form-item>
|
|
<el-form-item label="序号" prop="user_wechat">
|
|
<el-input v-model="editForm.user_wechat" />
|
|
</el-form-item>
|
|
</el-form>
|
|
<template #footer>
|
|
<div class="dialog-footer">
|
|
<el-button size="small" @click="closeEditDialog">取 消</el-button>
|
|
<el-button size="small" type="primary" @click="edit">确 定</el-button>
|
|
</div>
|
|
</template>
|
|
</el-dialog>
|
|
<!-- 详情弹窗 -->
|
|
<el-dialog v-model="detailsDialogFormVisible" :before-close="closeDetailsDialog" :title="detailsTittle" width="30%">
|
|
<el-table :data="detailsData">
|
|
<el-table-column label="工号" prop="joBnumber" />
|
|
<el-table-column label="姓名" prop="name" />
|
|
<el-table-column label="时间" prop="date" />
|
|
</el-table>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
// 获取列表内容封装在mixins内部 getTableData方法 初始化已封装完成 条件搜索时候 请把条件安好后台定制的结构体字段 放到 this.searchInfo 中即可实现条件搜索
|
|
import {
|
|
archivetypelist
|
|
} from '@/api/documentation'
|
|
import {
|
|
archivefilelist
|
|
} from '@/api/comment'
|
|
// import infoList from '@/mixins/infoList'
|
|
// import EditorBar from '../../../components/wangEnduit/index.vue'
|
|
// 富文本组件
|
|
// import Editor from "@/components/Editor/index.vue"
|
|
import tinymce from "@/components/tinymce/tinymce-editor.vue"
|
|
export default {
|
|
components: {
|
|
tinymce
|
|
},
|
|
name: 'Notify',
|
|
// mixins: [infoList],
|
|
data() {
|
|
return {
|
|
// 查询参数
|
|
queryParams: {
|
|
page: 1,
|
|
pagesize: 10,
|
|
parentId:null,
|
|
parentIdStr:''
|
|
},
|
|
// listApi: archivefilelist,
|
|
originalUrlShow:false,
|
|
detailsData:[
|
|
{
|
|
joBnumber:'123456',
|
|
name:'张三',
|
|
date:'2021-12-06 08:16:02'
|
|
},
|
|
{
|
|
joBnumber:'654321',
|
|
name:'李四',
|
|
date:'2021-12-05 21:28:28'
|
|
},
|
|
{
|
|
joBnumber:'963258',
|
|
name:'王五',
|
|
date:'2021-12-05 15:32:44'
|
|
},
|
|
{
|
|
joBnumber:'456789',
|
|
name:'孙六',
|
|
date:'2021-12-05 11:28:24'
|
|
},
|
|
],
|
|
detailsTittle:'',
|
|
tableData:[],
|
|
// tableData:[
|
|
// {
|
|
// // id
|
|
// id:1,
|
|
// //文章标题
|
|
// title:'2021年11月二级库检查通报',
|
|
// //所属栏目
|
|
// column:'检查通报',
|
|
// //可见范围
|
|
// scope:'公开',
|
|
// //阅读量
|
|
// reading:22,
|
|
// //评论数
|
|
// comment:66,
|
|
// //收藏数
|
|
// collect:11,
|
|
// //点赞数
|
|
// like:33,
|
|
// //踩
|
|
// tread:44,
|
|
// //综合评分
|
|
// score:55,
|
|
// //状态
|
|
// state:true
|
|
// },
|
|
// {
|
|
// // id
|
|
// id:1,
|
|
// //文章标题
|
|
// title:'机焦车间简报',
|
|
// //所属栏目
|
|
// column:'新闻动态',
|
|
// //可见范围
|
|
// scope:'自定义',
|
|
// //阅读量
|
|
// reading:22,
|
|
// //评论数
|
|
// comment:66,
|
|
// //收藏数
|
|
// collect:11,
|
|
// //点赞数
|
|
// like:33,
|
|
// //踩
|
|
// tread:44,
|
|
// //综合评分
|
|
// score:55,
|
|
// //状态
|
|
// state:true
|
|
// },
|
|
// ],
|
|
// 栏目List
|
|
archivetypeList:[],
|
|
fileList1:[],
|
|
fileList:[],
|
|
detailsDialogFormVisible:false,
|
|
editDialogFormVisible:false,
|
|
deleteVisible: false,
|
|
dialogFormVisible: false,
|
|
dialogTitle: '新增通知人',
|
|
apis: [],
|
|
form:{
|
|
title:null,
|
|
source:null,
|
|
istrue:null
|
|
},
|
|
type: '',
|
|
rules: {
|
|
user_name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
|
user_wechat: [{ required: true, message: '请输入微信UID', trigger: 'blur' }],
|
|
},
|
|
editRules: {
|
|
user_name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
|
user_wechat: [{ required: true, message: '请输入微信UID', trigger: 'blur' }],
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
// this.getTableData();
|
|
this.getArchivefilelist()
|
|
this.getArchivetypelist()
|
|
},
|
|
watch: {
|
|
queryParams(newVal, oldVal) {
|
|
this.newVal = newVal
|
|
console.log("inputVal = " + newVal + " , oldValue = " + oldVal)
|
|
}
|
|
},
|
|
methods: {
|
|
// 获取栏目List
|
|
async getArchivetypelist(){
|
|
const res = await archivetypelist(this.queryParams)
|
|
this.archivetypeList =res.data.list
|
|
},
|
|
// pagesize变化
|
|
handleSizeChange(val) {
|
|
this.queryParams.pagesize=val
|
|
this.getArchivefilelist()
|
|
},
|
|
// page变化
|
|
handleCurrentChange(val) {
|
|
this.queryParams.page=val
|
|
this.getArchivefilelist()
|
|
},
|
|
// 获取文章List
|
|
async getArchivefilelist(){
|
|
if(this.queryParams.parentId==null){
|
|
this.queryParams.parentId=0
|
|
}
|
|
const res = await archivefilelist(this.queryParams)
|
|
this.tableData = res.data.list
|
|
this.total=res.data.total
|
|
this.queryParams.pagesize=res.data.pageSize,
|
|
this.queryParams.page=res.data.page,
|
|
this.queryParams.parentId=null
|
|
console.log(this.queryParams.parentId)
|
|
console.log(res.data)
|
|
},
|
|
onReset() {
|
|
this.searchInfo = {}
|
|
},
|
|
// 条件搜索前端看此方法
|
|
onSubmit() {
|
|
this.page = 1
|
|
this.pageSize = 10
|
|
this.getArchivefilelist()
|
|
},
|
|
// 文档来源数据监听
|
|
changeSource(val){
|
|
if(val==2){
|
|
this.originalUrlShow=true
|
|
}else{
|
|
this.originalUrlShow=false
|
|
}
|
|
},
|
|
handleChange(file, fileList) {
|
|
this.fileList = fileList.slice(-3);
|
|
},
|
|
handleRemove(file, fileList) {
|
|
console.log(file, fileList);
|
|
},
|
|
handlePreview(file) {
|
|
console.log(file);
|
|
},
|
|
handleExceed(files, fileList) {
|
|
this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
|
|
},
|
|
beforeRemove(file, fileList) {
|
|
return this.$confirm(`确定移除 ${ file.name }?`);
|
|
},
|
|
// 上传封面前事件
|
|
checkFile(file) {
|
|
|
|
var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)
|
|
const extension = testmsg === 'jpg'
|
|
const extension1 = testmsg === 'png'
|
|
const extension2 = testmsg === 'jpeg'
|
|
if(!extension && !extension1 && !extension2) {
|
|
this.$message({
|
|
message: '您上传的文件格式不符合要求!只支持jpg/png/jpeg格式的文件',
|
|
type: 'warning'
|
|
});
|
|
}
|
|
console.log("extension")
|
|
console.log(extension)
|
|
return extension;
|
|
|
|
},
|
|
|
|
// 上传pdf前事件
|
|
checkFilePdf(file) {
|
|
|
|
var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)
|
|
const extension = testmsg === 'Pdf'
|
|
const extension1 = testmsg === 'pdf'
|
|
const extension2 = testmsg === 'PDF'
|
|
if(!extension && !extension1 && !extension2) {
|
|
this.$message({
|
|
message: '您上传的文件格式不符合要求!只支持PDF格式的文件',
|
|
type: 'warning'
|
|
});
|
|
}
|
|
console.log("extension")
|
|
console.log(extension)
|
|
return extension;
|
|
|
|
},
|
|
|
|
// 点击详情按钮弹出详情
|
|
showDetails(row,parameter){
|
|
console.log("parameter")
|
|
console.log(parameter)
|
|
this.detailsTittle=row.title;
|
|
this.detailsDialogFormVisible=true
|
|
},
|
|
// 删除操作
|
|
async deleteOperate(row) {
|
|
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
})
|
|
.then(async() => {
|
|
const res = await delnoticeuser({ id: row.id })
|
|
if (res.code === 0) {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '删除成功!'
|
|
})
|
|
|
|
// this.getNoticeuserList()
|
|
}
|
|
})
|
|
},
|
|
// 修改操作
|
|
edit(){
|
|
this.$refs.editForm.validate(async valid => {
|
|
if (valid) {
|
|
const res = await eitenoticeuser(this.editForm)
|
|
if (res.code === 0) {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '添加成功',
|
|
showClose: true
|
|
})
|
|
}
|
|
this.getNoticeuserList()
|
|
this.closeEditDialog()
|
|
}
|
|
})
|
|
},
|
|
// 新增操作
|
|
add(){
|
|
this.$refs.addForm.validate(async valid => {
|
|
if (valid) {
|
|
const res = await addnoticeuser(this.addform)
|
|
if (res.code === 0) {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '添加成功',
|
|
showClose: true
|
|
})
|
|
}
|
|
this.getNoticeuserList()
|
|
this.closeDialog()
|
|
}
|
|
})
|
|
},
|
|
// 新增/编辑
|
|
openDialog(type) {
|
|
switch (type) {
|
|
case 'add':
|
|
this.dialogTitle = '新增'
|
|
break
|
|
case 'edit':
|
|
this.dialogTitle = '编辑'
|
|
break
|
|
default:
|
|
break
|
|
}
|
|
this.type = type
|
|
this.dialogFormVisible = true
|
|
},
|
|
|
|
// 获取通知人列表
|
|
// async getNoticeuserList(){
|
|
// const res=await noticeuserlist()
|
|
// if(res.code==0){
|
|
// this.tableData=res.data
|
|
// }
|
|
// },
|
|
// 点击修改事件
|
|
async editOperate(row) {
|
|
const res = await looknoticeusercont({ id: row.id })
|
|
this.form = res.data
|
|
this.dialogFormVisible=true
|
|
},
|
|
|
|
|
|
|
|
// 新增form清空
|
|
initForm() {
|
|
this.$refs.form.resetFields()
|
|
this.form = {
|
|
user_name:'',
|
|
user_wechat:''
|
|
}
|
|
},
|
|
// 修改form清空
|
|
editInitForm() {
|
|
this.$refs.editForm.resetFields()
|
|
this.editForm = {
|
|
user_name:'',
|
|
user_wechat:''
|
|
}
|
|
},
|
|
// 关闭添加弹框事件
|
|
closeDialog() {
|
|
this.initForm()
|
|
this.dialogFormVisible = false
|
|
},
|
|
// 关闭修改弹框事件
|
|
closeEditDialog() {
|
|
this.editInitForm()
|
|
this.editDialogFormVisible = false
|
|
},
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.mouse{
|
|
cursor:pointer
|
|
}
|
|
.right{
|
|
margin-right: 5px;
|
|
}
|
|
.button-box {
|
|
padding: 10px 20px;
|
|
.el-button {
|
|
float: right;
|
|
}
|
|
}
|
|
.warning {
|
|
color: #dc143c;
|
|
}
|
|
</style>
|
|
|