|
|
@@ -13,7 +13,7 @@
|
|
|
|
|
|
<!-- view mode -->
|
|
|
<view v-if="pageMode==='view'">
|
|
|
- <report-blocks-renderer v-if="blocks && blocks.length > 0" :blocks="blocks" />
|
|
|
+ <report-blocks-renderer v-if="blocks && blocks.length > 0" :blocks="blocks" @help="onBlockHelp" />
|
|
|
<view class="empty-hint" v-else>暂无报告内容</view>
|
|
|
<view class="edit-btn" v-if="isGutFlora && pageMode==='view'">
|
|
|
<view class="nav-edit" @tap="enterEditMode"><text>{{ backendBlocksExist ? '编辑' : '查看完整数据 ›' }}</text></view>
|
|
|
@@ -391,7 +391,7 @@
|
|
|
|
|
|
<script>
|
|
|
import ReportBlocksRenderer from '../../components/report-blocks-renderer.vue'
|
|
|
-import { getReportDetail, getDanReportDetail, editHealthReport, parseReportDraft, confirmReportPreview, discardReportDraft, confirmTongue, discardTongue, getFamilyMemberList, addFamilyMember } from '../../utils/api.js'
|
|
|
+import { getReportDetail, getDanReportDetail, getReportPayload, editHealthReport, parseReportDraft, confirmReportPreview, discardReportDraft, confirmTongue, discardTongue, getFamilyMemberList, addFamilyMember, queryIndicatorKnowledge, queryBacteriaKnowledge } from '../../utils/api.js'
|
|
|
import { parseDate } from '../../utils/format.js'
|
|
|
|
|
|
export default {
|
|
|
@@ -447,7 +447,8 @@ export default {
|
|
|
groupExpandList: [],
|
|
|
collapseState: { gutFlora: false, diseaseRisk: false, probiotic: false, taxonomy: false, pathogen: false },
|
|
|
showHelpPopup: false,
|
|
|
- helpData: {}
|
|
|
+ helpData: {},
|
|
|
+ _kbCache: {}
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -634,10 +635,23 @@ export default {
|
|
|
pathogenDetection: []
|
|
|
}
|
|
|
},
|
|
|
- enterEditMode() {
|
|
|
- this.pageMode = 'edit'
|
|
|
- this.directEdit = false
|
|
|
- this.showMemberPanel = false
|
|
|
+ enterEditMode: function() {
|
|
|
+ var self = this
|
|
|
+ self.pageMode = 'edit'
|
|
|
+ self.directEdit = false
|
|
|
+ self.showMemberPanel = false
|
|
|
+ // 按需加载 payload(编辑回填)
|
|
|
+ if (self.reportId && self.reportType !== 'dan') {
|
|
|
+ uni.showLoading({ title: '加载编辑数据...' })
|
|
|
+ getReportPayload(self.reportId).then(function(res) {
|
|
|
+ uni.hideLoading()
|
|
|
+ if (res.code === 200 && res.data && res.data.payload) {
|
|
|
+ self.payload = Object.assign({}, self.defaultPayload(), res.data.payload)
|
|
|
+ }
|
|
|
+ }).catch(function() {
|
|
|
+ uni.hideLoading()
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
cancelEdit() {
|
|
|
// 从列表 mode=edit 直入编辑模式时,取消等同返回上一页(报告卡片/报告列表)
|
|
|
@@ -817,6 +831,60 @@ export default {
|
|
|
}
|
|
|
this.showHelpPopup = true
|
|
|
},
|
|
|
+ /** blocks renderer ? 按钮点击 — 按需查询知识库(页面级缓存) */
|
|
|
+ onBlockHelp: function(item, blockType) {
|
|
|
+ var self = this
|
|
|
+ var name = item.name || ''
|
|
|
+ if (!name) return
|
|
|
+ var cacheKey = blockType + ':' + name
|
|
|
+ if (self._kbCache[cacheKey]) {
|
|
|
+ self.helpData = self._kbCache[cacheKey]
|
|
|
+ self.showHelpPopup = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.showLoading({ title: '加载说明...' })
|
|
|
+ var queryFn = blockType === 'bacteria' ? queryBacteriaKnowledge : queryIndicatorKnowledge
|
|
|
+ queryFn(name).then(function(res) {
|
|
|
+ uni.hideLoading()
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
+ var v3 = res.data
|
|
|
+ var high = v3['偏高影响'] || ''
|
|
|
+ var low = v3['偏低影响'] || ''
|
|
|
+ var suggestion = v3['调整建议'] || ''
|
|
|
+ var desc = ''
|
|
|
+ if (high) desc += '偏高影响:' + high + '\n'
|
|
|
+ if (low) desc += '偏低影响:' + low
|
|
|
+ if (suggestion) desc += (desc ? '\n' : '') + '调整建议:' + suggestion
|
|
|
+ self.helpData = {
|
|
|
+ name: v3['名称'] || name,
|
|
|
+ value: item.value || '',
|
|
|
+ refRange: item.refRange || '',
|
|
|
+ status: item.status || 'normal',
|
|
|
+ description: desc || v3['说明'] || self.getDefaultDescription(name, item.status)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ self.helpData = {
|
|
|
+ name: name,
|
|
|
+ value: item.value || '',
|
|
|
+ refRange: item.refRange || '',
|
|
|
+ status: item.status || 'normal',
|
|
|
+ description: self.getDefaultDescription(name, item.status)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ self._kbCache[cacheKey] = self.helpData
|
|
|
+ self.showHelpPopup = true
|
|
|
+ }).catch(function() {
|
|
|
+ uni.hideLoading()
|
|
|
+ self.helpData = {
|
|
|
+ name: name,
|
|
|
+ value: item.value || '',
|
|
|
+ refRange: item.refRange || '',
|
|
|
+ status: item.status || 'normal',
|
|
|
+ description: self.getDefaultDescription(name, item.status)
|
|
|
+ }
|
|
|
+ self.showHelpPopup = true
|
|
|
+ })
|
|
|
+ },
|
|
|
closeHelp() {
|
|
|
this.showHelpPopup = false
|
|
|
},
|