255 lines
8.3 KiB
Vue
255 lines
8.3 KiB
Vue
<template>
|
|
<div class="main">
|
|
<div v-if="showType === 1">
|
|
<div class="pageTitle">{{ detailObj.NOTICEINFO_TITLE || "" }}</div>
|
|
<div class="time">{{ detailObj.START_DATE || "-" }}</div>
|
|
<div class="navList" v-if="detailObj.ImageList && detailObj.ImageList.length > 0">
|
|
|
|
|
|
<swiper class="swiper" circular
|
|
:indicator-dots="detailObj.ImageList && detailObj.ImageList.length > 2 ? true : false" :autoplay="true"
|
|
indicator-color="rgba(255,255,255,0.6)" indicator-active-color="#ffffff"
|
|
v-if="detailObj.ImageList && detailObj.ImageList.length > 0">
|
|
|
|
<swiper-item v-for="(item, index) in detailObj.ImageList" :key="index"
|
|
@click="handleShowPreview(detailObj.ImageList[0].ImageUrl)">
|
|
<view class="swiper-item" :style="{ backgroundImage: `url(${item.ImageUrl})` }">
|
|
<!-- <image class="img" :src="item.ImageUrl" /> -->
|
|
</view>
|
|
</swiper-item>
|
|
|
|
</swiper>
|
|
|
|
|
|
|
|
<!-- <image class="img" :src="detailObj.ImageList[0].ImageUrl"
|
|
@click="handleShowPreview(detailObj.ImageList[0].ImageUrl)" /> -->
|
|
</div>
|
|
<text class="content">{{ detailObj.NOTICEINFO_CONTENT || "" }}</text>
|
|
</div>
|
|
|
|
<div class="newContent" v-if="detailObj.content && showType === 2" v-html="detailObj.content"></div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
detailObj: {
|
|
// NOTICEINFO_TITLE: "",
|
|
// START_DATE: "",
|
|
// NOTICEINFO_CONTENT: "",
|
|
},
|
|
showType: '',// 1 是自己的 2 他们的
|
|
id: ""
|
|
};
|
|
},
|
|
onLoad(query) {
|
|
console.log("query", query);
|
|
if (query.id) {
|
|
this.id = query.id
|
|
if (query.type === 'true') {
|
|
this.hanldeGetDetail(query.id);
|
|
this.showType = 1
|
|
} else {
|
|
this.handleGetNewDetail(query.id);
|
|
this.showType = 2
|
|
}
|
|
}
|
|
this.$utils.addUserBehaviorNew();
|
|
},
|
|
onShareAppMessage() {
|
|
// let _this = this;
|
|
return {
|
|
title: `${this.detailObj.NOTICEINFO_TITLE}`,
|
|
path: `/pages/index/index?id=${this.id}&type=${this.showType}`,
|
|
// imageUrl: _this.good.DEFAULT_IMG,
|
|
};
|
|
},
|
|
onShareTimeline() {
|
|
return {
|
|
title: `${this.detailObj.NOTICEINFO_TITLE}`,
|
|
path: `/pages/highwayHeadlines/detail?id=${this.id}&type=${this.showType}`,
|
|
// imageUrl: _this.good.DEFAULT_IMG,
|
|
};
|
|
},
|
|
methods: {
|
|
// 找到id一样的
|
|
async handleGetNewDetail(id) {
|
|
let start = `${this.$moment
|
|
.now()
|
|
.set("month", -1)
|
|
.format("YYYY-MM-DD")} 00:00:00`;
|
|
let end = `${this.$moment.now().format("YYYY-MM-DD")} 23:59:59`;
|
|
let params = {
|
|
startQueryTime: start, // 开始时间
|
|
endQueryTime: end, // 结束时间
|
|
};
|
|
let time = Math.ceil(new Date().getTime() / 1000);
|
|
|
|
let req = {
|
|
app_id: "530000301",
|
|
biz_content: JSON.stringify(params),
|
|
charset: "UTF-8",
|
|
pid: "530000301",
|
|
service: "trawe.eats.etc",
|
|
utc_timestamp: time,
|
|
version: "1.0",
|
|
sign_type: "RSA2",
|
|
};
|
|
let signText = `app_id=${req.app_id}&biz_content=${req.biz_content}&charset=UTF-8&pid=${req.app_id}&service=trawe.eats.etc&utc_timestamp=${req.utc_timestamp}&version=1.0`;
|
|
console.log("handleGetHighwayHeadlines", req);
|
|
console.log("signText", signText);
|
|
|
|
// 签名
|
|
const sign = await new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: "https://admin.es.eshangtech.com/prod-api/RSA/sign",
|
|
method: "POST",
|
|
data: {
|
|
originalText: signText,
|
|
privateKey:
|
|
"MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCtIkIJLbZYI9NvTRkRbqtjJ73gkAUJZBJw88Z+O8prX2HXMTIedmZZxTwbfM5kGpl9VmS0CY8QL0DnDsgHO8QnSDpN1jiqTD9lk1evycuF7ujmlOk/cJ5x2cLPn9rPIrQn1lxp9mBiO1m9vsrNOze/kx7wRyif/+hvn5Q9KtNEMy0K8oOE5vktnjkk1AhhXrTii9eIjOrO3pRgh9cFA9kqQpvD14CImD7tdCgyntKcYAB7rlin6a2N0yH9JJINjOyOiyHufP8sR7pb9VYXVYXukOCItdC9QQluQhSdyC/3BfZD5zV1A+X7pUle7dDLGG6aSZyCibg16siFIEX94KYfAgMBAAECggEAcP5uwrbGzvdywq06sxnbWTdSwQC9iMd7EaTH4xL6pOD3Zg6Be0givGvxMq9dtA94JUkBKE8kw5dTcHlBKxdiiZCmHK63BM4GgjCLhfrZjWvDLNn68KB7iCpq7j6R+6XWljlczvsxJGs/woqGqTMAy1MlWgPXC7Vk6ZTolpMglt0IJOzPtgJ66qU2CtNRjowkXSCHDO2RCjkmYcjU6W+eCvi9cXIXhLv5yra1PE0KOxn3NiEFwgGUXpu8LKqxuUfGLuHljoLxWV8EEfwZaWB6Wy1DHMMgxhKrO3xEmdMEqtvJmF98LRSYiJerkExY8Gdx8bkLPjlCLYKW4JVuPmyYgQKBgQD8l0lLtB94MQMib0t8RzqlbKcczTAkicjSms3/P4kwh50GC8OqwjJB75n4yQyDPgsjms/SnRMq1zjgm+MHSC4snpLCcvKFYLnvrslWGu/2lyUTwEwdUdQe1ILG4Y9NXKWg4zXpKfJ2Rz/cqw6bHGYhQWZ62AXQgiz+W7cIPrsHsQKBgQCveHGHF0WqtYAmrW7nf04PKmcJ5U2briYCWOtWJE5Mo5BYxsGLX6vI53DMNQ42hFk0ye61VNfcazAoGI3mM4+j6R9k3ek8EtkBYBro5eeoBtB7TMTJagQqzBLz316mJBsFmw3TiC9BzYhs3tKJnVxpfqXoqsyu2ZA6VG5Y/gXOzwKBgCbejPvmUvVm7WmOINqWB3NPXgPzm1X0EgA+rDZ8K3tZUxOMGeccDSnSWipLne5QTNyExThOzZVJG0qNEombVOeu2zyq/aECunoktnzWllim96CrdcsJPZAk+Z7rNOcdu6sfa7teph4HZs9pT00VOK4jZ0a+GV71uUDHEkplhNhxAoGAMDOi5BxFe/595KIR7C/xboMUaQh/iDuPn2dzxmcUx0LLPUfkFPhEBV1mhAIzFFDI/JJYK6HR5m/fe7Q7DritRbaddCTtlB4NVK5k1gOJ3oN4s9ZD3Jxt5p/GuQ1sP7F9Zs3QP4KSkL34MwgGx9zdbPFofACnV4TWdN+KrJGjYMsCgYAE0CMM7rYHGY3Vt3/WZZJ+DPlKE6Q+uvFDomtsB1IavCeEJyjBP9+GhBHat86aA3mCFjf4emj1or7OEgPc0gCMtKBG6m10CrzLjzdWnOTveqWVUW/FS2gf17cIO5/FK/4KmAjH/QN24KXm395Qu8C0UFfgA66yysakJFkvXVBiPg==",
|
|
},
|
|
header: {
|
|
"content-type": "application/json",
|
|
},
|
|
success(res) {
|
|
console.log("resresresresresresres", res);
|
|
resolve(res.data.data);
|
|
},
|
|
});
|
|
});
|
|
console.log("sign", sign);
|
|
|
|
req.sign = sign;
|
|
|
|
// 推文数据
|
|
const tweetsData = await new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: `https://sxgzh.etclife.cn/etc/api/v1/gzh/point/tweets`,
|
|
method: "POST",
|
|
data: req,
|
|
header: {
|
|
"content-type": "application/x-www-form-urlencoded",
|
|
},
|
|
success(res) {
|
|
console.log(
|
|
"resresresresresresresresres",
|
|
res.data.response.data.data.tweets
|
|
);
|
|
resolve(res.data.response.data.data.tweets);
|
|
},
|
|
});
|
|
});
|
|
|
|
console.log("tweetsData", tweetsData);
|
|
if (tweetsData && tweetsData.length > 0) {
|
|
tweetsData.forEach((item) => {
|
|
if (Number(item.id) === Number(id)) {
|
|
this.detailObj = item;
|
|
}
|
|
});
|
|
}
|
|
console.log("this.detailObj", this.detailObj);
|
|
},
|
|
// 预览查看
|
|
handleShowPreview(url) {
|
|
uni.previewImage({
|
|
current: url, // 当前显示图片的http链接
|
|
urls: [url], // 需要预览的图片http链接列表
|
|
});
|
|
},
|
|
async hanldeGetDetail(id) {
|
|
const req = {
|
|
NOTICEINFOId: id,
|
|
};
|
|
const data = await this.$api.$get(
|
|
"/EShangApiMain/Notice/GetNOTICEINFODetail",
|
|
req
|
|
);
|
|
console.log("detail", data);
|
|
const formattedText =
|
|
data.Result_Data.NOTICEINFO_CONTENT.split("\n").join("\n\n");
|
|
this.detailObj = data.Result_Data;
|
|
this.detailObj.NOTICEINFO_CONTENT = formattedText;
|
|
console.log("this.detailObj", this.detailObj);
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped lang="less">
|
|
.main {
|
|
width: 100vw;
|
|
height: 100vh;
|
|
box-sizing: border-box;
|
|
padding: 16rpx 32rpx;
|
|
background: #fff;
|
|
overflow-y: scroll;
|
|
|
|
.pageTitle {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 40rpx;
|
|
color: #130f05;
|
|
line-height: 56rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
|
|
.time {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 24rpx;
|
|
color: #716f69;
|
|
line-height: 36rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
margin-top: 8rpx;
|
|
}
|
|
|
|
.navList {
|
|
width: 100%;
|
|
height: 400rpx;
|
|
border-radius: 6rpx;
|
|
overflow: hidden;
|
|
margin: 40rpx 0;
|
|
|
|
.img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.swiper {
|
|
width: 100%;
|
|
height: 100%;
|
|
|
|
.swiper-item {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
background-position: 50% 50%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.content {
|
|
display: block;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #130f05;
|
|
line-height: 52rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
overflow-y: auto;
|
|
}
|
|
}
|
|
|
|
.main::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
</style>
|