uniapp-app/pages_app/followDetail/followDetail.vue
2025-09-23 19:00:32 +08:00

117 lines
3.4 KiB
Vue

<template>
<view class="visit-note-page">
<uni-nav-bar
left-icon="left"
title="随访详情"
@clickLeft="goBack"
fixed
color="#8B2316"
height="140rpx"
:border="false"
backgroundColor="#eee"
>
</uni-nav-bar>
<!-- 患者行 -->
<view class="row" @click="noop">
<text class="row-label">患者</text>
<text class="row-value">{{ patientName }}</text>
</view>
<view class="row" @click="noop">
<text class="row-label">日期</text>
<text class="row-value">{{ datetime }}</text>
</view>
<!-- 标题栏 -->
<view class="section-title">随访内容</view>
<!-- 输入框区域 -->
<view class="note-box">
<textarea class="note-textarea" v-model.trim="note" placeholder="请填写随访内容" auto-height :maxlength="200" />
</view>
<!-- 底部删除按钮 -->
<view class="fixed-footer">
<view class="fixed-btn" @click="deleteFollowUp">删除该条记录</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
import { onLoad,onShow } from '@dcloudio/uni-app'
import api from '@/api/api.js'
const patientName = ref('')
const note = ref('请近日来医院复诊、复查')
const datetime = ref('')
const followUpUuid = ref('')
onLoad((options) => {
patientName.value = options?.patient_name
if (options?.followUpUuid) followUpUuid.value = options.followUpUuid
})
onShow(() => {
getFollowUp();
})
const deleteFollowUp = () => {
api.deleteFollowUp({
uuid: followUpUuid.value
}).then(res => {
console.log(res)
if(res.code == 200){
uni.showToast({
title: '删除成功',
icon: 'none'
})
setTimeout(() => goBack(), 600)
}
})
}
const getFollowUp = () => {
api.getFollowUp({
uuid: followUpUuid.value
}).then(res => {
console.log(res)
if(res.code == 200){
note.value = res.data.note
datetime.value = res.data.datetime
}
})
}
const goBack = () => uni.navigateBack()
const submit = () => {
try {
const pages = getCurrentPages()
const curr = pages[pages.length - 1]
const ec = curr?.getOpenerEventChannel?.()
ec?.emit && ec.emit('onVisitNoteSubmit', { note: note.value, idx: Number(idx.value) })
} catch (e) {}
uni.showToast({ title: '已添加', icon: 'none' })
setTimeout(() => goBack(), 600)
}
const noop = () => {}
</script>
<style lang="scss" scoped>
.visit-note-page{
min-height: 100vh; background:#f5f5f5; padding-bottom: 120rpx;
}
.nav-right{ display:flex; align-items:center; }
.submit-text{ color:#8B2316; font-size: 30rpx; }
.row{
margin-top: 20rpx; background:#fff; padding: 26rpx 30rpx; display:flex; align-items:center; justify-content:space-between; border-bottom: 1rpx solid #eee;
.row-label{ font-size: 32rpx; color:#8B2316; font-weight: 500; }
.row-value{ font-size: 32rpx; color:#333; }
}
.section-title{ background:#fff; padding: 22rpx 30rpx; color:#8B2316; font-size: 30rpx; border-top: 1rpx solid #eee; border-bottom: 1rpx solid #eee; }
.note-box{ background:#fff; padding: 20rpx 24rpx; }
.note-textarea{
box-sizing: border-box;
width: 100%; min-height: 260rpx; background:#e5e5e5; border-radius: 0; padding: 20rpx; font-size: 32rpx; color:#111;
}
.fixed-footer{ position: fixed; left: 0; right: 0; bottom: 0; padding: 20rpx; background: transparent; }
.fixed-btn{ background:#8B2316; border-radius: 12rpx; padding: 24rpx 30rpx; text-align:center; color:#fff; font-size:30rpx; margin: 0 20rpx; }
</style>