| | |
| | | </el-icon> <span> 服务套餐</span> |
| | | </div> |
| | | <div> |
| | | 基础服务100套餐 |
| | | 膳食套餐, |
| | | 体检套餐, |
| | | <el-form :inline="true" class="demo-form-inline"> |
| | | <el-form-item label="基础服务:"> |
| | | <el-radio-group class="elradiozdi" :disabled="state.formdispl" v-model="state.taochan.基础服务"> |
| | | <el-radio value="是">是</el-radio> |
| | | <el-radio value="否">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="自购套餐:" > |
| | | <el-row> |
| | | <el-col :span='12'> |
| | | <el-input v-model="state.taochan.自购几月" :disabled="state.formdispl" placeholder="购买多少个月"> |
| | | <template #append>月</template> |
| | | </el-input> |
| | | </el-col> |
| | | <el-col :span='12'> |
| | | <el-input v-model="state.taochan.多少元套餐" :disabled="state.formdispl" placeholder="套餐金额"> |
| | | <template #append>元</template> |
| | | </el-input> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | <el-form-item label="自购产品名称"> |
| | | <el-row> |
| | | <el-col :span='12'> |
| | | <el-input v-model="state.taochan.产品名称" :disabled="state.formdispl" placeholder="产品名称"></el-input> |
| | | </el-col> |
| | | <el-col :span='12'> |
| | | <el-input v-model="state.taochan.自购多少盒" :disabled="state.formdispl" placeholder="数量"> |
| | | <template #append>盒</template> |
| | | </el-input> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="state.formdispl" type="primary" :icon="Edit" @click="state.formdispl=false">编辑</el-button> |
| | | <el-button v-else type="success" :icon="Check" @click="onSubmitTC" >保存</el-button> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | |
| | | </div> |
| | | </el-card> |
| | | <el-card class="box-card" style="margin-top:10px;"> |
| | |
| | | </el-icon> |
| | | </span> |
| | | </td> |
| | | <td>干体重:<span>{{ state.patientData.干体重 }} (kg)</span></td> |
| | | <td>干体重:<span>{{ state.patientData.干体重 }} (kg)</span> |
| | | <el-icon :size="14" color="#409EFF" @click="state.gtzshow=true"> |
| | | <Calendar /> |
| | | </el-icon> |
| | | </td> |
| | | |
| | | |
| | | </tr> |
| | |
| | | <tr> |
| | | <td colspan="5">患者诊断:{{ state.patientData.诊断 }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="5">外院出院诊断:{{ state.patientData.出院诊断 }} |
| | | <span> |
| | | <el-icon :size="14" color="#409EFF" @click="updateZD"> |
| | | <Edit /> |
| | | </el-icon> |
| | | </span> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-card> |
| | |
| | | <CreditCard /> |
| | | </el-icon> <span> 最新生化数据</span> |
| | | </div> |
| | | <div> |
| | | <el-row :gutter="10" v-if="state.listData.length"> |
| | | <el-col :xs="8" :sm="8" :md="6" :lg="6" :xl="4" v-for="(item, key) in state.listData" |
| | | :key="key"> |
| | | <div class="itemLis" v-if="item?.item_result"> |
| | | <div class="title"> |
| | | {{ key }} |
| | | </div> |
| | | <div class="itemRes"> |
| | | <div class="itemResDtile"> |
| | | <div style="text-align: center;width: 100%;"> |
| | | {{ item?.item_name }} |
| | | </div> |
| | | <div> |
| | | {{ item?.item_result }}<span class="tdate">{{ item?.item_result_unit |
| | | }}</span> |
| | | <el-scrollbar :height="(tableHeight-520)+'px'"> |
| | | <div> |
| | | <el-row :gutter="10" v-if="state.listData.length"> |
| | | <el-col :xs="8" :sm="8" :md="6" :lg="6" :xl="4" v-for="(item, key) in state.listData" |
| | | :key="key"> |
| | | <div class="itemLis" v-if="item?.item_result"> |
| | | <div class="title"> |
| | | {{ key }} |
| | | </div> |
| | | <div class="itemRes"> |
| | | <div class="itemResDtile"> |
| | | <div style="text-align: center;width: 100%;"> |
| | | {{ item?.item_name }} |
| | | </div> |
| | | <div> |
| | | {{ item?.item_result }}<span class="tdate">{{ item?.item_result_unit |
| | | }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="tdate"> |
| | | {{ item?.sample_date_str }} |
| | | <div class="tdate"> |
| | | {{ item?.sample_date_str }} |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-scrollbar> |
| | | </el-card> |
| | | |
| | | </div> |
| | | <el-empty v-else description="无数据,请先选择患者"></el-empty> |
| | | <el-dialog v-model="state.gtzshow" title="干体重历史调整记录" width="800px"> |
| | | <el-table :data="state.gtztableData" height="300" > |
| | | <el-table-column align="center" prop="createTime" label="时间" width="180" /> |
| | | <el-table-column align="center" prop="pureWeight" label="干体重" /> |
| | | <el-table-column align="center" label="启用时间"> |
| | | <template #default="scope"> |
| | | <span v-if="scope.row.enableRecordTime">{{scope.row.enableRecordTime.substring(0,11)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="remark" label="备注" /> |
| | | |
| | | </el-table> |
| | | </el-dialog> |
| | | </div> |
| | | |
| | | </template> |
| | |
| | | import { usePatientsInfo } from '/@/stores/patientsInfo'; |
| | | import { useUserInfo } from '/@/stores/userInfo'; |
| | | import { computed, onMounted, reactive } from 'vue'; |
| | | import { getPatData, getLisResults,update } from '/@/api/Patients'; |
| | | import { getPatData, getLisResults, update ,updateNurtion,listNurtion,AddNurtion,getDryWeightList} from '/@/api/Patients'; |
| | | import { userInfo } from 'os'; |
| | | import { Search } from '@element-plus/icons-vue' |
| | | import { Search ,Edit,Check} from '@element-plus/icons-vue' |
| | | import dayjs from 'dayjs'; |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | |
| | | import { number } from 'echarts'; |
| | | import { rowKey } from 'element-plus/es/components/table-v2/src/common'; |
| | | const storesPat = usePatientsInfo(); |
| | | const stores = useUserInfo(); |
| | | |
| | |
| | | const { userInfos } = storeToRefs(stores); |
| | | const props = defineProps(['tableHeight']) |
| | | const state = reactive({ |
| | | |
| | | gtztableData:[], |
| | | gtzshow:false, |
| | | formdispl:true,// 表单是否编辑 |
| | | // 患者套餐表 |
| | | taochanId:0, |
| | | taochan: { |
| | | 基础服务: '', |
| | | 自购几月: '', |
| | | 多少元套餐: '', |
| | | 自购多少盒: '', |
| | | 产品名称: '' |
| | | }, |
| | | tableData: [], |
| | | loading: false, |
| | | patientData: { |
| | |
| | | 证件号: "", |
| | | 诊断: '', |
| | | 身高: '', |
| | | 上一次透前体重: '' |
| | | 上一次透前体重: '', |
| | | 出院诊断:'', |
| | | }, |
| | | listData: <any>{} |
| | | }) |
| | | const tableHe = computed(() => { |
| | | return props.tableHeight - 130 |
| | | }) |
| | | const onSubmitTC=()=>{ |
| | | const data={ |
| | | id:state.taochanId, |
| | | patient_code:patientsInfo.value.code, |
| | | plan_json_body:JSON.stringify(state.taochan) |
| | | } |
| | | if(state.taochanId){ |
| | | state.loading = true |
| | | updateNurtion(data).then(re=>{ |
| | | getlistNurtion() |
| | | }).finally(()=>{ |
| | | state.formdispl=true |
| | | state.loading = false |
| | | }) |
| | | }else{ |
| | | state.loading = true |
| | | AddNurtion(data).then(re=>{ |
| | | getlistNurtion() |
| | | }).finally(()=>{ |
| | | state.formdispl=true |
| | | state.loading = false |
| | | }) |
| | | } |
| | | } |
| | | const updateZD=()=>{ |
| | | ElMessageBox.prompt('请输入你要编辑的外院出院诊断', '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | inputValue: state.patientData.出院诊断, |
| | | }) |
| | | .then(({ value }) => { |
| | | const params = { |
| | | id: patientsInfo.value.id, |
| | | outDiagnoseFromPrevHospital: value |
| | | } |
| | | update(params).then(re => { |
| | | getPatData({ patCode: patientsInfo.value.code, }).then(res => { |
| | | state.patientData = res.data |
| | | }) |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '取消修改', |
| | | }) |
| | | }) |
| | | } |
| | | /**打开修改身高 */ |
| | | const updateSg = () => { |
| | | ElMessageBox.prompt('请输入你要修改的身高单位cm', '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | inputValue:state.patientData.身高, |
| | | inputValue: state.patientData.身高, |
| | | }) |
| | | .then(({ value }) => { |
| | | const params={ |
| | | id:patientsInfo.value.id, |
| | | patientHeight:value |
| | | const params = { |
| | | id: patientsInfo.value.id, |
| | | patientHeight: value |
| | | } |
| | | update(params).then(re=>{ |
| | | getPatData({ patCode: patientsInfo.value.code,}).then(res=>{ |
| | | update(params).then(re => { |
| | | getPatData({ patCode: patientsInfo.value.code, }).then(res => { |
| | | state.patientData = res.data |
| | | }) |
| | | }) |
| | |
| | | |
| | | const BMI = computed(() => { |
| | | if (state.patientData.干体重 && state.patientData.身高) { |
| | | return (Number(state.patientData.干体重) / (Number(state.patientData.身高)/100 * Number(state.patientData.身高)/100)).toFixed(2) |
| | | return (Number(state.patientData.干体重) / (Number(state.patientData.身高) / 100 * Number(state.patientData.身高) / 100)).toFixed(2) |
| | | } else { |
| | | return '' |
| | | } |
| | |
| | | date1: dayjs().add(-30, 'day').format('YYYY-MM-DD'), |
| | | date2: dayjs().format('YYYY-MM-DD'), |
| | | } |
| | | const pas3={ |
| | | page: 0, |
| | | size: 0, |
| | | wherecondition:`patient_code='${patientsInfo.value.code}'`, |
| | | } |
| | | try { |
| | | state.loading = true |
| | | const [res1, res2] = await Promise.all([ |
| | | getGtzList() |
| | | const [res1, res2,res3] = await Promise.all([ |
| | | getPatData(pam), |
| | | getLisResults(pam2) |
| | | getLisResults(pam2), |
| | | listNurtion(pas3) |
| | | ]) |
| | | state.patientData = res1.data |
| | | state.listData = res2.data |
| | | if(res3.data?.list.length>=1){ |
| | | const row=res3.data.list[0] |
| | | console.log('taochanshuju----',row) |
| | | state.taochanId=row.id |
| | | state.taochan=JSON.parse(row.planJsonBody) |
| | | }else{ |
| | | state.taochanId=0 |
| | | state.taochan={ |
| | | 基础服务: '', |
| | | 自购几月: '', |
| | | 多少元套餐: '', |
| | | 自购多少盒: '', |
| | | 产品名称: '' |
| | | } |
| | | } |
| | | console.log('lis数据', state.listData) |
| | | state.loading = false |
| | | } |
| | |
| | | } |
| | | |
| | | } |
| | | const getGtzList=()=>{ |
| | | var data = { |
| | | wherecondition: `patient_code = '${patientsInfo.value.code}'`, |
| | | ordercondition: 'create_time desc' |
| | | } |
| | | getDryWeightList(data).then((res:any) => { |
| | | state.gtztableData = res.data.list |
| | | }).finally(()=>{ |
| | | |
| | | }) |
| | | } |
| | | // 刷新套餐 |
| | | const getlistNurtion=()=>{ |
| | | const pas3={ |
| | | page: 0, |
| | | size: 0, |
| | | wherecondition:`patient_code='${patientsInfo.value.code}'`, |
| | | } |
| | | listNurtion(pas3).then(res3=>{ |
| | | if(res3.data.list&&res3.data.list>=1){ |
| | | const row=res3.data.list[0] |
| | | state.taochanId=row.id |
| | | state.taochan=JSON.parse(row.planJsonBody) |
| | | }else{ |
| | | state.taochanId=0 |
| | | } |
| | | }) |
| | | } |
| | | onMounted(() => { |
| | | // console.log(dayjs().add(-7, 'day').format('YYYY-MM-DD'),'---shan') |
| | | }) |