Commit 84d08131 authored by songrui's avatar songrui

Merge branch 'chronic-dev' of http://gitlab.yiboshi.com/nightkis1995/frontend-h5 into chronic-dev

parents d94f7db2 d6075159
......@@ -158,4 +158,9 @@ export function getScreenDyslipemiaLastTime(params) {
// 引用最近一次随访记录-血脂异常
export function getVisitDyslipemiaLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/reference-last-time`, body: params, loading: true })
}
// 药品列表
export function getDrugList(params) {
return fetchBase({ url: `/chronic-admin/v1/base-info/phl-drug-list`, body: params })
}
\ No newline at end of file
......@@ -66,7 +66,7 @@ export default {
if (!token) {
token = sessionStorage.getItem('token')
if (process.env.NODE_ENV !== 'production') {
token = '33bcb102-cf56-4eec-b1b4-1894314e4361'
token = 'e91f5936-1adb-41bd-984b-b4e2ce5f33b2'
}
}
if (token) {
......
<template>
<div>
<van-field
v-model='innerValueName'
readonly
is-link
label='药品名称:'
placeholder='请选择'
class='input-back mt-2 form-input w-full'
:rules="[{required: true, message:'请选择'}]"
@click='showDrug= true'
/>
<!-- {{ array }} -->
<van-popup v-model:show='showDrug' position='bottom'>
<div class='pb-4 pr-4 pl-4'>
<van-picker
:columns='array'
:columns-field-names='fieldNames'
@confirm='drugConfirm'
@cancel='showDrug = false'
>
<template #columns-top>
<van-search v-model="searchStr" :placeholder='placeholder' @search='onSearch' clearable/>
</template>
</van-picker>
</div>
</van-popup>
</div>
</template>
<script>
import { getDrugList } from '@/api/doctor/separateFU'
import { debounce } from '@/utils/common'
export default {
name: 'DocDrug',
props: {
value: [String, Number],
valueName: String,
placeholder: String,
fieldNames: {
type: Object,
default: () => {
return { text: 'chemicalName', value: 'id' }
}
}
},
emits: ['update:value', 'change'],
data() {
return {
innerValue: null,
innerValueName: undefined,
array: [],
loading: false,
showDrug: false,
searchStr: ''
}
},
created() {
this.onSearch = debounce(this.onSearch, 500)
this.onSearch('')
},
methods: {
onSearch(value) {
if (this.loading) return
this.array = []
if (!value) {
return
}
if (!value.trim()) return
this.loading = true
getDrugList({ pinyinCode: value }).then(res => {
this.array = res.data || []
if (this.array.length && this.innerValue) {
let list = this.array.filter(item => item.id == this.innerValue)
if (list && list.length) {
this.innerValueName = list[0].chemicalName
}
}
}).finally(() => {
this.loading = false
})
},
drugConfirm({ selectedOptions }) {
this.innerValueName = selectedOptions[0].chemicalName
this.$emit('update:value', selectedOptions[0].id)
this.$emit('change', selectedOptions[0])
this.searchStr = ''
this.showDrug = false
}
},
watch: {
value: {
handler(value) {
this.innerValue = value
},
immediate: true
},
valueName: {
handler(value) {
if (!value) {
return
}
this.onSearch(value)
},
immediate: true
},
searchStr: {
handler(val) {
if (!val) return
this.onSearch(val)
}
}
}
}
</script>
<style lang='less' scoped>
.form-input {
padding: 8px 12px;
border-radius: 8px;
}
.input-back {
background: #FAFAFA;
}
//灰色
.greyColor {
color: var(--van-text-color-2);
}
//确认按钮颜色
.blueColor {
color: var(--van-primary-color)
}
</style>
\ No newline at end of file
<template>
</template>
\ No newline at end of file
......@@ -294,7 +294,7 @@
</template>
<script>
import { useStore } from '@/doctor/store'
import DocDrug from '@/doctor/components/docDrug/DocDrug.vue'
import DocDrug from './DocDrug.vue'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
export default {
name: 'HypertensionDrugs',
......@@ -414,10 +414,18 @@ export default {
handler() {
let { currentMedicateCase, addMedicateCase, noComplianceReason } = this.form
if (currentMedicateCase) {
this.currentMedicateCase = JSON.parse(currentMedicateCase)
this.currentMedicateCase = JSON.parse(currentMedicateCase) || {}
this.currentMedicateCase.unitName = this.currentMedicateCase.unitName || this.store.getDictValue('CP00081', this.currentMedicateCase.unit)
this.currentMedicateCase.frequencyName = this.currentMedicateCase.frequencyName || this.store.getDictValue('CP00084', this.currentMedicateCase.frequency)
this.currentMedicateCase.usageName = this.currentMedicateCase.usageName || this.store.getDictValue('CP00083', this.currentMedicateCase.usage)
}
if (addMedicateCase) {
this.addMedicateCase = JSON.parse(addMedicateCase)
this.addMedicateCase = JSON.parse(addMedicateCase) || []
this.addMedicateCase.map(item => {
item.unitName = item.unitName || this.store.getDictValue('CP00081', item.unit)
item.frequencyName = item.frequencyName || this.store.getDictValue('CP00084', item.frequency)
item.usageName = item.usageName || this.store.getDictValue('CP00083', item.usage)
})
}
if (noComplianceReason) {
this.form.noComplianceReason = noComplianceReason.split(',').map(e => +e)
......
<template>
<div class="label-title mt-2">{{ firstText }}</div>
<div class="bg-fa">
<div class="label-title" required style="font-size: 14px; color: #262626; line-height: 24px">{{ secondText }}</div>
<van-field :rules="[{ required: true, message: '请选择' }]" style="padding: 0" class="mt-2">
<div class="label-title" style="font-size: 14px; color: #262626; line-height: 24px">{{ secondText }}</div>
<van-field style="padding: 0" class="mt-2">
<template #input>
<van-radio-group
v-model="form.adjustTreat"
......@@ -133,7 +133,7 @@
</template>
<script>
import { useStore } from '@/doctor/store'
import DocDrug from '@/doctor/components/docDrug/DocDrug.vue'
import DocDrug from './DocDrug.vue'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
export default {
components: { DocDrug, CheckBtn },
......@@ -218,7 +218,12 @@ export default {
watch: {
'form.medicateCase': {
handler() {
this.medicateCase = JSON.parse(this.form.medicateCase)
this.medicateCase = JSON.parse(this.form.medicateCase) || []
this.medicateCase.map(item => {
item.unitName = item.unitName || this.store.getDictValue('CP00081', item.unit)
item.frequencyName = item.frequencyName || this.store.getDictValue('CP00084', item.frequency)
item.usageName = item.usageName || this.store.getDictValue('CP00083', item.usage)
})
}
}
}
......
......@@ -306,6 +306,7 @@
</div>
</template>
<script>
import { useStore } from '@/doctor/store'
import ImagePreview from '@/doctor/components/imagePreview/imagePreview.vue'
export default {
components: { ImagePreview },
......@@ -317,6 +318,7 @@ export default {
},
data() {
return {
store: useStore(),
collapseAll: false,
activeCollapse: [],
columnsBase: [
......
......@@ -72,12 +72,25 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="5" title="生活方式指导" name="5">
<van-collapse-item key="5" title="合并症" name="5">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
<div style="color: #262626">吸烟</div>
<div class="gray-box mt-2">
<div class="list">
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">合并症</span>
<span class="text-end">
{{ visitInfo.complicationName || '-' }}
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item key="6" title="生活方式指导" name="6">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
<div class="py-1">吸烟</div>
<div class="gray-box">
<div>
<span>是否正在吸烟:</span>
<span>{{ visitInfo.isSmokingName }}</span>
......@@ -93,44 +106,15 @@
<div v-if="visitInfo.isSmoking === 1 || visitInfo.isSmoking === 2">
<span>日吸烟量:</span>
<span>{{ visitInfo.daySmoking || '-' }}支</span>
<!-- <span class="ml-4">目标日吸烟量:</span>
<span>{{ visitInfo.goalDaySmoking || '-' }}支</span> -->
</div>
<div v-if="visitInfo.isSmoking === 1 || visitInfo.isSmoking === 2">
<span>目标日吸烟量:</span>
<span>{{ visitInfo.goalDaySmoking || '-' }}支</span>
</div>
</div>
<div style="color: #262626" class="mt-2">饮酒</div>
<div class="gray-box mt-2">
<div>
<span>是否正在饮酒:</span>
<span>{{ visitInfo.isDrinkName }}</span>
</div>
<div v-if="visitInfo.isDrink === 1 || visitInfo.isDrink === 2">
<span>日饮酒量:</span>
<span>{{ visitInfo.dayDrink || '-' }}ml</span>
<span class="ml-4">目标日饮酒量:</span>
<span>{{ visitInfo.goalDayDrink || '-' }}ml</span>
</div>
<div v-if="visitInfo.isDrink === 1 || visitInfo.isDrink === 2">
<span>白酒:</span>
<span>{{ visitInfo.drinkLiquor || '-' }}ml/日</span>
<span class="ml-2">啤酒:</span>
<span>{{ visitInfo.drinkBeer || '-' }}ml/日</span>
<span class="ml-2">红酒:</span>
<span>{{ visitInfo.drinkRed || '-' }}ml/日</span>
</div>
<div v-if="visitInfo.isDrink === 1 || visitInfo.isDrink === 2">
<span>黄酒:</span>
<span>{{ visitInfo.drinkYellow || '-' }}ml/日</span>
<span class="ml-2">其他:</span>
<span>{{ visitInfo.drinkOther || '-' }}ml/日</span>
</div>
</div>
<div style="color: #262626" class="mt-2">运动</div>
<div class="gray-box mt-2">
<div class="py-1">运动</div>
<div class="gray-box">
<div>
<span>有无规律活动:</span>
<span>{{ visitInfo.regularExerciseName }}</span>
......@@ -150,10 +134,22 @@
<span>{{ visitInfo.targetExerciseMinute || '-' }}分钟/次</span>
</div>
</div>
<div class="py-1">呼吸锻炼</div>
<div class="gray-box">
<div>
<span>有无呼吸锻炼:</span>
<span>{{ visitInfo.isBreathExerciseName }}</span>
</div>
<div v-if="visitInfo.isBreathExercise === 1">
<span>呼吸锻炼频率:</span>
<span>{{ visitInfo.breathExerciseWeek }}次/周、</span>
<span>{{ visitInfo.breathExerciseMinute }}分钟/次</span>
</div>
</div>
<div class="list mt-2">
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">摄盐情况(咸淡)</span>
<span class="text-end">{{ visitInfo.saltIntakeName || '-' }}</span>
<span class="shrink-0 mr-2 label">健康教育</span>
<span class="text-end">{{ visitInfo.healthEducationName || '-' }}</span>
</div>
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">心理调整</span>
......@@ -164,8 +160,22 @@
<span class="text-end">{{ visitInfo.doctorAdviceName || '-' }}</span>
</div>
</div>
<div class="list">
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">疫苗免疫史</span>
<span class="text-end">
{{ visitInfo.vaccinesHistoryName || '-' }}
</span>
</div>
<div v-if="visitInfo.vaccinesHistory === 1" class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">疫苗名称</span>
<span class="text-end">
{{ visitInfo.vaccinesHistoryHaveName || '-' }}
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item key="6" title="辅助检查" name="6">
<van-collapse-item key="7" title="辅助检查" name="7">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -188,7 +198,7 @@
</div>
</template>
</van-collapse-item>
<van-collapse-item key="7" title="服药依从性" name="7">
<van-collapse-item key="8" title="服药依从性" name="8">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -199,7 +209,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="8" title="药物不良反应" name="8">
<van-collapse-item key="9" title="药物不良反应" name="9">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -214,7 +224,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="9" title="此次随访分类" name="9">
<van-collapse-item key="10" title="此次随访分类" name="10">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -225,7 +235,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="10" title="目前诊断" name="10">
<van-collapse-item key="11" title="目前诊断" name="11">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -236,7 +246,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="11" title="用药情况" name="11">
<van-collapse-item key="12" title="用药情况" name="12">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -260,7 +270,7 @@
</div>
</template>
</van-collapse-item>
<van-collapse-item key="12" title="其他治疗" name="12">
<van-collapse-item key="13" title="其他治疗" name="13">
<div class="py-1">家庭氧疗</div>
<div class="gray-box">
<div>每日:{{ visitInfo.otEveryday || '-' }} 小时</div>
......@@ -279,7 +289,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="13" title="转诊" name="13">
<van-collapse-item key="14" title="转诊" name="14">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -302,13 +312,13 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="14" title="现场随访照片" name="14">
<van-collapse-item key="15" title="现场随访照片" name="15">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
<ImagePreview :img-list="visitInfo.visitImageList"></ImagePreview>
</van-collapse-item>
<van-collapse-item key="15" title="下次随访日期" name="15">
<van-collapse-item key="16" title="下次随访日期" name="16">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -319,7 +329,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item key="16" title="随访机构" name="16">
<van-collapse-item key="17" title="随访机构" name="17">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
......@@ -337,6 +347,7 @@
</div>
</template>
<script>
import { useStore } from '@/doctor/store'
import ImagePreview from '@/doctor/components/imagePreview/imagePreview.vue'
export default {
components: { ImagePreview },
......@@ -348,6 +359,7 @@ export default {
},
data() {
return {
store: useStore(),
collapseAll: false,
activeCollapse: [],
columnsBase: [
......@@ -423,7 +435,7 @@ export default {
this.activeCollapse = []
} else {
let list = []
for (let i = 1; i < 17; i++) {
for (let i = 1; i < 18; i++) {
list.push(i.toString())
}
this.activeCollapse = list
......@@ -443,7 +455,7 @@ export default {
this.activeCollapse = val.slice(val.length - 1)
}
}
if (val.length === 16) {
if (val.length === 17) {
this.collapseAll = true
} else {
this.collapseAll = false
......
......@@ -234,16 +234,19 @@
<span class="text-end">{{ visitInfo.adjustTreatName }}</span>
</div>
</div>
<div v-for="(item, index) in medicateCase" :key="index" class="gray-box mb-2">
<div>药物名称:{{ item.drugName }}</div>
<div>
<span>剂量:</span>
<span>{{ item.dose }}</span>
<span class="ml-1">{{ item.unitName }}</span>
<template v-if="visitInfo.adjustTreat === 1">
<div class="py-1">用药方案</div>
<div v-for="(item, index) in medicateCase" :key="index" class="gray-box mb-2">
<div>药物名称:{{ item.drugName }}</div>
<div>
<span>剂量:</span>
<span>{{ item.dose }}</span>
<span class="ml-1">{{ item.unitName || store.getDictValue('CP00081', item.unit) }}</span>
</div>
<div>频次:{{ item.frequencyName || store.getDictValue('CP00084', item.frequency) }}</div>
<div>用法:{{ item.usageName || store.getDictValue('CP00083', item.usage) }}</div>
</div>
<div>频次:{{ item.frequencyName }}</div>
<div>用法:{{ item.usageName }}</div>
</div>
</template>
</van-collapse-item>
<van-collapse-item key="12" title="转诊" name="12">
<template #right-icon>
......@@ -303,6 +306,7 @@
</div>
</template>
<script>
import { useStore } from '@/doctor/store'
import ImagePreview from '@/doctor/components/imagePreview/imagePreview.vue'
export default {
components: { ImagePreview },
......@@ -314,6 +318,7 @@ export default {
},
data() {
return {
store: useStore(),
collapseAll: false,
activeCollapse: [],
columnsBase: [
......
......@@ -348,6 +348,7 @@
</div>
</template>
<script>
import { useStore } from '@/doctor/store'
import ImagePreview from '@/doctor/components/imagePreview/imagePreview.vue'
export default {
components: { ImagePreview },
......@@ -359,6 +360,7 @@ export default {
},
data() {
return {
store: useStore(),
collapseAll: false,
activeCollapse: [],
columnsBase: [
......
......@@ -306,6 +306,7 @@
</div>
</template>
<script>
import { useStore } from '@/doctor/store'
import ImagePreview from '@/doctor/components/imagePreview/imagePreview.vue'
export default {
components: { ImagePreview },
......@@ -317,6 +318,7 @@ export default {
},
data() {
return {
store: useStore(),
collapseAll: false,
activeCollapse: [],
columnsBase: [
......
......@@ -172,17 +172,6 @@
<template #right-icon>
<doc-icon type="doc-down" />
</template>
<!-- <div class="list">
<div v-for="item in columnsAuxiliary" :key="item.key">
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">{{ item.title }}</span>
<span class="text-end">
<span>{{ visitInfo[item.key] || '-' }}</span>
<span v-if="item.unit" class="ml-1">{{ item.unit }}</span>
</span>
</div>
</div>
</div> -->
<div v-for="(x, xIndex) in inspectList" :key="xIndex">
<div style="color: #262626" :class="[xIndex === 0 ? '' : 'mt-2']">{{ x.insName }}</div>
<div class="gray-box mt-1">
......
......@@ -228,6 +228,25 @@
<template #right-icon>
<doc-icon type="doc-down" />
</template>
<div class="list">
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">是否调整治疗方案</span>
<span class="text-end">{{ visitInfo.adjustTreatName }}</span>
</div>
</div>
<template v-if="visitInfo.adjustTreat === 1">
<div class="py-1">用药方案</div>
<div v-for="(item, index) in medicateCase" :key="index" class="gray-box mb-2">
<div>药物名称:{{ item.drugName }}</div>
<div>
<span>剂量:</span>
<span>{{ item.dose }}</span>
<span class="ml-1">{{ item.unitName || store.getDictValue('CP00081', item.unit) }}</span>
</div>
<div>频次:{{ item.frequencyName || store.getDictValue('CP00084', item.frequency) }}</div>
<div>用法:{{ item.usageName || store.getDictValue('CP00083', item.usage) }}</div>
</div>
</template>
</van-collapse-item>
<van-collapse-item key="12" title="转诊" name="12">
<template #right-icon>
......@@ -287,6 +306,7 @@
</div>
</template>
<script>
import { useStore } from '@/doctor/store'
import ImagePreview from '@/doctor/components/imagePreview/imagePreview.vue'
export default {
components: { ImagePreview },
......@@ -298,6 +318,7 @@ export default {
},
data() {
return {
store: useStore(),
collapseAll: false,
activeCollapse: [],
columnsBase: [
......@@ -339,7 +360,14 @@ export default {
},
inspectList() {
return this.visitInfo.inspectList || []
}
},
medicateCase() {
if (this.visitInfo.medicateCase) {
return JSON.parse(this.visitInfo.medicateCase)
} else {
return []
}
},
},
methods: {
// 全部展开、收起
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment