服装智能制造软件平台V3.0
http://182.92.169.222/hhxy/#/user/login
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.
262 lines
6.7 KiB
262 lines
6.7 KiB
<template> |
|
<a-card :bordered="false"> |
|
<!-- 查询区域 --> |
|
<div class="table-page-search-wrapper"> |
|
<a-form layout="inline" @keyup.enter.native="searchQuery"> |
|
<a-row :gutter="24"> |
|
|
|
<a-col :span="6"> |
|
<a-form-item label="标题"> |
|
<a-input placeholder="请输入标题" v-model="queryParam.titile"></a-input> |
|
</a-form-item> |
|
</a-col> |
|
<a-col :span="6"> |
|
<a-form-item label="发布人"> |
|
<a-input placeholder="请输入发布人" v-model="queryParam.sender"></a-input> |
|
</a-form-item> |
|
</a-col> |
|
|
|
<a-col :span="8"> |
|
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> |
|
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> |
|
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> |
|
</span> |
|
</a-col> |
|
|
|
</a-row> |
|
</a-form> |
|
</div> |
|
|
|
<div class="table-operator"> |
|
<a-button type="primary" @click="readAll" icon="book">全部标注已读</a-button> |
|
</div> |
|
|
|
<a-table |
|
ref="table" |
|
size="default" |
|
bordered |
|
rowKey="id" |
|
:columns="columns" |
|
:dataSource="dataSource" |
|
:pagination="ipagination" |
|
:loading="loading" |
|
@change="handleTableChange"> |
|
<span slot="action" slot-scope="text, record"> |
|
<a @click="showAnnouncement(record)">查看</a> |
|
</span> |
|
</a-table> |
|
<show-announcement ref="ShowAnnouncement"></show-announcement> |
|
<dynamic-notice ref="showDynamNotice" :path="openPath" :formData="formData"/> |
|
</a-card> |
|
</template> |
|
|
|
<script> |
|
import {filterObj} from '@/utils/util' |
|
import {getAction, putAction} from '@/api/manage' |
|
import ShowAnnouncement from '@/components/tools/ShowAnnouncement' |
|
import {JeecgListMixin} from '@/mixins/JeecgListMixin' |
|
import DynamicNotice from '@/components/tools/DynamicNotice' |
|
import Speech from 'speak-tts' |
|
|
|
|
|
export default { |
|
name: "UserAnnouncementList", |
|
mixins: [JeecgListMixin], |
|
components: { |
|
DynamicNotice, |
|
ShowAnnouncement |
|
}, |
|
data() { |
|
return { |
|
description: '系统通告表管理页面', |
|
queryParam: {}, |
|
columns: [{ |
|
title: '标题', |
|
align: "center", |
|
dataIndex: 'titile' |
|
}, { |
|
title: '消息类型', |
|
align: "center", |
|
dataIndex: 'msgCategory', |
|
customRender: function (text) { |
|
if (text == '1') { |
|
return "通知公告"; |
|
} else if (text == "2") { |
|
return "系统消息"; |
|
} else { |
|
return text; |
|
} |
|
} |
|
}, { |
|
title: '发布人', |
|
align: "center", |
|
dataIndex: 'sender' |
|
}, { |
|
title: '发布时间', |
|
align: "center", |
|
dataIndex: 'sendTime' |
|
}, { |
|
title: '优先级', |
|
align: "center", |
|
dataIndex: 'priority', |
|
customRender: function (text) { |
|
if (text == 'L') { |
|
return "低"; |
|
} else if (text == "M") { |
|
return "中"; |
|
} else if (text == "H") { |
|
return "高"; |
|
} else { |
|
return text; |
|
} |
|
} |
|
}, { |
|
title: '阅读状态', |
|
align: "center", |
|
dataIndex: 'readFlag', |
|
customRender: function (text) { |
|
if (text == '0') { |
|
return "未读"; |
|
} else if (text == "1") { |
|
return "已读"; |
|
} else { |
|
return text; |
|
} |
|
} |
|
}, { |
|
title: '操作', |
|
dataIndex: 'action', |
|
align: "center", |
|
scopedSlots: {customRender: 'action'}, |
|
}], |
|
url: { |
|
list: "/sys/sysAnnouncementSend/getMyAnnouncementSend", |
|
editCementSend: "sys/sysAnnouncementSend/editByAnntIdAndUserId", |
|
readAllMsg: "sys/sysAnnouncementSend/readAll", |
|
}, |
|
loading: false, |
|
openPath: '', |
|
formData: '' |
|
} |
|
}, |
|
mounted() { |
|
this.speechInit(); |
|
}, |
|
methods: { |
|
handleDetail: function (record) { |
|
this.$refs.sysAnnouncementModal.detail(record); |
|
this.$refs.sysAnnouncementModal.title = "查看"; |
|
}, |
|
showAnnouncement(record) { |
|
putAction(this.url.editCementSend, {anntId: record.anntId}).then((res) => { |
|
if (res.success) { |
|
this.loadData(); |
|
this.syncHeadNotic(record.anntId) |
|
} |
|
}); |
|
if (record.openType === 'component') { |
|
this.openPath = record.openPage; |
|
this.formData = {id: record.busId}; |
|
this.$refs.showDynamNotice.detail(); |
|
} else { |
|
this.$refs.ShowAnnouncement.detail(record); |
|
} |
|
}, |
|
syncHeadNotic(anntId) { |
|
getAction("sys/annountCement/syncNotic", {anntId: anntId}) |
|
}, |
|
readAll() { |
|
var that = this; |
|
that.$confirm({ |
|
title: "确认操作", |
|
content: "是否全部标注已读?", |
|
onOk: function () { |
|
putAction(that.url.readAllMsg).then((res) => { |
|
if (res.success) { |
|
that.$message.success(res.message); |
|
that.loadData(); |
|
that.syncHeadNotic(); |
|
} |
|
}); |
|
} |
|
}); |
|
}, |
|
|
|
speechInit() { |
|
this.speech = new Speech(); |
|
this.speech.setLanguage('zh-CN'); |
|
this.speech.init().then(() => { |
|
console.log('语音播报初始化完成...') |
|
this.MySpeak(); |
|
}) |
|
}, |
|
|
|
//语音播报 |
|
MySpeak() { |
|
this.speech.speak({ |
|
text: "测试javascript语音合成", |
|
listeners: { |
|
//开始播放 |
|
onstart: () => { |
|
console.log("Start utterance") |
|
}, |
|
//判断播放是否完毕 |
|
onend: () => { |
|
console.log("End utterance"); |
|
}, |
|
//恢复播放 |
|
onresume: () => { |
|
console.log("Resume utterance") |
|
}, |
|
}, |
|
}).then(() => { |
|
// alert("MySpeak()播报完成..."); |
|
console.log("MySpeak()---------------播报完成...") |
|
}) |
|
}, |
|
|
|
//暂停 |
|
paused() { |
|
this.speech.pause(); |
|
}, |
|
//从暂停处继续播放 |
|
goahead() { |
|
this.speech.resume(); |
|
console.log("继续播放-----------------------------") |
|
}, |
|
|
|
//离开页面取消语音 |
|
// destroyed() { |
|
// this.speech.cancel(); |
|
// }, |
|
} |
|
} |
|
</script> |
|
<style scoped> |
|
.ant-card-body .table-operator { |
|
margin-bottom: 18px; |
|
} |
|
|
|
.anty-row-operator button { |
|
margin: 0 5px |
|
} |
|
|
|
.ant-btn-danger { |
|
background-color: #ffffff |
|
} |
|
|
|
z |
|
.ant-modal-cust-warp { |
|
height: 100% |
|
} |
|
|
|
.ant-modal-cust-warp .ant-modal-body { |
|
height: calc(100% - 110px) !important; |
|
overflow-y: auto |
|
} |
|
|
|
.ant-modal-cust-warp .ant-modal-content { |
|
height: 90% !important; |
|
overflow-y: hidden |
|
} |
|
</style> |