app/pages/tabbar/vlog/log/ylog.vue
2025-06-07 10:09:11 +08:00

531 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view>
<!-- 页面其他内容 -->
<view class="page-content">
<!-- 这里可以添加页面的主要内容 -->
<view class="company-profile">
<view class="header">
<view class="avatar">
<image :src="imgage" mode="aspectFill" class="avatar-img" />
</view>
<view class="title">玉田医院</view>
<!-- <view class="badge">达人标识</view> -->
<!-- <view
:class="istae == true ? 'follow-btn' : 'stafollow-btn'"
@click="istae = !istae"
>关注</view
> -->
</view>
<view class="info-section">
<view class="info-item">
<text class="info-content"
>全面推动信息技术与医疗服务的深度融合提升智慧化水平探索更多应用场景持续扩大医疗服务半径为构建更加公平高效便捷的医疗健康服务体系贡献更大的力量</text
>
</view>
</view>
</view>
<view class="card" v-for="(item, index) in list" :key="index">
<view class="card-header" @click="torout(item)">
<text class="title">{{ item.title }}</text>
<text class="subtitle">{{ item.conent }}</text>
</view>
<view class="card-body">
<view class="img-list">
<image
v-for="(imgUrl, imgIndex) in item.imglist"
:key="imgIndex"
:src="imgUrl"
mode="aspectFill"
class="list-img"
/>
</view>
</view>
<view class="stats-row">
<view class="stat-item">
<text class="stat-number">
<image
v-if="item.xing"
@click="addxingfun(item, index)"
src="@/static/img/index/xing-2.png"
:style="stylie"
></image>
<image
v-else
src="@/static/img/index/xing.png"
@click="delxingfun(item, index)"
:style="stylie"
></image>
<text>
{{ item.xingnum }}
</text>
</text>
</view>
<view class="stat-item">
<text class="stat-number">
<image
v-if="item.fen"
@click="shareContent(item, index)"
src="@/static/img/index/fen.png"
:style="stylie"
></image>
<image
v-else
src="@/static/img/index/fen-2.png"
@click="shareContent(item, index)"
:style="stylie"
></image>
<text>
{{ item.fennum }}
</text>
</text>
</view>
<!-- 评论 -->
<view class="stat-item">
<text class="stat-number">
<text class="stat-number">
<image
v-if="item.ping"
@click="showCommentInput(item, index)"
src="@/static/img/index/ping.png"
:style="stylie"
></image>
<image
v-else
src="@/static/img/index/ping.png"
@click="showCommentInput(item, index)"
:style="stylie"
></image>
<text>
{{ item.pingnum }}
</text>
</text>
</text>
</view>
<view class="stat-item">
<text class="stat-number">
<image
v-if="item.xin"
@click="addisredfun(item, index)"
src="@/static/img/index/xin.png"
:style="stylie"
></image>
<image
v-else
src="@/static/img/index/xin-3.png"
@click="delisredfun(item, index)"
:style="stylie"
></image>
<text>
{{ item.xinnum }}
</text>
</text>
</view>
</view>
</view>
</view>
<!-- 自定义模态框 -->
<view v-if="showCommentModal" class="comment-modal">
<view class="modal-content">
<textarea
v-model="commentContent"
placeholder="请输入评论内容"
class="comment-input"
></textarea>
<view class="modal-buttons">
<button @click="cancelComment">取消</button>
<button @click="submitComment()">提交</button>
</view>
</view>
</view>
</view>
</template>
<script>
import imgage from "@/static/logn.png"; // 导入图片资源
import l7 from "@/static/img/index/l7.png"; // 导入图片资源
import l8 from "@/static/img/index/l8.png"; // 导入图片资源
export default {
data() {
return {
stylie: {
width: "20px", // 设置宽度为 20px
height: "20px", // 设置高度为 20px
marginRight: "10px", // 设置右边距为 10px
},
showCommentModal: false, // 控制模态框的显示
commentContent: "", // 评论内容
currentCommentIndex: -1,
currentCommentItem: null,
isred: false,
isrednum: 0,
imgage: imgage,
showDropdown: false,
currentTitle: "",
istae: true,
list: [
{
tp: "玉田医疗",
img: "",
title: "玉田积极实施现代化医疗",
conent:
"一直以来,玉田医院高度重视智慧医疗建设,全力搭建远程会诊平台,与多家国家级三甲医院建立了紧密合作关系,远程会诊平台出诊医院包括北京大学第三医院、首都医科大学宣武医院、北京大学第三医院海淀院区、首都医科大学附属北京安贞医院、首都医科大学附属北京潞河医院、首都医科大学附属北京世纪坛医院等,为患者提供了全方位的优质医疗服务。同时,医院还加入了唐山市疑难重症医疗援助体系,实现了与 8 家市级三级公立医院的远程会诊。玉田医院正式开展远程会诊服务免费为患者架起了一座连接优质医疗资源的桥梁。期间共为患者提供了更精准、高效的医疗服务。患者无需长途奔波在家门口就能享受到国内顶尖医院的专家诊疗。不仅如此医院医护人员也在参与远程会诊的过程中不断学习借鉴先进的诊疗技术和临床经验自身业务水平得到了极大提升。远程会诊项目的实施带来了诸多好处。一方面降低了医疗成本减少了患者的就医成本避免了长途奔波和高额的医疗费用另一方面提升了患者满意度为患者提供了便捷的医疗服务减少了等待时间和就医成本。患者对医院的满意度明显提高更多的患者选择在县级医院就诊。近年来玉田医院在数字化医疗领域深度耕耘。在科学管理方面电子病历应用水平分级评价达到四级标准优化了业务流程管理更加解学规范。DIP 运营监管系统和医保监控系统的运用实现了全方位、全流程、立体化的数字化运营加强了医保基金管控实现精细化管理提高了医疗服务效率。在临床诊疗中中医大脑中医人工智能辅助诊疗系统辅助医师诊疗人机集合让诊疗更精准、疗效更可靠。临床检验智能辅助决策系统利用人工智能技术深入挖掘检验与疾病的内在联系为临床提供更全面、更准确的决策信息支持手术麻醉系统、移动护理系统的使用代替手工输入大大提升了临床的诊疗效率。上线“护士到家”APP提供护理延伸服务实现居民一键预约足不出户就能享受上门护理服务。在医共体建设中上线医共体远程影像、心电系统使医共体关联更加紧密信息传递更加畅通分级诊疗更加便捷。同时通过对医疗大数据分析能主动发现疾病早期患者早诊早治降低疾病风险和费用负担。未来玉田医院将继续围绕满足人民群众医疗保健需求这一核心目标进一步优化信息化建设全面推动信息技术与医疗服务的深度融合提升智慧化水平探索更多应用场景持续扩大医疗服务半径为构建更加公平、高效、便捷的医疗健康服务体系贡献更大的力量。",
xin: false,
timer: "2025-06-01 12:55 玉田",
xinnum: 0,
xing: false,
xingnum: 0,
ping: false,
pingnum: 0,
pingcontent: [],
fen: false,
fennum: 0,
imglist: [l7, l8],
},
],
};
},
onLoad(options) {
if (options.name) {
this.passedName = options.name;
this.currentTitle = options.name; // 可以根据需求设置当前标题
}
},
methods: {
shareContent(item, index) {
uni.share({
provider: "weixin",
scene: "WXSceneTimeline", // 指定分享到朋友圈
type: 0,
href: "https://example.com", // 分享的链接,需替换为实际链接
title: "医疗服务分享", // 分享标题
imageUrl: item.img || "https://example.com/default-image.jpg", // 分享图片,需替换为实际图片链接
success: () => {
this.list[index].fennum++;
this.list[index].fen = true;
uni.showToast({
title: "分享成功",
icon: "success",
duration: 2000,
});
},
fail: (err) => {
uni.showToast({
title: "分享失败,请重试",
icon: "none",
duration: 2000,
});
},
});
},
addisredfun(item, index) {
this.list[index].xinnum--;
this.list[index].xin = !this.list[index].xin;
},
delisredfun(item, index) {
if (this.list[index].xinnum == 0) {
this.list[index].xinnum++;
}
this.list[index].xin = !this.list[index].xin;
},
addxingfun(item, index) {
this.list[index].xingnum--;
this.list[index].xing = !this.list[index].xing;
},
delxingfun(item, index) {
if (this.list[index].xingnum == 0) {
this.list[index].xingnum++;
}
this.list[index].xing = !this.list[index].xing;
},
showCommentInput(item, index) {
this.showCommentModal = true;
this.currentCommentIndex = index;
this.currentCommentItem = item;
},
cancelComment() {
this.showCommentModal = false;
this.commentContent = "";
},
submitComment() {
if (this.commentContent.trim()) {
const userInfo = this.$options.filters.isLogin();
const currentDate = new Date();
const time = `${currentDate.getFullYear()}-${String(
currentDate.getMonth() + 1
).padStart(2, "0")}-${String(currentDate.getDate()).padStart(
2,
"0"
)} ${String(currentDate.getHours()).padStart(2, "0")}:${String(
currentDate.getMinutes()
).padStart(2, "0")}`;
this.list[this.currentCommentIndex].pingcontent.push({
img: userInfo.face, //图片
name: userInfo.nickName, //名字
content: this.commentContent, //内容
time: time, //时间
zannum: 0, //点赞数
iszan: false, // 点赞状态,默认为未赞
});
this.list[this.currentCommentIndex].pingnum++;
this.list[this.currentCommentIndex].ping = true;
}
this.showCommentModal = false;
this.commentContent = "";
uni.showToast({
title: "提交成功",
icon: "success",
duration: 2000,
});
},
// addpingfun(item, index) {
// this.list[index].pingnum--;
// this.list[index].ping = !this.list[index].ping;
// },
// delpingfun(item, index) {
// if (this.list[index].pingnum == 0) {
// this.list[index].pingnum++;
// }
// this.list[index].ping = !this.list[index].ping;
// },
torout(item) {
const itemJson = encodeURIComponent(JSON.stringify(item));
uni.navigateTo({
url: `/pages/tabbar/vlog/vlindexstr?item=${itemJson}`,
});
},
},
};
</script>
<style lang="scss">
.nav-left,
.nav-right {
width: 100rpx;
text-align: center;
font-size: 32rpx;
color: #333333;
}
.nav-title {
flex: 1;
text-align: center;
font-size: 36rpx;
// font-weight: bold;
color: #333333;
display: flex;
justify-content: center;
align-items: center;
.dropdown-icon {
margin-left: 10rpx;
font-size: 28rpx;
}
}
.dropdown-menu {
position: absolute;
top: 160rpx;
left: 0;
right: 0;
background-color: #fff;
border: 1rpx solid #eee;
border-radius: 10rpx;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
z-index: 10;
margin: 0 20rpx;
.dropdown-item {
padding: 20rpx;
font-size: 32rpx;
color: #333;
border-bottom: 1rpx solid #eee;
&:last-child {
border-bottom: none;
}
&:active {
background-color: #f5f5f5;
}
}
}
.page-content {
padding: 20rpx;
}
.company-profile {
padding: 20px;
background: #fff;
// margin-bottom: 15px;
}
.header {
display: flex;
align-items: center;
// margin-bottom: 20px;
}
.title {
font-size: 18px;
font-weight: bold;
margin-right: 10px;
}
.badge {
background: #ffcc00;
color: #333;
padding: 2px 8px;
border-radius: 4px;
font-size: 12px;
margin-right: 10px;
}
.follow-btn {
color: #1890ff;
border: 1px solid #1890ff;
padding: 2px 10px;
border-radius: 4px;
font-size: 12px;
}
.stafollow-btn {
color: #ffffff;
border: 1px solid red;
background: red;
padding: 2px 10px;
border-radius: 4px;
font-size: 12px;
}
.info-section {
// border-top: 1px solid #eee;
padding-top: 10px;
}
.info-item {
margin-bottom: 12px;
line-height: 1.5;
}
.info-label {
font-weight: bold;
color: #333;
}
.info-content {
color: #666;
}
.avatar {
width: 40px;
height: 40px;
border-radius: 50%;
overflow: hidden;
margin-right: 10px;
}
.avatar-img {
width: 100%;
height: 100%;
}
.card {
background-color: #ffffff;
border-radius: 8px;
padding: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
margin-top: 10px;
}
.card-header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: bold;
color: #333;
display: block;
}
.subtitle {
font-size: 14px;
color: #666;
display: block;
// 新增样式控制两行显示
// overflow: hidden;
// display: -webkit-box;
// -webkit-box-orient: vertical;
// -webkit-line-clamp: 2; /* 限制显示两行 */
}
.stats-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
}
.stat-item {
flex: 1;
text-align: center;
}
.stat-number {
font-size: 16px;
font-weight: bold;
color: #1890ff;
display: flex; /* 弹性布局 */
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中(关键) */
gap: 8rpx; /* 图片与文字间距 */
}
// 补充:确保图片和文字的垂直基准一致(可选)
.stat-number image {
vertical-align: middle; /* 图片垂直居中(兼容非 flex 场景) */
}
.comment-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 999;
}
.modal-content {
background-color: #fff;
padding: 20px;
border-radius: 8px;
width: 80%;
}
.comment-input {
width: 100%;
height: 150px;
margin-bottom: 20px;
}
.modal-buttons {
display: flex;
justify-content: space-around;
}
.img-list {
display: flex;
// flex-wrap: wrap;
gap: 10px; /* 图片之间的间距 */
}
.list-img {
// width: 100%; /* 图片宽度,根据需求调整 */
// height: 250rpx; /* 图片高度,根据需求调整 */
border-radius: 8rpx; /* 图片圆角 */
object-fit: cover; /* 图片填充方式 */
}
</style>