|
@@ -70,7 +70,9 @@
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import { ref } from 'vue'
|
|
import { ref } from 'vue'
|
|
|
|
|
+import { onLoad } from '@dcloudio/uni-app'
|
|
|
import CustomNav from '@/components/custom-nav.vue'
|
|
import CustomNav from '@/components/custom-nav.vue'
|
|
|
|
|
+import { savePatientHealthRecord, getMyHealthRecord } from '@/api/patientHealthRecord'
|
|
|
|
|
|
|
|
// 吸烟选项
|
|
// 吸烟选项
|
|
|
const smokingOptions = [
|
|
const smokingOptions = [
|
|
@@ -114,6 +116,59 @@ const familyHistory = ref('')
|
|
|
const hasAllergy = ref(false)
|
|
const hasAllergy = ref(false)
|
|
|
const hasFamilyHistory = ref(false)
|
|
const hasFamilyHistory = ref(false)
|
|
|
|
|
|
|
|
|
|
+// 加载现有健康档案数据
|
|
|
|
|
+const loadHealthRecord = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await getMyHealthRecord()
|
|
|
|
|
+ if (res.data.code === 200 && res.data.data) {
|
|
|
|
|
+ const record = res.data.data
|
|
|
|
|
+ // 设置吸烟史
|
|
|
|
|
+ if (record.smokingHistory) {
|
|
|
|
|
+ smokingHistory.value = record.smokingHistory
|
|
|
|
|
+ const index = smokingOptions.findIndex(opt => opt.value === record.smokingHistory)
|
|
|
|
|
+ if (index >= 0) {
|
|
|
|
|
+ smokingIndex.value = index
|
|
|
|
|
+ smokingSelected.value = true
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 设置饮酒史
|
|
|
|
|
+ if (record.drinkingHistory) {
|
|
|
|
|
+ drinkingHistory.value = record.drinkingHistory
|
|
|
|
|
+ const index = drinkingOptions.findIndex(opt => opt.value === record.drinkingHistory)
|
|
|
|
|
+ if (index >= 0) {
|
|
|
|
|
+ drinkingIndex.value = index
|
|
|
|
|
+ drinkingSelected.value = true
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 设置疾病史
|
|
|
|
|
+ diseaseHistory.value = {
|
|
|
|
|
+ diabetes: record.diabetes || false,
|
|
|
|
|
+ hypertension: record.hypertension || false,
|
|
|
|
|
+ dyslipidemia: record.dyslipidemia || false,
|
|
|
|
|
+ coronaryHeartDisease: record.coronaryHeartDisease || false,
|
|
|
|
|
+ cerebralInfarction: record.cerebralInfarction || false
|
|
|
|
|
+ }
|
|
|
|
|
+ // 设置过敏史
|
|
|
|
|
+ if (record.allergyHistory) {
|
|
|
|
|
+ allergyHistory.value = record.allergyHistory
|
|
|
|
|
+ hasAllergy.value = true
|
|
|
|
|
+ }
|
|
|
|
|
+ // 设置家族史
|
|
|
|
|
+ if (record.familyHistory) {
|
|
|
|
|
+ familyHistory.value = record.familyHistory
|
|
|
|
|
+ hasFamilyHistory.value = true
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('加载健康档案失败:', error)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 页面加载时获取数据
|
|
|
|
|
+onLoad(() => {
|
|
|
|
|
+ loadHealthRecord()
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
// 切换疾病状态
|
|
// 切换疾病状态
|
|
|
const toggleDisease = (key: string, value: boolean) => {
|
|
const toggleDisease = (key: string, value: boolean) => {
|
|
|
diseaseHistory.value[key] = value
|
|
diseaseHistory.value[key] = value
|
|
@@ -133,20 +188,39 @@ const onDrinkingChange = (e: any) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 提交表单
|
|
// 提交表单
|
|
|
-const submitForm = () => {
|
|
|
|
|
- const formData = {
|
|
|
|
|
- smokingHistory: smokingHistory.value,
|
|
|
|
|
- drinkingHistory: drinkingHistory.value,
|
|
|
|
|
- diseaseHistory: diseaseHistory.value,
|
|
|
|
|
- allergyHistory: hasAllergy.value ? allergyHistory.value : '',
|
|
|
|
|
- familyHistory: hasFamilyHistory.value ? familyHistory.value : ''
|
|
|
|
|
|
|
+const submitForm = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const formData = {
|
|
|
|
|
+ smokingHistory: smokingHistory.value,
|
|
|
|
|
+ drinkingHistory: drinkingHistory.value,
|
|
|
|
|
+ diabetes: diseaseHistory.value.diabetes,
|
|
|
|
|
+ hypertension: diseaseHistory.value.hypertension,
|
|
|
|
|
+ dyslipidemia: diseaseHistory.value.dyslipidemia,
|
|
|
|
|
+ coronaryHeartDisease: diseaseHistory.value.coronaryHeartDisease,
|
|
|
|
|
+ cerebralInfarction: diseaseHistory.value.cerebralInfarction,
|
|
|
|
|
+ allergyHistory: hasAllergy.value ? allergyHistory.value : '',
|
|
|
|
|
+ familyHistory: hasFamilyHistory.value ? familyHistory.value : ''
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const res = await savePatientHealthRecord(formData)
|
|
|
|
|
+ if (res.data.code === 200) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '提交成功',
|
|
|
|
|
+ icon: 'success'
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: res.data.message || '提交失败',
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('提交健康档案失败:', error)
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '提交失败,请重试',
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
- console.log('提交的表单数据:', formData)
|
|
|
|
|
- // 这里可以添加提交逻辑,比如调用API
|
|
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '提交成功',
|
|
|
|
|
- icon: 'success'
|
|
|
|
|
- })
|
|
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|