Commit 3735a1aa authored by songrui's avatar songrui

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

parents 245b5809 905f1a49
......@@ -7,7 +7,7 @@
<link rel='icon' href='<%= BASE_URL %>favicon.ico'>
<title><%= htmlWebpackPlugin.options.title %></title>
<!-- 3.3.4/vconsole.min.js -->
<!-- <script src='https://beta-copd-img.yiboshi.com/20241106/1730860078278931285.js'></script>-->
<script src='https://beta-copd-img.yiboshi.com/20241106/1730860078278931285.js'></script>
</head>
<body>
<noscript>
......@@ -79,7 +79,6 @@
<!-- built files will be auto injected -->
</body>
<script>
// var vConsole =new VConsole();
// console.log('Hello world');
var vConsole =new VConsole();
</script>
</html>
......@@ -11,4 +11,26 @@ export function addDiabetesForm(params) {
// 新增冠心病随访
export function addCoronaryHeartDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/save`, body: params, loading: true })
}
// 新增脑卒中随访
export function addStrokeForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-stroke/save`, body: params, loading: true })
}
// 新增慢阻肺随访
export function addCopdForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-pulmonary/save`, body: params, loading: true })
}
// 新增慢性肾病随访
export function addChronicKidneyDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-nephrosis/save`, body: params, loading: true })
}
// 新增血脂异常随访
export function addDyslipidemiaForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/save`, body: params, loading: true })
}
// 查询专病随访详情
export function getSeparateFUDetail(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-record/specialized-detail`, body: params, loading: true })
}
\ No newline at end of file
<template>
<div class="h-full iframe-page">
<iframe :src="iframeSrc" style="border: 0;width: 100%;height: 99%" :key="iframeSrc" v-if="iframeSrc" allowFullscreen>
</iframe>
<div v-else/>
</div>
<div class='h-full iframe-page'>
<div class='p-3 text-black text-center shrink-0 doc-nav-bar'>
<span @click='onBack' class='text-12 back-bt'>
<doc-icon type='doc-left2' />
</span>
<span style='min-height: .16rem;display: inline-block'>{{ pageTitle }}</span>
</div>
<iframe :src='iframeSrc' style='border: 0;width: 100%;height: calc(99% - 50px)' :key='iframeSrc' v-if='iframeSrc'
allowFullscreen>
</iframe>
<div v-else />
</div>
</template>
<script>
// import {getCateInfoByMenuId} from "@/views/statScreen/config";
export default {
props: {
src: String
},
data() {
return {
iframeSrc: ''
}
},
// computed:{
// stat(){
// return this.$route.params.stat
// }
// },
beforeUnmount() {
this.iframeSrc = ''
},
watch: {
src: {
handler() {
this.load()
},
immediate: true
}
},
methods: {
load() {
// let menuList = this.$store.state.menu || []
// let rou = this.$route.fullPath
// let result = menuList.filter(item => item.frontActionUrl == rou)[0]
// let menuId = result.id
// let lobId = result.lobId
// if (lobId && lobId!='0'){
// getCateInfoByMenuId(menuId).then(res => {
// this.openIframe(res.data.treeCode, menuId);
// });
// }else {
this.iframeSrc = `${this.src}`
// }
props: {
src: String,
pageTitle: String
},
data() {
return {
iframeSrc: ''
}
},
/* computed: {
pageTitle() {
return this.$route.query.pageTitle || ''
}
},*/
beforeUnmount() {
this.iframeSrc = ''
},
openIframe(treeCode, menuId) {
let res = ''
res = `${this.src}${this.src?.includes('?') ? '&': '?'}source=MB&menuId=${menuId}`
if (treeCode) {
res = `${this.src}${this.src?.includes('?') ? '&': '?'}treeCode=${treeCode}&unitTreeCode=${treeCode}&source=MB&menuId=${menuId}`
}
this.iframeSrc = res
watch: {
src: {
handler() {
debugger
this.load()
},
immediate: true
}
},
methods: {
load() {
// let menuList = this.$store.state.menu || []
// let rou = this.$route.fullPath
// let result = menuList.filter(item => item.frontActionUrl == rou)[0]
// let menuId = result.id
// let lobId = result.lobId
// if (lobId && lobId!='0'){
// getCateInfoByMenuId(menuId).then(res => {
// this.openIframe(res.data.treeCode, menuId);
// });
// }else {
this.iframeSrc = `${this.src}`
// }
},
openIframe(treeCode, menuId) {
let res = ''
res = `${this.src}${this.src?.includes('?') ? '&' : '?'}source=MB&menuId=${menuId}`
if (treeCode) {
res = `${this.src}${this.src?.includes('?') ? '&' : '?'}treeCode=${treeCode}&unitTreeCode=${treeCode}&source=MB&menuId=${menuId}`
}
this.iframeSrc = res
},
onBack() {
this.$router.back()
}
}
}
}
</script>
<style lang="less" scoped>
<style lang='less' scoped>
// 顶部导航栏
.doc-nav-bar {
position: relative;
border-bottom: 1px solid #3C3C435C;
font-size: 18px;
font-weight: 600;
.back-bt {
position: absolute;
left: .16rem;
top: 50%;
transform: translateY(-50%);
}
}
</style>
......@@ -10,23 +10,23 @@
<!-- <HisDetail :info="detailInfo" v-else-if="showHis"></HisDetail>-->
<!-- 报卡随访详情 -->
<CrsVisitDetail :relationUuid="detailInfo.relationUuid" v-else-if="showCrs"></CrsVisitDetail>
<!-- 专病随访详情 -->
<SeparateFUDetail :relationId="detailInfo.relationId" v-else-if="showFU"></SeparateFUDetail>
</div>
</template>
<script>
import { getVisitManageVByUuId } from '@/api/doctor/generalFU'
// import GwDetail from '@/doctor/followUp/detail/components/GwDetail'
import CrsVisitDetail from '@/doctor/followUp/detail/components/CrsVisitDetail'
import CurrencyFUDetail from '@/doctor/followUp/generalFU/detail/Detail'
import IframePage from '@/components/iframePage/IframePage'
// 专病随访
import SeparateFUDetail from '@/doctor/followUp/separateFU/detail/Index.vue'
export default {
name: 'FollowUpDetail',
components: { CurrencyFUDetail, CrsVisitDetail },
props: {
// id: [String, Number],
// residentId: [String, Number],
// diseaseType: [String, Number]
},
components: { IframePage, CurrencyFUDetail, CrsVisitDetail, SeparateFUDetail },
data() {
return {
detailInfo: {},
......@@ -64,7 +64,7 @@ export default {
getVisitManageVByUuId(par).then(res => {
let record = res.data
this.detailInfo = record
this.PhlIsShow(record)
// this.PhlIsShow(record)
this.showFU = this.FUIsShow(record)
this.showCommon = this.GAUIsShow(record)
this.showHis = this.HisIsShow(record)
......@@ -103,19 +103,17 @@ export default {
}
return res
},
//判断是否显示报卡随访
//判断是否显示公卫随访
PhlIsShow(record) {
// let res = false
if (record.source == 4) {
// res = true
this.$router.push({
path: `/systemIframe/doctorGWDetail`,
query: {
src: `https://www.baidu.com/`
src: `https://www.baidu.com/`,
pageTitle: `公卫详情`
}
})
}
// return res
}
}
}
......
......@@ -144,7 +144,6 @@
<DocImageUpload
description='支持上传jpg、png、jpeg文件,大小请在10M以内'
lengthMessage='抱歉,最多可上传6个文件。'
:imageData='[]'
@change='(ids, option) => form.uploadVisitRecord = ids'
:maxLength='6'
class='mt-2'
......@@ -156,7 +155,6 @@
<DocImageUpload
description='支持上传jpg、png、jpeg文件,大小请在10M以内'
lengthMessage='抱歉,最多可上传6个文件。'
:imageData='[]'
@change='(ids, option) => form.sceneVisitImage = ids'
:maxLength='6'
class='mt-2'
......@@ -368,6 +366,7 @@ export default {
this.form.screenTime = dayjs(selectedValues).format('YYYY-MM-DD HH:00:00')
this.startTime = dayjs(selectedValues).format('YYYY-MM-DD HH:00:00')
this.showTime1 = false
console.log(this.form)
},
toShowTem(val) {
this.citeInfo = val
......
......@@ -48,7 +48,7 @@
</van-popup>
</div>
<div v-if='form.contentSelectName' class='mt-2'>
<div class='mt-2'>
<van-button type='primary' plain class='w-full' @click='choiceTel' size='small'>选择内容</van-button>
</div>
......
......@@ -59,6 +59,7 @@ import {
import GeneralFUForm from '@/doctor/followUp/generalFU/form/GeneralFUForm'
import CommonBottom from '@/doctor/followUp/generalFU/form/CommonBottom'
import { useStore } from '@/doctor/store'
const getModeEnum = (patientInfo = {}) => {
return {
mode1: [
......@@ -166,7 +167,7 @@ export default {
}
} else {
const res = await getChronicResidentsId(this.routerDetail.residentInfoId)
const weixinInfo = await getResidentWX({residentInfoId: this.routerDetail.residentInfoId})
const weixinInfo = await getResidentWX({ residentInfoId: this.routerDetail.residentInfoId })
const {
id,
createDate,
......
<template>
<div class="flex flex-col" style="height: 100vh">
<DocNavBar title="专病随访详情"></DocNavBar>
<HypertensionDetail v-if="diseaseType === '1'" :visitInfo="info"></HypertensionDetail>
<DiabetesDetail v-if="diseaseType === '2'" :visitInfo="info"></DiabetesDetail>
<CoronaryHeartDiseaseDetail v-if="diseaseType === '3'" :visitInfo="info"></CoronaryHeartDiseaseDetail>
<StrokeDetail v-if="diseaseType === '4'" :visitInfo="info"></StrokeDetail>
<CopdDetail v-if="diseaseType === '5'" :visitInfo="info"></CopdDetail>
<ChronicKidneyDiseaseDetail v-if="diseaseType === '6'" :visitInfo="info"></ChronicKidneyDiseaseDetail>
<DyslipidemiaDetail v-if="diseaseType === '7'" :visitInfo="info"></DyslipidemiaDetail>
</div>
</template>
<script>
import { getSeparateFUDetail } from '@/api/doctor/separateFU'
import DocNavBar from '@/doctor/components/docNavBar/DocNavBar.vue'
import HypertensionDetail from './components/HypertensionDetail.vue'
import DiabetesDetail from './components/DiabetesDetail.vue'
import CoronaryHeartDiseaseDetail from './components/CoronaryHeartDiseaseDetail.vue'
import StrokeDetail from './components/StrokeDetail.vue'
import CopdDetail from './components/CopdDetail.vue'
import ChronicKidneyDiseaseDetail from './components/ChronicKidneyDiseaseDetail.vue'
import DyslipidemiaDetail from './components/DyslipidemiaDetail.vue'
export default {
components: { DocNavBar, HypertensionDetail, DiabetesDetail, CoronaryHeartDiseaseDetail, StrokeDetail, CopdDetail, ChronicKidneyDiseaseDetail, DyslipidemiaDetail },
props: {
relationId: String
},
data() {
return {
info: {}
}
},
computed: {
diseaseType() {
return this.$route.query.diseaseType
}
},
created() {
this.load()
},
methods: {
load() {
if (!this.relationId) {
this.$message.info('未获取到信息')
return
}
let params = {
id: this.relationId,
diseaseType: this.diseaseType
}
getSeparateFUDetail(params).then(res => {
console.log(666, res)
let result = res.data || {}
this.info = result
})
}
}
}
</script>
\ No newline at end of file
......@@ -3,15 +3,23 @@
<HypertensionForm v-if="diseaseInfo.diseaseType === 1" ref="hypertensionForm"></HypertensionForm>
<DiabetesForm v-if="diseaseInfo.diseaseType === 2" ref="diabetesForm"></DiabetesForm>
<CoronaryHeartDiseaseForm v-if="diseaseInfo.diseaseType === 3" ref="coronaryHeartDiseaseForm"></CoronaryHeartDiseaseForm>
<StrokeForm v-if="diseaseInfo.diseaseType === 4" ref="strokeForm"></StrokeForm>
<CopdForm v-if="diseaseInfo.diseaseType === 5" ref="copdForm"></CopdForm>
<ChronicKidneyDiseaseForm v-if="diseaseInfo.diseaseType === 6" ref="chronicKidneyDiseaseForm"></ChronicKidneyDiseaseForm>
<DyslipidemiaForm v-if="diseaseInfo.diseaseType === 7" ref="dyslipidemiaForm"></DyslipidemiaForm>
</div>
</template>
<script>
import HypertensionForm from './components/HypertensionForm.vue'
import DiabetesForm from './components/DiabetesForm.vue'
import CoronaryHeartDiseaseForm from './components/CoronaryHeartDiseaseForm.vue'
import { addHypertensionForm, addDiabetesForm, addCoronaryHeartDiseaseForm } from '@/api/doctor/separateFU'
import StrokeForm from './components/StrokeForm.vue'
import CopdForm from './components/CopdForm.vue'
import ChronicKidneyDiseaseForm from './components/ChronicKidneyDiseaseForm.vue'
import DyslipidemiaForm from './components/DyslipidemiaForm.vue'
import { addHypertensionForm, addDiabetesForm, addCoronaryHeartDiseaseForm, addStrokeForm, addCopdForm, addChronicKidneyDiseaseForm, addDyslipidemiaForm } from '@/api/doctor/separateFU'
export default {
components: { HypertensionForm, DiabetesForm, CoronaryHeartDiseaseForm },
components: { HypertensionForm, DiabetesForm, CoronaryHeartDiseaseForm, StrokeForm, CopdForm, ChronicKidneyDiseaseForm, DyslipidemiaForm },
props: {
baseInfo: {
type: Object,
......@@ -58,6 +66,30 @@ export default {
...form,
...coronaryHeartDiseaseForm
}, true)
} else if (this.diseaseInfo.diseaseType === 4) {
const strokeForm = await this.$refs.strokeForm.submit()
return await addStrokeForm({
...form,
...strokeForm
}, true)
} else if (this.diseaseInfo.diseaseType === 5) {
const copdForm = await this.$refs.copdForm.submit()
return await addCopdForm({
...form,
...copdForm
}, true)
} else if (this.diseaseInfo.diseaseType === 6) {
const chronicKidneyDiseaseForm = await this.$refs.chronicKidneyDiseaseForm.submit()
return await addChronicKidneyDiseaseForm({
...form,
...chronicKidneyDiseaseForm
}, true)
} else if (this.diseaseInfo.diseaseType === 7) {
const dyslipidemiaForm = await this.$refs.dyslipidemiaForm.submit()
return await addDyslipidemiaForm({
...form,
...dyslipidemiaForm
}, true)
}
}
}
......
This diff is collapsed.
This diff is collapsed.
<template>
<div class="h-full disease-visit" ref="list">
<div class='h-full disease-visit' ref='list'>
<van-pull-refresh v-model='loadingRefresh' @refresh='onRefresh'
:disabled='isRefreshDisable' style="min-height: 100%">
:disabled='isRefreshDisable' style='min-height: 100%'>
<van-list
v-model:loading='loading'
:finished='finished'
......@@ -9,53 +9,56 @@
:immediate-check='false'
@load='onMore'
>
<div class="flex flex-col">
<div class="flex flex-col gap-y-2.5 py-3 px-4 mb-3 doc-list-card"
v-for='item in list' :key="item.id" @click="toDetail(item)">
<div class='flex flex-col'>
<div class='flex flex-col gap-y-2.5 py-3 px-4 mb-3 doc-list-card'
v-for='item in list' :key='item.id' @click='toDetail(item)'>
<div>
<span class="label">服务类型</span>
<span class='label'>服务类型</span>
<span>{{ item.serveTypeName || '-' }}</span>
</div>
<div>
<span class="label">随访日期</span>
<span class='label'>随访日期</span>
<span>{{ item.serveDate }}</span>
</div>
<div>
<span class="label">随访分类</span>
<span class='label'>随访分类</span>
<span>{{ item.visitTypeName || '-' }}</span>
</div>
<div v-if="item.patientNo">
<span class="label">就诊号</span>
<div v-if='item.patientNo'>
<span class='label'>就诊号</span>
<span>{{ item.patientNo || '-' }}</span>
</div>
<div class="text-ellipsis" v-if="item.diagnose">
<span class="label">诊断</span>
<div class='text-ellipsis' v-if='item.diagnose'>
<span class='label'>诊断</span>
<span>{{ item.diagnose || '-' }}</span>
</div>
<div v-if="item.bloodPressure">
<span class="label">血压</span>
<div v-if='item.bloodPressure'>
<span class='label'>血压</span>
<span>{{ item.bloodPressure || '-' }}</span>
</div>
<div>
<span class="label">数据来源</span>
<span class='label'>数据来源</span>
<span>{{ item.sourceName || '-' }}</span>
</div>
<div>
<span class="label">随访医生</span>
<span class='label'>随访医生</span>
<span>{{ item.serveDoctorName || '-' }}</span>
</div>
<div class="text-ellipsis">
<span class="label">随访机构</span>
<div class='text-ellipsis'>
<span class='label'>随访机构</span>
<span>{{ item.serveUnitName || '-' }}</span>
</div>
<div class="divider"></div>
<div class="bt-group">
<van-button round size="small" class="doc-btn-primary" @click="toDetail(item)">详情</van-button>
<!-- <van-button round size="small" class="doc-btn-primary" v-if="item.allowUpdate == 1">转诊</van-button>-->
<van-button round size="small" class="doc-btn-primary" @click='editBtn(item)'
v-if="!(item.allowUpdate !==1 || item.serveType == 5)">修改</van-button>
<van-button round size="small" class="doc-btn-red" @click="delBtn(item)"
v-if="!(item.allowUpdate !==1 || item.serveType == 5)">删除</van-button>
<div class='divider'></div>
<div class='bt-group'>
<van-button round size='small' class='doc-btn-primary' @click='toDetail(item)'>详情
</van-button>
<!-- <van-button round size="small" class="doc-btn-primary" v-if="item.allowUpdate == 1">转诊</van-button>-->
<van-button round size='small' class='doc-btn-primary' @click='editBtn(item)'
v-if='!(item.allowUpdate !==1 || item.serveType == 5)'>修改
</van-button>
<van-button round size='small' class='doc-btn-red' @click='delBtn(item)'
v-if='!(item.allowUpdate !==1 || item.serveType == 5)'>删除
</van-button>
</div>
</div>
</div>
......@@ -117,12 +120,12 @@ export default {
// pageIndex: this.pagination.pageIndex,
// pageSize: this.pagination.pageSize,
residentInfoId: this.residentInfoId,
diseaseType: this.diseaseType,
diseaseType: this.diseaseType
}
getVisitManageList(query, loading).then(res => {
if (this.pagination.pageIndex === 1) {
this.list = []
}
}
this.list = this.list.concat(res.data || [])
this.pagination.total = res.data.total || 0
this.finished = this.list.length >= this.pagination.total
......@@ -148,8 +151,19 @@ export default {
//数据来源为his时展示 `请在医生PC端查看详情`
showConfirmDialog({
message: '请在医生PC端查看详情'
}).then(() => {}).catch((err) => {})
}).then(() => {
}).catch((err) => {
})
} else if (record.source == 4) {
// 判断是否显示公卫随访
this.$router.push({
path: `/systemIframe/doctorGWDetail`,
query: {
src: `https://www.baidu.com/`,
pageTitle: `公卫详情`
}
})
} else {
//随访详情
this.$router.push({
......@@ -157,7 +171,7 @@ export default {
query: {
relationUuid: record.relationUuid,
residentInfoId: this.residentInfoId,
diseaseType: this.diseaseType,
diseaseType: this.diseaseType
}
})
}
......@@ -181,6 +195,6 @@ export default {
}
</script>
<style lang="less" scoped>
<style lang='less' scoped>
</style>
......@@ -2,7 +2,7 @@ import { createRouter, createWebHashHistory } from 'vue-router'
const doctorIframeConfig = {
component: () => import(/* webpackChunkName: "iframe-page" */'@/components/iframePage/IframePage.vue'),
props: route => ({ src: route.query.src })
props: route => ({ src: route.query.src, pageTitle: route.query.pageTitle })
}
const routes = [
......
......@@ -227,7 +227,7 @@ export function callMobile(handlerInterface, parameters) {
}
}
// 判断ios还是安卓
// 判断是否是ios
export function isIOSWebKit() {
const aa = window.navigator.userAgent;
if (!!aa.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {// ios端
......
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