2024-01-16 17:24:49 +08:00
|
|
|
|
<template>
|
|
|
|
|
<view>
|
|
|
|
|
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
|
|
|
|
|
<block slot="backText">返回</block>
|
|
|
|
|
<block slot="content">通知详情</block>
|
|
|
|
|
</cu-custom>
|
|
|
|
|
<scroll-view scroll-y>
|
|
|
|
|
<view class="message-warp">
|
2024-02-28 19:33:03 +08:00
|
|
|
|
<view class="title">
|
|
|
|
|
通知标题:
|
|
|
|
|
</view>
|
2024-01-16 17:24:49 +08:00
|
|
|
|
<view class="info">
|
2024-02-28 19:33:03 +08:00
|
|
|
|
{{pd.TITLE}}
|
2024-01-16 17:24:49 +08:00
|
|
|
|
</view>
|
2024-02-28 19:33:03 +08:00
|
|
|
|
<view class="title">
|
|
|
|
|
通知内容:
|
|
|
|
|
</view>
|
2024-03-08 18:08:39 +08:00
|
|
|
|
<rich-text class="info" :nodes="content"></rich-text>
|
2024-02-28 19:33:03 +08:00
|
|
|
|
<view class="info">
|
|
|
|
|
<text>{{pd.CREATETIME}}</text>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="message-warp" v-if="pd.VIDEO_ROUTE">
|
2024-05-22 18:12:27 +08:00
|
|
|
|
<video :src="baseImgPath + pd.VIDEO_ROUTE" controls="true"></video>
|
2024-02-28 19:33:03 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="message-warp" v-if="pd.ATTACHMENT_ROUTE">
|
|
|
|
|
<view class="cu-item" @click="$noMultipleClicks(goStuToOpen,pd.ATTACHMENT_ROUTE)">
|
|
|
|
|
<view class="content">
|
|
|
|
|
<text class="cuIcon-read text-blue"></text>
|
|
|
|
|
<text class="text-grey">附件</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view v-if="pd.REPLYSTATUS === '1'">
|
|
|
|
|
<view class="reply-title">回复内容</view>
|
|
|
|
|
<input type="text" class="reply-input" v-model="replyContent" placeholder="请输入回复内容" />
|
|
|
|
|
<button class="submit-btn" @click="confirmReply" v-show="pd.REPLYSTATUS === '1'">确定</button>
|
|
|
|
|
</view>
|
2024-01-16 17:24:49 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="cu-tabbar-height"></view>
|
|
|
|
|
</scroll-view>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {
|
2024-02-28 19:33:03 +08:00
|
|
|
|
basePath,loginUser,baseImgPath
|
2024-01-16 17:24:49 +08:00
|
|
|
|
} from '@/common/tool.js';
|
|
|
|
|
import HTMLParser from "@/components/html-parser.js"
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
2024-05-22 18:12:27 +08:00
|
|
|
|
baseImgPath: baseImgPath,
|
2024-02-28 19:33:03 +08:00
|
|
|
|
id:'',
|
2024-01-16 17:24:49 +08:00
|
|
|
|
content:'',
|
2024-02-28 19:33:03 +08:00
|
|
|
|
pd: {},
|
2024-01-16 17:24:49 +08:00
|
|
|
|
type:'',
|
|
|
|
|
noClick:true,
|
2024-02-28 19:33:03 +08:00
|
|
|
|
isConfirmed: false,
|
|
|
|
|
replyContent: '',
|
2024-01-16 17:24:49 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onLoad(e){
|
|
|
|
|
this.type =e.type;
|
|
|
|
|
this.id=e.id;
|
|
|
|
|
this.getData();
|
2024-02-28 19:33:03 +08:00
|
|
|
|
this.sendEditRequest();
|
|
|
|
|
this.markAsRead();
|
2024-01-16 17:24:49 +08:00
|
|
|
|
console.log(e)
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2024-02-28 19:33:03 +08:00
|
|
|
|
confirmReply() {
|
|
|
|
|
this.isConfirmed = true;
|
|
|
|
|
this.sendEditRequest();
|
|
|
|
|
},
|
|
|
|
|
getData() {
|
|
|
|
|
var _this = this;
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
title: '请稍候'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var requestData = {
|
|
|
|
|
NOTIFICATION_ID: _this.id,
|
|
|
|
|
USER_ID: loginUser.USER_ID,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
uni.request({
|
|
|
|
|
url: basePath + '/app/trafficNotice/listForCp',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
header: {
|
|
|
|
|
'Content-type': 'application/x-www-form-urlencoded'
|
|
|
|
|
},
|
|
|
|
|
data: requestData,
|
|
|
|
|
success: (res) => {
|
|
|
|
|
if ("success" == res.data.result && res.data.varList && res.data.varList.length > 0) {
|
|
|
|
|
_this.pd = res.data.varList[0];
|
|
|
|
|
_this.content = new HTMLParser(_this.pd.NOTIFICATIONCONTENT.trim());
|
|
|
|
|
if (_this.pd.REPLYCONTENT && _this.pd.REPLYCONTENT.trim() !== '') {
|
|
|
|
|
_this.replyContent = _this.pd.REPLYCONTENT;
|
|
|
|
|
}
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
} else {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: '数据加载失败',
|
|
|
|
|
duration: 2000
|
|
|
|
|
});
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fail: () => {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: '请求失败',
|
|
|
|
|
icon: 'none',
|
|
|
|
|
duration: 2000
|
|
|
|
|
});
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
markAsRead() {
|
|
|
|
|
const _this = this;
|
|
|
|
|
uni.request({
|
|
|
|
|
url: basePath + '/app/trafficNotice/edit',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
header: {
|
|
|
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
|
|
|
},
|
|
|
|
|
data: {
|
|
|
|
|
NOTIFICATION_ID: _this.id,
|
|
|
|
|
USER_ID: loginUser.USER_ID,
|
|
|
|
|
TYPE: _this.type,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
sendEditRequest() {
|
|
|
|
|
if (!this.isConfirmed) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var _this = this;
|
|
|
|
|
var requestData = {
|
|
|
|
|
NOTIFICATION_ID: _this.id,
|
|
|
|
|
USER_ID: loginUser.USER_ID,
|
|
|
|
|
REPLYCONTENT: _this.replyContent
|
|
|
|
|
};
|
|
|
|
|
if (!_this.replyContent) {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: '回复内容不能为空',
|
|
|
|
|
icon: 'none',
|
|
|
|
|
duration: 2000
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
uni.request({
|
|
|
|
|
url: basePath + '/app/trafficNotice/edit',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
header: {
|
|
|
|
|
'Content-type': 'application/x-www-form-urlencoded'
|
|
|
|
|
},
|
|
|
|
|
data: requestData,
|
|
|
|
|
success: (res) => {
|
|
|
|
|
if (res.data.result === "success") {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: '回复成功',
|
|
|
|
|
duration: 2000
|
|
|
|
|
});
|
|
|
|
|
_this.replyContent = ''; // 清空回复内容
|
|
|
|
|
this.isConfirmed = false; // 重置确认状态
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
2024-01-16 17:24:49 +08:00
|
|
|
|
goStuToOpen(e) {
|
|
|
|
|
var url=baseImgPath + e ;
|
|
|
|
|
var url2 = encodeURI(url);
|
|
|
|
|
plus.runtime.openURL(url2, function(res) {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
.message-warp{
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
padding: 30upx;
|
|
|
|
|
}
|
|
|
|
|
.message-warp .title {
|
|
|
|
|
font-size: 34upx;
|
|
|
|
|
margin-bottom: 20upx;
|
|
|
|
|
}
|
2024-02-28 19:33:03 +08:00
|
|
|
|
.submit-btn {
|
|
|
|
|
background-color: #007AFF; /* 蓝色背景 */
|
|
|
|
|
color: white; /* 白色文字 */
|
|
|
|
|
border: none; /* 无边框 */
|
|
|
|
|
padding: 5upx 10upx; /* 内边距 */
|
|
|
|
|
font-size: 18upx; /* 字体大小 */
|
|
|
|
|
margin-top: 10upx; /* 上边距 */
|
|
|
|
|
border-radius: 5upx; /* 圆角 */
|
|
|
|
|
width: auto; /* 修改处:宽度自动,取决于内容和内边距 */
|
|
|
|
|
max-width: 100upx; /* 修改处:最大宽度,可以根据需要调整 */
|
|
|
|
|
display: block; /* 块级元素 */
|
|
|
|
|
margin-left: auto; /* 水平居中 */
|
|
|
|
|
margin-right: auto; /* 水平居中 */
|
|
|
|
|
}
|
|
|
|
|
.reply-input {
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
border: 1px solid #dcdfe6; /* 设置边框颜色和宽度 */
|
|
|
|
|
border-radius: 4px; /* 轻微圆角效果 */
|
|
|
|
|
padding: 10px; /* 设置一些内边距*/
|
|
|
|
|
font-size: 16px; /* 设置适当的字体大小 */
|
|
|
|
|
color: #606266; /* 设置字体颜色 */
|
|
|
|
|
margin: 10px 0; /* 设置上下外边距 */
|
|
|
|
|
width: 100%; /* 宽度设置为100% */
|
|
|
|
|
height: 40px; /* 设置一个固定的高度 */
|
|
|
|
|
}
|
2024-01-16 17:24:49 +08:00
|
|
|
|
.info {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
color: #888;
|
|
|
|
|
font-size: 24upx;
|
|
|
|
|
margin-bottom: 20upx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.content {
|
|
|
|
|
padding: 0upx;
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
}
|
|
|
|
|
.content img{
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: auto;
|
|
|
|
|
}
|
|
|
|
|
</style>
|