|
|
|
@ -2,37 +2,68 @@ |
|
|
|
<el-card shadow="never" class="aui-card--fill"> |
|
|
|
<div class="mod-__masternotice}"> |
|
|
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> |
|
|
|
<el-form-item> |
|
|
|
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> |
|
|
|
<el-form-item label="通知内容" prop="noticeContent"> |
|
|
|
<el-input v-model="dataForm.noticeContent" placeholder="通知内容" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|
|
|
<el-form-item label="状态" prop="state"> |
|
|
|
<el-select v-model="dataForm.state" placeholder="状态" clearable> |
|
|
|
<el-option v-for="item in stateArr" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<div class="block"> |
|
|
|
<el-form-item label="时间" prop="startTime"> |
|
|
|
<el-date-picker |
|
|
|
v-model="dataForm.startTime" |
|
|
|
type="date" |
|
|
|
:picker-options="pickerBeginDateBefore" |
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
format="yyyy-MM-dd" |
|
|
|
placeholder="选择日期时间" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="至" label-width="25px" prop="endTime"> |
|
|
|
<el-date-picker |
|
|
|
v-model="dataForm.endTime" |
|
|
|
type="date" |
|
|
|
:picker-options="pickerBeginDateAfter" |
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
format="yyyy-MM-dd" |
|
|
|
placeholder="选择日期时间" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button v-if="$hasPermission(':masternotice:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|
|
|
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button v-if="$hasPermission(':masternotice:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> |
|
|
|
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</el-form> |
|
|
|
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> |
|
|
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> |
|
|
|
<el-table-column prop="id" label="主键" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="userId" label="用户ID" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column label="序号" header-align="center" align="center" width="50px"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{scope.$index+1}} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="noticeTitle" label="通知标题" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="noticeContent" label="通知内容" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="state" label="状态:0关闭,1发布,2置顶" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="delFlag" label="删除标记 0:未删除,1:已删除" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="revision" label="乐观锁" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="createdBy" label="创建人" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="createdTime" label="创建时间" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="updatedBy" label="更新人" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="updatedTime" label="更新时间" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="nickName" label="发布人" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="manageFlag" label="发布人身份" header-align="center" align="center" :formatter="manageFlagFormat"></el-table-column> |
|
|
|
<el-table-column prop="readCount" label="已阅读人数" header-align="center" align="center" :formatter="readCountFormat"></el-table-column> |
|
|
|
<el-table-column prop="unReadCount" label="未阅读人数" header-align="center" align="center" :formatter="unReadCountFormat"></el-table-column> |
|
|
|
<el-table-column prop="createdTime" label="发布时间" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="state" label="状态" header-align="center" align="center" :formatter="stateFormat"></el-table-column> |
|
|
|
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button v-if="$hasPermission(':masternotice:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|
|
|
<el-button v-if="$hasPermission(':masternotice:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> |
|
|
|
</template> |
|
|
|
<el-button type="text" size="small" @click="openToTopDialog($event, scope.row)" v-if="scope.row.state == 1">置顶</el-button> |
|
|
|
<el-button type="text" size="small" @click="openCancelToTopDialog($event, scope.row)" v-if="scope.row.state == 2">取消置顶</el-button> |
|
|
|
<el-button type="text" size="small" @click="openCloseTopicDialog($event, scope.row)" :disabled="scope.row.state == 0">关闭</el-button> |
|
|
|
<el-button type="text" size="small" @click="manageHandle(scope.row.id)">查看</el-button> </template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination |
|
|
|
@ -46,6 +77,36 @@ |
|
|
|
</el-pagination> |
|
|
|
<!-- 弹窗, 新增 / 修改 --> |
|
|
|
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> |
|
|
|
<el-dialog |
|
|
|
title="确定要本条内容置顶吗?" |
|
|
|
:visible.sync="toTopDialog" |
|
|
|
width="30%"> |
|
|
|
<span>置顶后,话题会被群成员优先看到,查看内容</span> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="toTopDialog = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="toTopOrCancelToTop" :disabled="toGrey">确 定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
<el-dialog |
|
|
|
title="确定要本条内容取消置顶吗?" |
|
|
|
:visible.sync="cancelToTopDialog" |
|
|
|
width="30%"> |
|
|
|
<span>取消置顶后,话题会被按照发布时间排序,需要滑动查找内容</span> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="cancelToTopDialog = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="toTopOrCancelToTop" :disabled="toGrey">确 定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
<el-dialog |
|
|
|
title="确定要将本条内容关闭吗?" |
|
|
|
:visible.sync="closeDialog" |
|
|
|
width="30%"> |
|
|
|
<span>关闭后,在移动端不显示话题内容,管理后台将保留数据,可以查看</span> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="closeDialog = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="toTopOrCancelToTop" :disabled="toGrey">确 定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</template> |
|
|
|
@ -58,18 +119,132 @@ export default { |
|
|
|
data () { |
|
|
|
return { |
|
|
|
mixinViewModuleOptions: { |
|
|
|
getDataListURL: '//masternotice/page', |
|
|
|
getDataListURL: '/cloudAnalysis/masternotice/page', |
|
|
|
getDataListIsPage: true, |
|
|
|
deleteURL: '//masternotice', |
|
|
|
deleteURL: '/cloudAnalysis/masternotice', |
|
|
|
deleteIsBatch: true |
|
|
|
}, |
|
|
|
dataForm: { |
|
|
|
id: '' |
|
|
|
}, |
|
|
|
optionForm: { |
|
|
|
id: '', |
|
|
|
state: '' |
|
|
|
}, |
|
|
|
toTopDialog: false, |
|
|
|
cancelToTopDialog: false, |
|
|
|
closeDialog: false, |
|
|
|
isTop: true, |
|
|
|
toGrey: false, |
|
|
|
pickerBeginDateBefore: { |
|
|
|
disabledDate: time => { |
|
|
|
let beginDateVal = this.dataForm.startTime |
|
|
|
if (beginDateVal) { |
|
|
|
return time.getTime() > new Date(beginDateVal).getTime() |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
pickerBeginDateAfter: { |
|
|
|
disabledDate: time => { |
|
|
|
let EndDateVal = this.dataForm.endTime |
|
|
|
if (EndDateVal) { |
|
|
|
return time.getTime() < new Date(EndDateVal).getTime() |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
stateArr: [ |
|
|
|
{ |
|
|
|
label: '全部', |
|
|
|
value: '-1' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '进行中', |
|
|
|
value: '1' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '关闭', |
|
|
|
value: '0' |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
}, |
|
|
|
components: { |
|
|
|
AddOrUpdate |
|
|
|
}, |
|
|
|
mounted () { |
|
|
|
this.getDataList() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
stateFormat: function (row, column) { |
|
|
|
let state = row.state |
|
|
|
if (state === '0') { |
|
|
|
return '已关闭' |
|
|
|
} else if (state === '1' || state === '2') { |
|
|
|
return '进行中' |
|
|
|
} |
|
|
|
}, |
|
|
|
readCountFormat: function (row, column) { |
|
|
|
let readCount = row.readCount |
|
|
|
if (readCount === '') { |
|
|
|
return '0' |
|
|
|
} else { |
|
|
|
return row.readCount |
|
|
|
} |
|
|
|
}, |
|
|
|
unReadCountFormat: function (row, column) { |
|
|
|
let unreadCount = row.unReadCount |
|
|
|
if (unreadCount === '') { |
|
|
|
return '0' |
|
|
|
} else { |
|
|
|
return row.unReadCount |
|
|
|
} |
|
|
|
}, |
|
|
|
manageFlagFormat: function (row, column) { |
|
|
|
let manageFlag = row.manageFlag |
|
|
|
if (manageFlag === '0') { |
|
|
|
return '群成员' |
|
|
|
} else if (manageFlag === '1') { |
|
|
|
return '管理员' |
|
|
|
} |
|
|
|
}, |
|
|
|
openToTopDialog (value, row) { |
|
|
|
this.toTopDialog = true |
|
|
|
this.optionForm.id = row.id |
|
|
|
this.optionForm.state = 2 |
|
|
|
}, |
|
|
|
openCancelToTopDialog (value, row) { |
|
|
|
this.cancelToTopDialog = true |
|
|
|
this.optionForm.id = row.id |
|
|
|
this.optionForm.state = 1 |
|
|
|
}, |
|
|
|
toTopOrCancelToTop () { |
|
|
|
this.toGrey = true |
|
|
|
this.$http.put(`/cloudAnalysis/masternotice`, this.optionForm).then(({ data: res }) => { |
|
|
|
if (res.code !== 0) { |
|
|
|
return this.$message.error(res.msg) |
|
|
|
} |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '修改成功!', |
|
|
|
onClose: () => { |
|
|
|
this.toTopDialog = false |
|
|
|
this.cancelToTopDialog = false |
|
|
|
this.closeDialog = false |
|
|
|
this.toGrey = false |
|
|
|
this.getDataList() |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
openCloseTopicDialog (value, row) { |
|
|
|
this.closeDialog = true |
|
|
|
this.optionForm.id = row.id |
|
|
|
this.optionForm.state = 0 |
|
|
|
}, |
|
|
|
manageHandle (noticeId) { |
|
|
|
this.$parent.selectComponent = 'Masternoticedetail' |
|
|
|
this.$router.push({ path: '/master-masternoticeroute', query: { noticeId: noticeId } }) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|