|
|
@@ -1139,27 +1139,20 @@ export default {
|
|
|
uni.showToast({ title: '请输入报告日期', icon: 'none' })
|
|
|
return
|
|
|
}
|
|
|
- // 组装保存用 payload:沿用查看态已加载的 payload 快照,仅覆盖 reportDate。
|
|
|
- // 若老报告无 payload_json 快照(后端 detail 不返回 payload),用详情接口返回的三张表数据回填,
|
|
|
- // 避免只改日期却把指标/菌群/风险清空。
|
|
|
- var payload = self.payload
|
|
|
- if (!payload.summary) payload.summary = {}
|
|
|
- payload.summary.reportDate = val
|
|
|
- var detail = self.lastDetail
|
|
|
- if (detail) {
|
|
|
- if ((!payload.indicators || !payload.indicators.length) && detail.indicators && detail.indicators.length) {
|
|
|
- payload.indicators = detail.indicators
|
|
|
- }
|
|
|
- if ((!payload.gutFlora || !payload.gutFlora.length) && detail.gutFlora && detail.gutFlora.length) {
|
|
|
- payload.gutFlora = detail.gutFlora
|
|
|
- }
|
|
|
- if ((!payload.diseaseRisks || !payload.diseaseRisks.length) && detail.diseaseRisks && detail.diseaseRisks.length) {
|
|
|
- payload.diseaseRisks = detail.diseaseRisks
|
|
|
- }
|
|
|
- }
|
|
|
+ // 日期专用最小 payload:只带 summary(沿用现有分数等值,仅覆盖 reportDate)。
|
|
|
+ // 刻意不带 indicators/gutFlora/diseaseRisks —— 后端 updateReportFromPayload 对缺失键
|
|
|
+ // 已有 instanceof List 保护,缺键即跳过整表「先删后插」,避免误清 collectionDate /
|
|
|
+ // description / relatedBacteria 等 payload 快照不含的列(若回填这三张表,insert 不会
|
|
|
+ // 写这些列 → 存量数据被永久清掉)。
|
|
|
+ var srcSummary = (self.payload && self.payload.summary) ? self.payload.summary : {}
|
|
|
+ // 复制一份再改:payload.summary 与编辑态日期输入框 v-model 双向绑定,直接改会把
|
|
|
+ // 未保存的日期写进组件状态,保存失败后编辑态会带出错误日期。
|
|
|
+ var summary = Object.assign({}, srcSummary)
|
|
|
+ summary.reportDate = val
|
|
|
+ var dateOnlyPayload = { type: self.payload.type || 'gut_flora', summary: summary }
|
|
|
var subjectId = self.selectedMemberId || self.createdMemberId || null
|
|
|
uni.showLoading({ title: '保存中...' })
|
|
|
- editHealthReport(self.reportId, payload, subjectId).then(function(res) {
|
|
|
+ editHealthReport(self.reportId, dateOnlyPayload, subjectId).then(function(res) {
|
|
|
uni.hideLoading()
|
|
|
if (res.code === 200) {
|
|
|
self.dateEditing = false
|