This commit is contained in:
Your Name
2026-03-16 15:08:28 +08:00
parent 294fee4d88
commit cda63b5ae2
26 changed files with 1695 additions and 492 deletions
+37 -14
View File
@@ -821,6 +821,7 @@ const agreedToTerms = ref(true) // 默认选中"是"
const showDatePicker = ref(false)
const diagnosisId = ref(null)
const patientId = ref(null)
const isAddMode = ref(false) // 新建模式
// 表单数据
const formData = ref({
@@ -1063,23 +1064,37 @@ const loadCardDetail = async () => {
try {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
diagnosisId.value = currentPage.options.id
if (!diagnosisId.value) {
uni.showToast({ title: '诊单ID不存在', icon: 'none' })
setTimeout(() => uni.navigateBack(), 1500)
return
}
const options = currentPage.options || {}
diagnosisId.value = options.id
isAddMode.value = options.add === '1' || options.add === 1
const userData = uni.getStorageSync('userData')
patientId.value = userData?.diagnosis?.patient_id
// 新建模式:patient_id 可选(创建后自动生成),仅需登录
if (isAddMode.value) {
const token = uni.getStorageSync('token')
if (!token) {
uni.showToast({ title: '请先登录', icon: 'none' })
setTimeout(() => uni.redirectTo({ url: '/pages/login/login' }), 1500)
return
}
loading.value = false
return
}
if (!patientId.value) {
uni.showToast({ title: '请先登录', icon: 'none' })
setTimeout(() => uni.redirectTo({ url: '/pages/login/login' }), 1500)
return
}
if (!diagnosisId.value) {
uni.showToast({ title: '诊单ID不存在', icon: 'none' })
setTimeout(() => uni.navigateBack(), 1500)
return
}
const res = await proxy.apiUrl({
url: '/api/tcm/diagnosisDetail',
method: 'GET',
@@ -1302,18 +1317,26 @@ const submitForm = async () => {
submitData.diagnosis_date = submitData.local_hospital_visit_date
}
const apiUrl = isAddMode.value ? '/api/tcm/addCard' : '/api/tcm/updateCard'
const apiData = isAddMode.value
? { ...submitData, ...(patientId.value ? { patient_id: patientId.value } : {}) }
: { id: diagnosisId.value, patient_id: patientId.value, ...submitData }
const res = await proxy.apiUrl({
url: '/api/tcm/updateCard',
url: apiUrl,
method: 'POST',
data: {
id: diagnosisId.value,
patient_id: patientId.value,
...submitData
}
data: apiData
})
if (res.code === 1) {
uni.showToast({ title: '保存成功', icon: 'success' })
// 新建成功:若有返回 patient_id,写入 userData 供后续列表查询
if (isAddMode.value && res.data?.patient_id) {
const userData = uni.getStorageSync('userData') || {}
if (!userData.diagnosis) userData.diagnosis = {}
userData.diagnosis.patient_id = res.data.patient_id
uni.setStorageSync('userData', userData)
}
uni.showToast({ title: isAddMode.value ? '创建成功' : '保存成功', icon: 'success' })
setTimeout(() => {
uni.navigateBack()
}, 1500)