<template>
|
<el-card class="aui-card--fill" shadow="never">
|
<div class="mod-demo__sysnoticeuser">
|
<zt-table-wraper v-slot="{ table }" query-url="/sys/notice/my/page">
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
|
<el-form-item>
|
<zt-dict v-model="dataForm.type" :placeholder="$t('notice.type')" dict="notice_type"></zt-dict>
|
</el-form-item>
|
<el-form-item class="message-btn">
|
<zt-button type="query" @click="table.query()"/>
|
</el-form-item>
|
</el-form>
|
<el-table v-adaptive="{bottomOffset:60}"
|
v-loading="table.dataLoading"
|
:data="table.dataList"
|
border height="650px" @selection-change="table.selectionChangeHandle">
|
<el-table-column type="selection" width="40"/>
|
<el-table-column :label="$t('notice.title')" prop="title"/>
|
<el-table-column :label="$t('notice.type')" prop="type" width="150">
|
<template v-slot="{ row }">
|
{{ $store.getters.getDictLabel("notice_type", row.type) }}
|
</template>
|
</el-table-column>
|
<el-table-column :label="$t('notice.senderName')" prop="senderName" width="150"/>
|
<el-table-column :label="$t('notice.senderDate')" prop="senderDate" width="170"/>
|
<el-table-column :label="$t('notice.readStatus')" prop="readStatus" width="130">
|
<template v-slot="{ row }">
|
<el-tag v-if="row.readStatus === 0" size="small" type="danger">{{ $t('notice.readStatus0') }}</el-tag>
|
<el-tag v-else size="small" type="success">{{ $t('notice.readStatus1') }}</el-tag>
|
</template>
|
</el-table-column>
|
<zt-table-column-handle :has-edit="false" :has-update="false" :table="table">
|
<template v-slot="{ row }">
|
<zt-table-button @click="viewHandle(row)">{{ $t('notice.view') }}</zt-table-button>
|
</template>
|
</zt-table-column-handle>
|
</el-table>
|
</zt-table-wraper>
|
</div>
|
</el-card>
|
</template>
|
|
<script>
|
import {addDynamicRoute} from '../../../router'
|
|
export default {
|
data() {
|
return {
|
dataForm: {
|
type: ''
|
}
|
}
|
},
|
methods: {
|
viewHandle(row) {
|
// 路由参数
|
const routeParams = {
|
routeName: `${this.$route.name}__${row.id}`,
|
title: this.$t('notice.view2'),
|
path: 'notice/notice-user-view',
|
params: {
|
id: row.id
|
}
|
}
|
|
// 如果未读,则标记为已读
|
if (row.readStatus === 0) {
|
this.updateReadStatus(row.id)
|
}
|
|
// 动态路由
|
addDynamicRoute(routeParams)
|
},
|
updateReadStatus(noticeId) {
|
this.$http['put']('/sys/notice/my/read/' + noticeId).then(res => {
|
if (res.code !== 0) {
|
return this.$message.error(res.msg)
|
}
|
}).catch(() => {
|
})
|
}
|
}
|
}
|
</script>
|