<template>
|
<view class="page">
|
<!-- <view class="nav-bar">
|
<view class="nav-left">
|
<uni-icons type="left" size="20" color="#333"></uni-icons>
|
<text class="nav-title">问诊记录</text>
|
</view>
|
<view class="nav-right">
|
<uni-icons type="more-filled" size="20" color="#333"></uni-icons>
|
<uni-icons type="camera-filled" size="20" color="#333"></uni-icons>
|
</view>
|
</view> -->
|
|
<scroll-view class="content" scroll-y>
|
<view class="record-list">
|
<view class="record-item" v-for="(item, index) in records" :key="index">
|
<view class="record-left">
|
<image class="record-image" :src="item.image || img"></image>
|
</view>
|
<view class="record-right">
|
<view class="record-header">
|
<text class="record-title">{{ item.title }}</text>
|
<text class="record-status" :class="{ pending: item.status === '待体检', completed: item.status !== '待体检' }">{{ item.status }}</text>
|
</view>
|
<view class="record-detail">
|
<text class="detail-text">共{{ item.items.length || 0}}项: {{ item.items.join(' | ') }}</text>
|
</view>
|
<view class="record-time">
|
<text class="time-text">体检时间: {{ formatTime(item.time) }}</text>
|
</view>
|
<view class="record-price">
|
<text class="price-symbol">¥</text>
|
<text class="price-value">{{ item.price || 0 }}</text>
|
</view>
|
</view>
|
</view>
|
<view v-if="records.length === 0" class="empty-view">
|
<text class="empty-text">暂无问诊记录</text>
|
</view>
|
</view>
|
</scroll-view>
|
</view>
|
</template>
|
|
<script>
|
import { getwenzhenxinxi } from "@/api/system/report";
|
|
export default {
|
data() {
|
return {
|
img: 'https://ai-public.mastergo.com/ai/img_res/27bcf0acb95aa0120114fecacce5bf5c.jpg', // 默认图片
|
records: [],
|
idCard: ''
|
};
|
},
|
onLoad(option) {
|
console.log('history.vue onLoad 参数:', option);
|
if (option.cusIdCard) {
|
this.idCard = decodeURIComponent(option.cusIdCard);
|
console.log('解析后的身份证号:', this.idCard);
|
this.getRecords();
|
} else {
|
uni.showToast({
|
title: '身份证号未传递',
|
icon: 'none'
|
});
|
}
|
},
|
methods: {
|
formatTime(isoTime) {
|
if (!isoTime) return '';
|
const date = new Date(isoTime);
|
const year = date.getFullYear();
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
const day = String(date.getDate()).padStart(2, '0');
|
const hours = String(date.getHours()).padStart(2, '0');
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
const seconds = String(date.getSeconds()).padStart(2, '0');
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
},
|
getRecords() {
|
getwenzhenxinxi({ idCard: this.idCard }).then(res => {
|
console.log('getwenzhenxinxi 响应:', res);
|
if (res.code === 200) {
|
this.records = res.data || [];
|
} else {
|
uni.showToast({
|
title: res.msg || '获取问诊记录失败',
|
icon: 'none'
|
});
|
}
|
}).catch(err => {
|
console.error('getwenzhenxinxi 错误:', err);
|
uni.showToast({
|
title: err.message || '网络错误,请稍后重试',
|
icon: 'none'
|
});
|
});
|
}
|
}
|
};
|
</script>
|
<style scoped>
|
.page {
|
height: 100%;
|
background-color: #f5f5f5;
|
display: flex;
|
flex-direction: column;
|
}
|
|
.nav-bar {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
padding: 0 32rpx;
|
height: 88rpx;
|
background-color: #fff;
|
flex-shrink: 0;
|
}
|
|
.nav-left {
|
display: flex;
|
align-items: center;
|
}
|
|
.nav-title {
|
font-size: 16px;
|
color: #333;
|
margin-left: 16rpx;
|
font-weight: 500;
|
}
|
|
.nav-right {
|
display: flex;
|
align-items: center;
|
gap: 32rpx;
|
}
|
|
.content {
|
flex: 1;
|
overflow: auto;
|
}
|
|
.record-list {
|
padding: 24rpx;
|
}
|
|
.record-item {
|
display: flex;
|
background-color: #fff;
|
border-radius: 12rpx;
|
padding: 24rpx;
|
margin-bottom: 24rpx;
|
}
|
|
.record-image {
|
width: 120rpx;
|
height: 120rpx;
|
border-radius: 8rpx;
|
}
|
|
.record-right {
|
flex: 1;
|
margin-left: 24rpx;
|
}
|
|
.record-header {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
margin-bottom: 16rpx;
|
}
|
|
.record-title {
|
font-size: 16px;
|
color: #333;
|
font-weight: 500;
|
}
|
|
.record-status {
|
font-size: 14px;
|
}
|
|
.pending {
|
color: #1890ff;
|
}
|
|
.completed {
|
color: #999;
|
}
|
|
.record-detail {
|
margin-bottom: 16rpx;
|
}
|
|
.detail-text {
|
font-size: 14px;
|
color: #666;
|
line-height: 1.4;
|
}
|
|
.record-time {
|
margin-bottom: 16rpx;
|
}
|
|
.time-text {
|
font-size: 14px;
|
color: #666;
|
}
|
|
.record-price {
|
display: flex;
|
align-items: baseline;
|
}
|
|
.price-symbol {
|
font-size: 14px;
|
color: #ff6b00;
|
}
|
|
.price-value {
|
font-size: 20px;
|
color: #ff6b00;
|
font-weight: 500;
|
}
|
|
.empty-view {
|
text-align: center;
|
padding: 50rpx;
|
}
|
|
.empty-text {
|
font-size: 28rpx;
|
color: #999;
|
}
|
</style>
|