<template>
|
<div class="notice-detail-page">
|
<div class="notice-detail-head">
|
<h4 style="margin-bottom: 16px;text-align:left;" v-if="noticeInfo.theme">{{ noticeInfo.theme }} <el-tag
|
style="margin-left: 10px;" :type="options.find(m => m.value == noticeInfo.messageType).type"
|
v-if="options.find(m => m.value == noticeInfo.messageType)">{{
|
options.find(m => m.value == noticeInfo.messageType).label }}</el-tag></h4>
|
<p style="font-size: 12px;color: #999;margin-bottom: 20px;text-align:left;">
|
<!-- <span>消息类型:审批 </span> -->
|
<span>发送人:{{ noticeInfo.createUser }} </span>
|
<span> </span>
|
<span>收件人:{{ noticeInfo.consigneeUser }}</span>
|
<span> </span>
|
<span>发件时间:{{ noticeInfo.createTime }}</span>
|
</p>
|
<div class="notice-detail-head-content" style="text-align:left;">
|
<label>内容:</label>
|
<div>{{ noticeInfo.content }}</div>
|
</div>
|
</div>
|
<div class="info-box" v-if="noticeInfo.jumpPath">
|
<component class="notice-content" :is="noticeInfo.jumpPath" :entrustCodeNew="noticeInfo.entrustCode"
|
:laboratoryNew="noticeInfo.laboratory">
|
</component>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
const requireComponent = require.context("../view", false, /\.vue/);
|
var comObj = {};
|
requireComponent.keys().forEach(fileName => {
|
var names = fileName
|
.split("/")
|
.pop()
|
.replace(".vue", "");
|
const componentConfig = requireComponent(fileName);
|
comObj[names] = componentConfig.default || componentConfig;
|
});
|
export default {
|
components: comObj,
|
data() {
|
return {
|
noticeInfo: {},
|
options: []
|
}
|
},
|
mounted() {
|
this.noticeInfo = JSON.parse(localStorage.getItem("noticeInfo"));
|
this.$bus.$on("change", (msg) => {
|
this.noticeInfo = JSON.parse(msg);
|
localStorage.setItem("noticeInfo", msg);
|
});
|
this.getTypeDicts()
|
},
|
methods: {
|
getTypeDicts() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "消息类型"
|
}).then(res => {
|
let data = res.data
|
this.options = data;
|
})
|
},
|
}
|
}
|
</script>
|
|
<style scoped>
|
.notice-detail-page {
|
height: calc(100% - 30px);
|
overflow-y: auto;
|
padding: 16px 0;
|
}
|
|
.notice-detail-page::-webkit-scrollbar {
|
width: 0;
|
}
|
|
.notice-detail-head {
|
background: #fff;
|
border-radius: 3px;
|
box-sizing: border-box;
|
padding: 16px;
|
}
|
|
.info-box {
|
margin-top: 16px;
|
width: 100%;
|
box-sizing: border-box;
|
padding: 8px 20px 20px;
|
background: rgba(0, 0, 0, 0.03);
|
/* box-shadow: 0 0 10px 10px #fff; */
|
border-radius: 4px;
|
min-height: calc(100% - 192px - 22px);
|
}
|
|
.notice-detail-head-content div {
|
border-radius: 8px;
|
border: 1px solid #ccc;
|
min-height: 60px;
|
width: 100%;
|
padding: 16px;
|
box-sizing: border-box;
|
margin-top: 12px;
|
}
|
|
.notice-content {
|
height: 600px;
|
}
|
</style>
|