Browse Source

20250309

master
nicky 4 months ago
parent
commit
a0ca1ca921
  1. 60
      src/config/code.js
  2. 30
      src/views/Patient/components/patient-create.vue
  3. 32
      src/views/Patient/components/patient-detail.vue
  4. 18
      src/views/ing/Adverse.vue
  5. 19
      src/views/thrombolysis/components/throm-before1.vue
  6. 102
      src/views/thrombolysis/components/throm-before4.vue
  7. 2
      src/views/thrombolysis/components/throm-ing-min.vue
  8. 7
      src/views/thrombolysis/components/throm-ing-reactions.vue
  9. 2
      src/views/thrombolysis/components/throm-ing-record.vue
  10. 93
      src/views/thrombolysis/components/throm-interfere-informed.vue
  11. 59
      src/views/thrombolysis/components/throm-report.vue
  12. 44
      src/views/thrombolysis/components/throm-result-baseInfo.vue
  13. 83
      src/views/thrombolysis/components/throm-result-firstInfo.vue

60
src/config/code.js

@ -23,26 +23,6 @@ export const MEDICAL_CODE = {
醒后卒中: '醒后卒中', 醒后卒中: '醒后卒中',
}, },
}, },
'JBXX-ISRS': {
// 是否溶栓
text: '是否溶栓',
type: 'radio',
default: '是',
range: {
: '是',
: '否',
},
},
'JBXX-ISJR': {
// 是否介入
text: '是否介入',
type: 'radio',
default: '是',
range: {
: '是',
: '否',
},
},
'JBXX-FBSJ': { 'JBXX-FBSJ': {
text: '发病时间', text: '发病时间',
type: 'datetime', type: 'datetime',
@ -53,6 +33,26 @@ export const MEDICAL_CODE = {
value: '已知', value: '已知',
}, },
}, },
// 'JBXX-ISRS': {
// // 是否溶栓
// text: '是否溶栓',
// type: 'radio',
// default: '是',
// range: {
// 是: '是',
// 否: '否',
// },
// },
// 'JBXX-ISJR': {
// // 是否介入
// text: '是否介入',
// type: 'radio',
// default: '是',
// range: {
// 是: '是',
// 否: '否',
// },
// },
'JBXX-ZHZC-TIME': { 'JBXX-ZHZC-TIME': {
text: '最后正常时间', text: '最后正常时间',
type: 'datetime', type: 'datetime',
@ -489,19 +489,19 @@ export const EMERGENCY_CODE = {
text: 'mRS评分', text: 'mRS评分',
description: '', description: '',
type: 'radio', type: 'radio',
default: '', default: 0,
labelList: MRS_LIST, labelList: MRS_LIST,
range: ['0', '1', '2', '3', '4', '5'], range: ['0', '1', '2', '3', '4', '5'],
}, },
// 'RYPG-NIHSS': { 'RYPG-NIHSS': {
// text: 'NIHSS评分', text: 'NIHSS评分',
// description: '', description: '',
// type: 'pageText', type: 'pageText',
// inputType: 'number', inputType: 'number',
// rightArrow: true, rightArrow: true,
// default: '', default: 0,
// range: NIHSS_LIST, range: NIHSS_LIST,
// }, },
}; };
//0min //0min
export const EMERGENCY_Q_CODE = { export const EMERGENCY_Q_CODE = {

30
src/views/Patient/components/patient-create.vue

@ -1,7 +1,7 @@
<template> <template>
<a-modal class="patient-form" :width="630" :maskClosable="false" :confirmLoading="confirmLoading" :closable="false" <a-modal class="patient-create-form" :width="630" :maskClosable="false" :confirmLoading="confirmLoading" :closable="false"
:destroyOnClose="true" v-model="createVisible" :title="title" @ok="handleSubmit" :footer="null"> :destroyOnClose="true" v-model="createVisible" :title="title" @ok="handleSubmit" :footer="null">
<a-form-model ref="form" :model="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }" labelAlign="left" <a-form-model ref="form" :model="form" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" labelAlign="left"
class="create-form" :rules="rules"> class="create-form" :rules="rules">
<a-row :gutter="20"> <a-row :gutter="20">
<a-col :span="12"> <a-col :span="12">
@ -37,7 +37,7 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-form-model-item label="身份证号" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" <a-form-model-item label="身份证号" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
placeholder="请输入身份证号"> placeholder="请输入身份证号">
<keyboard placeHolder="请输入身份证号" :index-num="indexNum" @keyboard-input="handleKeyBoard" <keyboard placeHolder="请输入身份证号" :index-num="indexNum" @keyboard-input="handleKeyBoard"
:old-value="idcard" /> :old-value="idcard" />
@ -48,7 +48,7 @@
<a-button type="primary" class="idcard" @click="openCamera">扫描身份证</a-button> <a-button type="primary" class="idcard" @click="openCamera">扫描身份证</a-button>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-form-model-item label="联系方式" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" <a-form-model-item label="联系方式" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
placeholder="请输入联系方式"> placeholder="请输入联系方式">
<a-input v-model="form.contract" placeholder="请输入联系方式" /> <a-input v-model="form.contract" placeholder="请输入联系方式" />
</a-form-model-item> </a-form-model-item>
@ -57,7 +57,7 @@
<a-divider /> <a-divider />
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="急救类型" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"> <a-form-model-item label="急救类型" :label-col="{ span: 10 }" :wrapper-col="{ span: 14 }">
<a-select v-model="form.type" placeholder="请选择类型"> <a-select v-model="form.type" placeholder="请选择类型">
<a-select-option :value="0">卒中急救</a-select-option> <a-select-option :value="0">卒中急救</a-select-option>
<a-select-option :value="1">胸痛</a-select-option> <a-select-option :value="1">胸痛</a-select-option>
@ -79,7 +79,7 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-form-model-item label="绿道状态" :label-col="{ span: 5 }" :wrapper-col="{ span: 18 }"> <a-form-model-item label="绿道状态" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
<a-switch v-model="form.greenRoadFlag" /> <a-switch v-model="form.greenRoadFlag" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
@ -365,7 +365,7 @@
}; };
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.patient-form { .patient-create-form {
.create-form { .create-form {
padding: 0 .6rem 1rem .6rem; padding: 0 .6rem 1rem .6rem;
@ -417,7 +417,7 @@
} }
</style> </style>
<style lang="less"> <style lang="less">
.patient-form { .patient-create-form {
.ant-modal-body { .ant-modal-body {
padding-top: 0; padding-top: 0;
} }
@ -428,15 +428,21 @@
.ant-modal-header { .ant-modal-header {
border-bottom: none; border-bottom: none;
padding-top: 2rem; padding-top: 20px;
.ant-modal-title { .ant-modal-title {
font-size: 2rem; font-size: 24px;
font-weight: bold; font-weight: bold;
font-family: Source Han Sans CN, Source Han Sans CN-Medium; font-family: Source Han Sans CN, Source Han Sans CN-Medium;
text-align: left; text-align: left;
color: #393d4e; color: #fff;
padding: 10px 0; // padding: 10px 0;
}
}
.ant-form-item {
.ant-form-item-label > label::after{
content: ':';
} }
} }

32
src/views/Patient/components/patient-detail.vue

@ -43,18 +43,18 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="身高"> <a-form-model-item label="身高">
<a-input v-model="form.height" placeholder="请输入身高 (cm)" v-if="authEdit" /> <a-input v-model="form.height" placeholder="请输入身高 (cm)" @change="bmiChange($event, 'height')" v-if="authEdit" />
<div v-else class="edititem"> {{patientDataCur.height}} </div> <div v-else class="edititem"> {{patientDataCur.height}} </div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="体重"> <a-form-model-item label="体重">
<a-input v-model="form.weight" placeholder="请输入体重 (kg)" v-if="authEdit" /> <a-input v-model="form.weight" placeholder="请输入体重 (kg)" @change="bmiChange($event, 'weight')" v-if="authEdit" />
<div v-else class="edititem"> {{patientDataCur.weight}} </div> <div v-else class="edititem"> {{patientDataCur.weight}} </div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-form-model-item label="身份证号" :label-col="{ span: 5 }" :wrapper-col="{ span: 19 }" <a-form-model-item label="身份证号" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }"
placeholder="请输入身份证号"> placeholder="请输入身份证号">
<keyboard placeHolder="" :index-num="indexNum" @keyboard-input="handleKeyBoard" <keyboard placeHolder="" :index-num="indexNum" @keyboard-input="handleKeyBoard"
:old-value="form.patientIdCardNo" v-if="authEdit" /> :old-value="form.patientIdCardNo" v-if="authEdit" />
@ -67,7 +67,7 @@
<a-button type="primary" class="idcard" @click="openCamera">扫描身份证</a-button> <a-button type="primary" class="idcard" @click="openCamera">扫描身份证</a-button>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-form-model-item label="联系方式" :label-col="{ span: 5 }" :wrapper-col="{ span: 19 }" <a-form-model-item label="联系方式" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }"
placeholder="请输入联系方式"> placeholder="请输入联系方式">
<a-input v-model="form.contract" placeholder="请输入联系方式" v-if="authEdit" /> <a-input v-model="form.contract" placeholder="请输入联系方式" v-if="authEdit" />
<div v-else class="edititem">{{patientDataCur.contract}}</div> <div v-else class="edititem">{{patientDataCur.contract}}</div>
@ -77,7 +77,7 @@
<a-divider /> <a-divider />
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="急救类型" :label-col="{ span: 7 }" :wrapper-col="{ span: 16 }"> <a-form-model-item label="急救类型" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
<a-select v-model="form.type" placeholder="请选择类型" v-if="authEdit"> <a-select v-model="form.type" placeholder="请选择类型" v-if="authEdit">
<a-select-option :value="0">卒中急救</a-select-option> <a-select-option :value="0">卒中急救</a-select-option>
<a-select-option :value="1">胸痛</a-select-option> <a-select-option :value="1">胸痛</a-select-option>
@ -105,14 +105,15 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="绿道状态" :label-col="{ span: 7 }" :wrapper-col="{ span: 16 }"> <a-form-model-item label="绿道状态" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
<a-switch v-model="form.greenRoadFlag" v-if="authEdit" /> <a-switch v-model="form.greenRoadFlag" v-if="authEdit" />
<div v-else class="edititem">{{patientDataCur.greenRoadFlag}}</div> <div v-else class="edititem">{{patientDataCur.greenRoadFlag}}</div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12" v-if="!authEdit"> <a-col :span="12" >
<a-form-model-item label="BMI"> <a-form-model-item label="BMI">
<div class="edititem">{{patientDataCur.BMI}}</div> <div class="edititem" v-if="authEdit">{{form.BMI}}</div>
<div class="edititem" v-else>{{patientDataCur.BMI}}</div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
@ -203,6 +204,13 @@
'setVideo', 'setVideo',
'setBook', 'setBook',
]), ]),
bmiChange(e, filed){
if(this.form.height && this.form.weight){
const bmi = this.utils.computeBMI(this.form.weight, this.form.height)
// console.log(this.form.height, this.form.weight, bmi)
if(!isNaN(bmi)) this.form.BMI = bmi
}
},
goPatientList() { goPatientList() {
this.$emit('change', 'patient-list') this.$emit('change', 'patient-list')
}, },
@ -476,11 +484,14 @@
.ant-form-item { .ant-form-item {
margin-bottom: .5rem; margin-bottom: .5rem;
.ant-form-item-label > label::after{
content: ':';
}
.ant-form-item-label { .ant-form-item-label {
label { label {
// font-size: 0.75rem; // font-size: 0.75rem;
} }
} }
.ant-input { .ant-input {
@ -546,8 +557,9 @@
} }
.edititem { .edititem {
font-size: 16px;
color: #000; color: #000;
font-weight: 600; // font-weight: 600;
} }
} }
</style> </style>

18
src/views/ing/Adverse.vue

@ -8,7 +8,7 @@
<template> <template>
<div class="Adverse-container" :class="getStyle.container"> <div class="Adverse-container" :class="getStyle.container">
<div class="adverse-content"> <div class="adverse-content">
<div class="adverse-add" v-if="!writeAble" @click="pushAdverse"> <div class="adverse-add" v-if="!writeAble && editAuth" @click="pushAdverse">
<a-icon class="icon" type="plus-circle" theme="filled" /> <a-icon class="icon" type="plus-circle" theme="filled" />
</div> </div>
<a-form class="patient-form medical-form" :form="form"> <a-form class="patient-form medical-form" :form="form">
@ -23,19 +23,19 @@
</div> </div>
<div class="content-right" :style="getStyle.content"> <div class="content-right" :style="getStyle.content">
<!-- checkbox --> <!-- checkbox -->
<a-checkbox-group :disabled="writeAble" :class="getStyle.class" <a-checkbox-group :disabled="writeAble || !editAuth" :class="getStyle.class"
v-if="k.type === 'checkbox'" :options="k.range" v-model="k.value" v-if="k.type === 'checkbox'" :options="k.range" v-model="k.value"
@change="changeCheckbox($event, k.code, index)" /> @change="changeCheckbox($event, k.code, index)" />
<!-- datetime --> <!-- datetime -->
<a-input :disabled="writeAble" :style="getStyle.input" v-if="k.type==='datetime'" <a-input :disabled="writeAble || !editAuth" :style="getStyle.input" v-if="k.type==='datetime'"
readOnly @click="selectOption(k.code,index)" v-model="k.value" placeholder="请选择" /> readOnly @click="selectOption(k.code,index)" v-model="k.value" placeholder="请选择" />
<!-- input --> <!-- input -->
<a-input :disabled="writeAble" :style="getStyle.input" v-if="k.type==='input'" <a-input :disabled="writeAble || !editAuth" :style="getStyle.input" v-if="k.type==='input'"
v-model="k.value" placeholder="请输入" /> v-model="k.value" placeholder="请输入" />
</div> </div>
</div> </div>
</a-form-item> </a-form-item>
<div class="adverse-add del" v-if="index && !writeAble" @click="delAdverse(index)"> <div class="adverse-add del" v-if="index && (!writeAble && editAuth)" @click="delAdverse(index)">
<a-icon class="icon" type="minus-circle" theme="filled" /> <a-icon class="icon" type="minus-circle" theme="filled" />
</div> </div>
</div> </div>
@ -47,7 +47,7 @@
@cancel="adversePickerVisable = false" @confirm="onAdverseConfirm" /> @cancel="adversePickerVisable = false" @confirm="onAdverseConfirm" />
</div> </div>
<div v-if="source !== 'first'"> <div v-if="source !== 'first'">
<a-button :disabled="writeAble" class="common-button" style="margin-right: 20px;" type="primary" <a-button :disabled="writeAble || !editAuth" class="common-button" style="margin-right: 20px;" type="primary"
size="large" shape="round" @click="onAdverseSubmit">保存</a-button> size="large" shape="round" @click="onAdverseSubmit">保存</a-button>
<a-button class="common-button" disabled type="primary" size="large" shape="round" <a-button class="common-button" disabled type="primary" size="large" shape="round"
@click="onAdverseSubmit">下发医嘱</a-button> @click="onAdverseSubmit">下发医嘱</a-button>
@ -69,6 +69,10 @@
source: { source: {
type: String, type: String,
default: 'normal' default: 'normal'
},
editAuth: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -209,7 +213,7 @@
})) }))
} }
this.newAdverse = newAdverse this.newAdverse = newAdverse
this.adverseList.unshift(newAdverse) if(!this.adverseList?.length) this.adverseList.unshift(newAdverse)
}, },
pushAdverse() { pushAdverse() {
const { const {

19
src/views/thrombolysis/components/throm-before1.vue

@ -38,18 +38,17 @@
</template> </template>
</van-slider> </van-slider>
</div> </div>
<!-- radio <!-- radio -->
v-decorator="[v, { initialValue: k.default }]"-->
<div class="mrsitem"> <div class="mrsitem">
<a-radio-group :disabled="writeAble" size="large" v-if="k.type === 'radio'" <a-radio-group :disabled="writeAble" size="large" v-if="k.type === 'radio'"
v-model="k.value" button-style="solid" @change="changeRadio($event, v)"> v-decorator="[v, { initialValue: k.default }]" button-style="solid" @change="changeRadio($event, v)">
<a-radio-button :disabled="writeAble" v-for="(item, index) in k.range" :key="item" <a-radio-button :disabled="writeAble" v-for="(item, index) in k.range" :key="item"
:value="item"> :value="item">
{{ item }} {{ item }}
</a-radio-button> </a-radio-button>
</a-radio-group> </a-radio-group>
</div> </div>
<div class="niss-list" v-if="k.type === 'pageText' && false"> <div class="niss-list" v-if="k.type === 'pageText'">
<div class="niss-list-item"> <div class="niss-list-item">
<div class="item-name"> <div class="item-name">
<span class="item-info">得分</span> <span class="item-info">得分</span>
@ -168,7 +167,6 @@
...mapState('patient', ['patientData', 'timerData', 'writeAble']), ...mapState('patient', ['patientData', 'timerData', 'writeAble']),
}, },
mounted() { mounted() {
console.log(this.timerData)
const { const {
code code
} = this.timerData; } = this.timerData;
@ -206,10 +204,12 @@
this.form.getFieldDecorator([`${k}`], { this.form.getFieldDecorator([`${k}`], {
preserve: true, //便使 preserve: true, //便使
}); });
this.form.setFieldsValue({ this.form.setFieldsValue({
[`${k}`]: answer.toString(), [`${k}`]: answer.toString(),
}); });
let value = this.recordDict[k]; let value = this.recordDict[k];
if (value && value.value && k !== 'RYPG-MRS') { if (value && value.value && k !== 'RYPG-MRS') {
value.value = Number(answer.toString()); value.value = Number(answer.toString());
} else if (value && value.value) { } else if (value && value.value) {
@ -266,7 +266,7 @@
recordDict recordDict
} = this; } = this;
const codes = [ const codes = [
// 'RYPG-MRS', 'RYPG-MRS',
'RYPG-NIHSS', 'RYPG-NIHSS',
'JMRS-Q-NIHSS', 'JMRS-Q-NIHSS',
'JMRS-15-NIHSS', 'JMRS-15-NIHSS',
@ -282,8 +282,10 @@
'JMRS-45-NIHSS', 'JMRS-45-NIHSS',
'JMRS-60-NIHSS', 'JMRS-60-NIHSS',
]; ];
for (let k in recordDict) { for (let k in recordDict) {
if ( if (
recordDict[k].value &&
recordDict[k].value !== 'undefined' && recordDict[k].value !== 'undefined' &&
recordDict[k].value !== 'null' recordDict[k].value !== 'null'
) { ) {
@ -296,9 +298,11 @@
} }
} }
} }
for (let k in values) { for (let k in values) {
if ( if (
this.$route.name === 'Emergency' && // this.$route.name === 'Emergency' &&
this.$route.name === 'Thrombolysis' &&
codesEm.includes(k) && codesEm.includes(k) &&
values[k] !== 'undefined' && values[k] !== 'undefined' &&
values[k] !== 'null' values[k] !== 'null'
@ -398,6 +402,7 @@
width: 45%; width: 45%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 10px;
.item-name { .item-name {
display: flex; display: flex;

102
src/views/thrombolysis/components/throm-before4.vue

@ -22,7 +22,7 @@
</a-button> </a-button>
</div> </div>
<div class="informed-item1"> <div class="informed-item1">
<span>签名日期: </span> <span>签名时间: </span>
<a-input :disabled="writeAble" @focus="changeDate('patientTime')" :value="getPatientTime" <a-input :disabled="writeAble" @focus="changeDate('patientTime')" :value="getPatientTime"
class="item-input" readOnly /> class="item-input" readOnly />
</div> </div>
@ -52,7 +52,7 @@
<a-input :disabled="writeAble" v-model="informed.empowerRelation" class="item-input" /> <a-input :disabled="writeAble" v-model="informed.empowerRelation" class="item-input" />
</div> </div>
<!-- <div class="informed-item"> <!-- <div class="informed-item">
<span>签名日期</span> <span>签名时间</span>
<a-input :disabled="writeAble" @focus="changeDate('legalTime')" :value="getLegalTime" <a-input :disabled="writeAble" @focus="changeDate('legalTime')" :value="getLegalTime"
class="item-input" readOnly /> class="item-input" readOnly />
</div> --> </div> -->
@ -85,7 +85,7 @@
}}</a-button> }}</a-button>
</div> </div>
<div class="informed-item1"> <div class="informed-item1">
<span>签名日期</span> <span>签名时间</span>
<a-input :disabled="writeAble" @focus="changeDate('doctorTime')" :value="getDoctorTime" <a-input :disabled="writeAble" @focus="changeDate('doctorTime')" :value="getDoctorTime"
class="item-input" readOnly /> class="item-input" readOnly />
</div> </div>
@ -97,7 +97,7 @@
</div> </div>
</template> </template>
<div class="common-picker"> <div class="common-picker">
<van-datetime-picker v-if="picker" v-model="currentDate" type="date" @confirm="confirmPicker" <van-datetime-picker v-if="picker" v-model="currentDate" type="datetime" @confirm="confirmPicker"
@cancel="picker = false" /> @cancel="picker = false" />
</div> </div>
<div class="btns"> <div class="btns">
@ -112,7 +112,7 @@
<div class="upload-list-item" v-for="(item, index) in fileList" :key="index" <div class="upload-list-item" v-for="(item, index) in fileList" :key="index"
@click="handlePreview(item)"> @click="handlePreview(item)">
<div class="img"> <div class="img">
<img :src="item" alt="" /> <img :src="apiUrl + item" alt="" />
</div> </div>
<div class="delete" @click="del(index)"> <div class="delete" @click="del(index)">
<a-icon type="close-circle" theme="filled" /> <a-icon type="close-circle" theme="filled" />
@ -145,10 +145,10 @@
</div> </div>
</div> </div>
<div class="throm-common-button"> <div class="throm-common-button">
<a-button :disabled="writeAble" class="" type="primary" size="large" block <!-- <a-button :disabled="writeAble" class="" type="primary" size="large" block
@click="onSubmitSign" v-if="!disabled && activeTabKey == 'tab1'">提交</a-button> @click="onSubmitSign" v-if="!disabled && activeTabKey == 'tab1'">提交</a-button> -->
<a-button :disabled="writeAble" class="" block type="primary" size="large" <a-button :disabled="writeAble" class="" block type="primary" size="large"
@click="handleNext">下一步</a-button> @click="onSubmitSign">下一步</a-button>
</div> </div>
</div> </div>
</a-card> </a-card>
@ -241,21 +241,21 @@
informed informed
} = this; } = this;
if (!informed.doctorTime) return; if (!informed.doctorTime) return;
return informed.doctorTime.split(' ')[0]; return informed.doctorTime; // .split(' ')[0];
}, },
getPatientTime() { getPatientTime() {
const { const {
informed informed
} = this; } = this;
if (!informed.patientTime) return; if (!informed.patientTime) return;
return informed.patientTime.split(' ')[0]; return informed.patientTime; // .split(' ')[0];
}, },
getLegalTime() { getLegalTime() {
const { const {
informed informed
} = this; } = this;
if (!informed.legalTime) return; if (!informed.legalTime) return;
return informed.legalTime.split(' ')[0]; return informed.legalTime; // .split(' ')[0];
}, },
getVideo() { getVideo() {
let path; let path;
@ -328,7 +328,7 @@
} = res; } = res;
if (code === 200) { if (code === 200) {
this.$message.success('保存成功'); this.$message.success('保存成功');
// this.$emit('next') this.$emit('next')
// if (this.source === 'first') { // if (this.source === 'first') {
// this.$emit('on-success', true); // this.$emit('on-success', true);
// } else { // } else {
@ -354,15 +354,34 @@
this.currentDate = new Date(this.informed[type]); this.currentDate = new Date(this.informed[type]);
} }
}, },
formatDate(date){
if(!date) date = new Date()
let year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? '0' + month : month;
let day = date.getDate();
day = day < 10 ? '0' + day : day;
let hours = date.getHours();
hours = hours < 10 ? '0' + hours : hours;
let minutes = date.getMinutes();
minutes = minutes < 10 ? '0' + minutes : minutes;
let seconds = date.getSeconds();
seconds = seconds < 10 ? '0' + seconds : seconds;
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; // 0 y + '-' + m + '-' + d;
},
confirmPicker(date) { confirmPicker(date) {
console.log(date) // console.log(date)
let y = date.getFullYear(); // let year = date.getFullYear();
let m = date.getMonth() + 1; // let month = date.getMonth() + 1;
m = m < 10 ? '0' + m : m; // month = month < 10 ? '0' + month : month;
let d = date.getDate(); // let day = date.getDate();
d = d < 10 ? '0' + d : d; // day = day < 10 ? '0' + day : day;
let dateTime = y + '-' + m + '-' + d; // let hours = date.getHours();
// let minutes = date.getMinutes();
// let seconds = date.getSeconds();
let dateTime = this.formatDate(date); //`${year}-${month}-${day} ${hours}:${minutes}`; // :${seconds}0 y + '-' + m + '-' + d;
this.informed[this.type] = dateTime; this.informed[this.type] = dateTime;
console.log('dateTime', dateTime)
this.picker = false; this.picker = false;
}, },
@ -429,13 +448,14 @@
uploadfile(form).then((res) => { uploadfile(form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.informed.doctorSign = res.url; this.informed.doctorSign = res.url;
const now = new Date() // const now = new Date()
let y = now.getFullYear(); // let y = now.getFullYear();
let m = now.getMonth() + 1; // let m = now.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = now.getDate(); // let d = now.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
let dateTime = this.formatDate();
this.informed.doctorTime = dateTime; this.informed.doctorTime = dateTime;
this.$message.success('谈话医师签名保存成功'); this.$message.success('谈话医师签名保存成功');
this.doctorSign = false; this.doctorSign = false;
@ -454,13 +474,14 @@
uploadfile(form).then((res) => { uploadfile(form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.informed.patientSign = res.url; this.informed.patientSign = res.url;
const now = new Date() // const now = new Date()
let y = now.getFullYear(); // let y = now.getFullYear();
let m = now.getMonth() + 1; // let m = now.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = now.getDate(); // let d = now.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
let dateTime = this.formatDate();
this.informed.patientTime = dateTime; this.informed.patientTime = dateTime;
this.$message.success('患者本人签名保存成功'); this.$message.success('患者本人签名保存成功');
this.patientSign = false; this.patientSign = false;
@ -477,13 +498,14 @@
uploadfile(form).then((res) => { uploadfile(form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.informed.empowerSign = res.url; this.informed.empowerSign = res.url;
const now = new Date(); // const now = new Date();
let y = now.getFullYear(); // let y = now.getFullYear();
let m = now.getMonth() + 1; // let m = now.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = now.getDate(); // let d = now.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
let dateTime = this.formatDate();
this.informed.legalTime = dateTime; this.informed.legalTime = dateTime;
this.$message.success('授权人签名保存成功'); this.$message.success('授权人签名保存成功');
this.empowerSign = false; this.empowerSign = false;

2
src/views/thrombolysis/components/throm-ing-min.vue

@ -81,7 +81,7 @@
</a-radio-group> </a-radio-group>
</template> </template>
<a-input-number :disabled="writeAble" ref="inputNumber" class="noControls" <a-input-number :disabled="writeAble" ref="inputNumber" class="noControls"
@focus="focusInput(index)" @click="changeInput($event, item)" readonly @focus="focusInput(index)" @click="changeInput($event, item)" readOnly
style="width: 20%; margin-left: 20px" v-model="item.value" :min="0" :max="10" /> style="width: 20%; margin-left: 20px" v-model="item.value" :min="0" :max="10" />
</a-popover> </a-popover>
</div> </div>

7
src/views/thrombolysis/components/throm-ing-reactions.vue

@ -129,7 +129,8 @@
let answer = source.map((item, index) => { let answer = source.map((item, index) => {
return item.answer return item.answer
}) })
let adverseList = [].concat(this.adverseList) // let adverseList = [].concat(this.adverseList)
if (answer[0].length > 0) { if (answer[0].length > 0) {
let res = answer[0].map((val, index) => { let res = answer[0].map((val, index) => {
let JSONitem = JSON.parse(val) let JSONitem = JSON.parse(val)
@ -159,6 +160,7 @@
} }
}] }]
}) })
this.adverseList = res this.adverseList = res
} }
} }
@ -205,9 +207,10 @@
})) }))
} }
this.newAdverse = newAdverse this.newAdverse = newAdverse
this.adverseList.unshift(newAdverse) if(!this.adverseList?.length) this.adverseList.unshift(newAdverse)
}, },
pushAdverse() { pushAdverse() {
console.log(3333)
const { const {
ADVERSE_CODE ADVERSE_CODE
} = this } = this

2
src/views/thrombolysis/components/throm-ing-record.vue

@ -101,7 +101,7 @@
// /deep/ .ant-result-title { // /deep/ .ant-result-title {
// font-size: 36px; // font-size: 36px;
// } // }
height: 50vh; min-height: 50vh;
color: #000; color: #000;
background-color: #eee; background-color: #eee;
padding: 1rem; padding: 1rem;

93
src/views/thrombolysis/components/throm-interfere-informed.vue

@ -97,7 +97,7 @@
</div> </div>
</template> </template>
<div class="common-picker"> <div class="common-picker">
<van-datetime-picker v-if="picker" v-model="currentDate" type="date" @confirm="confirmPicker" <van-datetime-picker v-if="picker" v-model="currentDate" type="datetime" @confirm="confirmPicker"
@cancel="picker = false" /> @cancel="picker = false" />
</div> </div>
</div> </div>
@ -160,9 +160,9 @@
</a-modal> </a-modal>
<div class="throm-common-button"> <div class="throm-common-button">
<a-button :disabled="writeAble" class="" type="primary" size="large" block @click="onSubmitSign" <!-- <a-button :disabled="writeAble" class="" type="primary" size="large" block @click="onSubmitSign"
v-if="!disabled && activeTabKey == 'tab1'">提交</a-button> v-if="!disabled && activeTabKey == 'tab1'">提交</a-button> -->
<a-button :disabled="writeAble" class="" block type="primary" size="large" @click="onSubmit">下一步</a-button> <a-button :disabled="writeAble" class="" block type="primary" size="large" @click="onSubmitSign">下一步</a-button>
</div> </div>
</div> </div>
</template> </template>
@ -247,21 +247,21 @@
informed informed
} = this; } = this;
if (!informed.doctorTime) return; if (!informed.doctorTime) return;
return informed.doctorTime.split(' ')[0]; return informed.doctorTime; // .split(' ')[0];
}, },
getPatientTime() { getPatientTime() {
const { const {
informed informed
} = this; } = this;
if (!informed.patientTime) return; if (!informed.patientTime) return;
return informed.patientTime.split(' ')[0]; return informed.patientTime; // .split(' ')[0];
}, },
getLegalTime() { getLegalTime() {
const { const {
informed informed
} = this; } = this;
if (!informed.legalTime) return; if (!informed.legalTime) return;
return informed.legalTime.split(' ')[0]; return informed.legalTime; // .split(' ')[0];
}, },
getVideo() { getVideo() {
let path; let path;
@ -346,7 +346,7 @@
} = res; } = res;
if (code === 200) { if (code === 200) {
this.$message.success('保存成功'); this.$message.success('保存成功');
// this.$emit('next') this.$emit('next')
// if (this.source === 'first') { // if (this.source === 'first') {
// this.$emit('on-success', true); // this.$emit('on-success', true);
// } else { // } else {
@ -372,16 +372,32 @@
this.currentDate = new Date(this.informed[type]); this.currentDate = new Date(this.informed[type]);
} }
}, },
formatDate(date){
if(!date) date = new Date()
let year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? '0' + month : month;
let day = date.getDate();
day = day < 10 ? '0' + day : day;
let hours = date.getHours();
hours = hours < 10 ? '0' + hours : hours;
let minutes = date.getMinutes();
minutes = minutes < 10 ? '0' + minutes : minutes;
let seconds = date.getSeconds();
seconds = seconds < 10 ? '0' + seconds : seconds;
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; // :${seconds}0 y + '-' + m + '-' + d;
},
confirmPicker(date) { confirmPicker(date) {
console.log(date) // console.log(date)
let y = date.getFullYear(); // let y = date.getFullYear();
let m = date.getMonth() + 1; // let m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = date.getDate(); // let d = date.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
this.picker = false; let dateTime = this.formatDate(date);
this.informed[this.type] = dateTime; this.informed[this.type] = dateTime;
this.picker = false;
}, },
async thTime() { async thTime() {
@ -433,13 +449,14 @@
uploadfile(form).then((res) => { uploadfile(form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.informed.doctorSign = res.url; this.informed.doctorSign = res.url;
const now = new Date() // const now = new Date()
let y = now.getFullYear(); // let y = now.getFullYear();
let m = now.getMonth() + 1; // let m = now.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = now.getDate(); // let d = now.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
let dateTime = this.formatDate();
this.informed.doctorTime = dateTime; this.informed.doctorTime = dateTime;
this.$message.success('谈话医师签名保存成功'); this.$message.success('谈话医师签名保存成功');
this.doctorSign = false; this.doctorSign = false;
@ -458,13 +475,14 @@
uploadfile(form).then((res) => { uploadfile(form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.informed.patientSign = res.url; this.informed.patientSign = res.url;
const now = new Date() // const now = new Date()
let y = now.getFullYear(); // let y = now.getFullYear();
let m = now.getMonth() + 1; // let m = now.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = now.getDate(); // let d = now.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
let dateTime = this.formatDate();
this.informed.patientTime = dateTime; this.informed.patientTime = dateTime;
this.$message.success('患者本人签名保存成功'); this.$message.success('患者本人签名保存成功');
this.patientSign = false; this.patientSign = false;
@ -481,13 +499,14 @@
uploadfile(form).then((res) => { uploadfile(form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.informed.empowerSign = res.url; this.informed.empowerSign = res.url;
const now = new Date(); // const now = new Date();
let y = now.getFullYear(); // let y = now.getFullYear();
let m = now.getMonth() + 1; // let m = now.getMonth() + 1;
m = m < 10 ? '0' + m : m; // m = m < 10 ? '0' + m : m;
let d = now.getDate(); // let d = now.getDate();
d = d < 10 ? '0' + d : d; // d = d < 10 ? '0' + d : d;
let dateTime = y + '-' + m + '-' + d; // let dateTime = y + '-' + m + '-' + d;
let dateTime = this.formatDate();
this.informed.legalTime = dateTime; this.informed.legalTime = dateTime;
this.$message.success('授权人签名保存成功'); this.$message.success('授权人签名保存成功');
this.empowerSign = false; this.empowerSign = false;

59
src/views/thrombolysis/components/throm-report.vue

@ -4,7 +4,7 @@
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-card class="report-card baseInfo" title="患者信息" :bodyStyle="{padding: 0}"> <a-card class="report-card baseInfo" title="患者信息" :bodyStyle="{padding: 0}">
<a-col :span='8'> <a-col :span='7'>
<a-row> <a-row>
<div class="leftTitle">姓名</div> <div class="leftTitle">姓名</div>
<div class="rightValue">{{patient.patientName}}</div> <div class="rightValue">{{patient.patientName}}</div>
@ -18,7 +18,7 @@
<div class="rightValue">{{patient.firstAidZlTypeString || '-'}}</div> <div class="rightValue">{{patient.firstAidZlTypeString || '-'}}</div>
</a-row> </a-row>
</a-col> </a-col>
<a-col :span='8' class="midItem"> <a-col :span='10' class="midItem">
<a-row> <a-row>
<div class="leftTitle">性别</div> <div class="leftTitle">性别</div>
<div class="rightValue">{{patient.patientGenderString || '-'}}</div> <div class="rightValue">{{patient.patientGenderString || '-'}}</div>
@ -31,10 +31,10 @@
</a-row> </a-row>
<a-row> <a-row>
<div class="leftTitle">发病时间</div> <div class="leftTitle">发病时间</div>
<div class="rightValue">{{queryItemInfo('XGZL-CCWC-TIME').toString() ||'-'}}</div> <div class="rightValue">{{queryItemInfo('JBXX-FBSJ').toString() ||'-'}}</div>
</a-row> </a-row>
</a-col> </a-col>
<a-col :span='8'> <a-col :span='7'>
<a-row> <a-row>
<div class="leftTitle">年龄</div> <div class="leftTitle">年龄</div>
<div class="rightValue">{{patient.patientAge || '-'}}</div> <div class="rightValue">{{patient.patientAge || '-'}}</div>
@ -286,7 +286,8 @@
</tr> </tr>
<tr> <tr>
<td>时间点</td> <td>时间点</td>
<td>血压(BP)</td> <td>收缩压/舒张压</td>
<!-- <td>血压(BP)</td> -->
<td>心率(HR)</td> <td>心率(HR)</td>
<td>血样饱和度(HR)</td> <td>血样饱和度(HR)</td>
<td>格拉斯评分</td> <td>格拉斯评分</td>
@ -294,7 +295,10 @@
</tr> </tr>
<tr> <tr>
<td>用药前</td> <td>用药前</td>
<td>{{queryItemInfo('JMRS-Q-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('RYPG-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('RYPG-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -302,7 +306,10 @@
</tr> </tr>
<tr> <tr>
<td>15min</td> <td>15min</td>
<td>{{queryItemInfo('JMRS-15-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-15-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-15-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -310,7 +317,10 @@
</tr> </tr>
<tr> <tr>
<td>30min</td> <td>30min</td>
<td>{{queryItemInfo('JMRS-30-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-30-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-30-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -318,7 +328,10 @@
</tr> </tr>
<tr> <tr>
<td>45min</td> <td>45min</td>
<td>{{queryItemInfo('JMRS-45-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-45-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-45-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -326,7 +339,10 @@
</tr> </tr>
<tr> <tr>
<td>60min</td> <td>60min</td>
<td>{{queryItemInfo('JMRS-60-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-60-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-60-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -334,7 +350,10 @@
</tr> </tr>
<tr> <tr>
<td>75min</td> <td>75min</td>
<td>{{queryItemInfo('JMRS-75-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-75-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-75-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -342,7 +361,10 @@
</tr> </tr>
<tr> <tr>
<td>90min</td> <td>90min</td>
<td>{{queryItemInfo('JMRS-90-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-90-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-90-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -350,7 +372,10 @@
</tr> </tr>
<tr> <tr>
<td>105min</td> <td>105min</td>
<td>{{queryItemInfo('JMRS-105-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-105-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-105-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -358,7 +383,10 @@
</tr> </tr>
<tr> <tr>
<td>120min</td> <td>120min</td>
<td>{{queryItemInfo('JMRS-120-SYSTOLIC-PRESSURE').toString()}}</td> <td>
{{queryItemInfo('JMRS-120-SYSTOLIC-PRESSURE').toString()}} /
{{queryItemInfo('JMRS-120-DIASTOLIC-PRESSURE').toString()}}
</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
@ -1036,7 +1064,8 @@
.baseInfo { .baseInfo {
line-height: 32px; line-height: 32px;
.ant-col-8 { .ant-col-7,
.ant-col-10 {
padding-left: 30px; padding-left: 30px;
padding-right: 30px; padding-right: 30px;
} }

44
src/views/thrombolysis/components/throm-result-baseInfo.vue

@ -4,23 +4,33 @@
<!-- 患者基本信息 --> <!-- 患者基本信息 -->
<div class='basicr-back'> <div class='basicr-back'>
<a-form class="detail-form" :form="baseForm"> <a-form class="detail-form" :form="baseForm">
<a-row>
<a-col :span="16">
<div class="idCardItem"> <div class="idCardItem">
<a-upload :disabled="writeAble" class="idcard-upload" accept=".img,.png,.jpg" <a-upload :disabled="writeAble || !editAuth" class="idcard-upload" accept=".img,.png,.jpg"
:before-upload="handleBeforeUpload" :showUploadList="false" name="file" :before-upload="handleBeforeUpload" :showUploadList="false" name="file"
:multiple="false" :customRequest="handleUploadAdd"> :multiple="false" :customRequest="handleUploadAdd">
<a-icon type="scan" class="scanicon" /><span>扫描身份证</span> <a-icon type="scan" class="scanicon" /><span>扫描身份证</span>
</a-upload> </a-upload>
</div> </div>
</a-col>
<a-col :span="8">
<div style="text-align: right;" v-if="!writeAble">
<a-button type="primary" @click="editAuth = !editAuth">{{editAuth ? '取消编辑' : '编辑'}}</a-button>
</div>
</a-col>
</a-row>
<a-form-item label="姓名"> <a-form-item label="姓名">
<div class="detail-form-control"> <div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientName']" <a-input :disabled="writeAble || !editAuth" v-decorator="['patientName']"
@blur="onBaseChange($event.target.value, 'patientName')" placeholder='请输入' /> @blur="onBaseChange($event.target.value, 'patientName')" placeholder='请输入' />
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="性别"> <a-form-item label="性别">
<div class="detail-form-control"> <div class="detail-form-control">
<a-radio-group :disabled="writeAble" v-decorator="['patientGender']" <a-radio-group :disabled="writeAble || !editAuth" v-decorator="['patientGender']"
@change="onBaseChange($event.target.value, 'patientGender')"> @change="onBaseChange($event.target.value, 'patientGender')">
<a-radio :value='0'> </a-radio> <a-radio :value='0'> </a-radio>
<a-radio :value='1'> </a-radio> <a-radio :value='1'> </a-radio>
@ -29,7 +39,7 @@
</a-form-item> </a-form-item>
<a-form-item label="民族"> <a-form-item label="民族">
<div class="detail-form-control"> <div class="detail-form-control">
<a-select :disabled="writeAble" ref="select" v-decorator="['patientNation']" <a-select :disabled="writeAble || !editAuth" ref="select" v-decorator="['patientNation']"
@change="handleChange($event, 'patientNation', 'default')" placeholder='请选择'> @change="handleChange($event, 'patientNation', 'default')" placeholder='请选择'>
<a-select-option v-for="item in nationList" :key="item" :value="item"> <a-select-option v-for="item in nationList" :key="item" :value="item">
@ -38,9 +48,15 @@
</a-select> </a-select>
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="联系方式">
<div class="detail-form-control">
<a-input :disabled="writeAble || !editAuth" v-decorator="['patientPhone']"
@blur="onBaseChange($event.target.value, 'patientPhone')" placeholder='请输入' />
</div>
</a-form-item>
<a-form-item label="身份证号"> <a-form-item label="身份证号">
<div class="detail-form-control"> <div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientIdCardNo']" placeholder='请输入' <a-input :disabled="writeAble || !editAuth" v-decorator="['patientIdCardNo']" placeholder='请输入'
@blur="onBaseChange($event.target.value, 'patientIdCardNo')" /> @blur="onBaseChange($event.target.value, 'patientIdCardNo')" />
</div> </div>
</a-form-item> </a-form-item>
@ -48,7 +64,7 @@
<a-form-item v-for="(k,v) in BASE_CODE" :key="v" :label="k.text" v-if="computeShow(v, codeForm)"> <a-form-item v-for="(k,v) in BASE_CODE" :key="v" :label="k.text" v-if="computeShow(v, codeForm)">
<div class="detail-form-control"> <div class="detail-form-control">
<!-- radio --> <!-- radio -->
<a-radio-group :disabled="writeAble" v-if="k.type==='radio'" <a-radio-group :disabled="writeAble || !editAuth" v-if="k.type==='radio'"
v-decorator="[ v-decorator="[
v, v,
{initialValue: codeForm[k] }, {initialValue: codeForm[k] },
@ -58,16 +74,16 @@
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
<!-- input --> <!-- input -->
<a-input :disabled="writeAble" v-if="k.type==='input'" :type="k.inputType" v-decorator="[ <a-input :disabled="writeAble || !editAuth" v-if="k.type==='input'" :type="k.inputType" v-decorator="[
v]" @blur="handleChange($event.target.value, v)" placeholder='请输入'> v]" @blur="handleChange($event.target.value, v)" placeholder='请输入'>
</a-input> </a-input>
<!-- datetime --> <!-- datetime -->
<a-input :disabled="writeAble" v-if="k.type==='datetime'" readOnly @click="selectOption(v)" <a-input :disabled="writeAble || !editAuth" v-if="k.type==='datetime'" readOnly @click="selectOption(v)"
v-decorator="[ v-decorator="[
v, v,
]" placeholder='请选择'> ]" placeholder='请选择'>
</a-input> </a-input>
<a-select :disabled="writeAble" v-if="k.type==='select'" v-decorator="[ <a-select :disabled="writeAble || !editAuth" v-if="k.type==='select'" v-decorator="[
v]" @change="handleChange($event, v)" placeholder='请选择' style="display: block;"> v]" @change="handleChange($event, v)" placeholder='请选择' style="display: block;">
<a-select-option v-for="item in k.range" :key="item" :value="item"> <a-select-option v-for="item in k.range" :key="item" :value="item">
{{item}} {{item}}
@ -85,7 +101,7 @@
<div class='diagnosis'> <div class='diagnosis'>
<v-head text='疑似诊断'></v-head> <v-head text='疑似诊断'></v-head>
<div class='back-ff'> <div class='back-ff'>
<a-radio-group :disabled="writeAble" v-model:value="firstAidZlType" <a-radio-group :disabled="writeAble || !editAuth" v-model:value="firstAidZlType"
@change="onBaseChange($event.target.value, 'firstAidZlType')"> @change="onBaseChange($event.target.value, 'firstAidZlType')">
<a-radio :style="radioStyle" v-for="(k,v) in FIRSTAIDZLTYPE_DICT" :key="v" <a-radio :style="radioStyle" v-for="(k,v) in FIRSTAIDZLTYPE_DICT" :key="v"
:value="v">{{k}}</a-radio> :value="v">{{k}}</a-radio>
@ -98,7 +114,7 @@
</div> </div>
</div> </div>
<div class="throm-common-button"> <div class="throm-common-button">
<a-button :disabled="writeAble" class="" block type="primary" size="large" <a-button :disabled="writeAble || !editAuth" class="" block type="primary" size="large"
@click="onSubmit">{{patientId ? '保存' : '下一步'}}</a-button> @click="onSubmit">{{patientId ? '保存' : '下一步'}}</a-button>
<!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit"> <!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit">
保存<a-icon type="check" /> 保存<a-icon type="check" />
@ -156,7 +172,8 @@
}, },
firstAidZlType: 0, // firstAidZlType: 0, //
selectCode: '' ,// code, selectCode: '' ,// code,
form: {} form: {},
editAuth: false
} }
}, },
props: ['patientId'], props: ['patientId'],
@ -529,5 +546,8 @@
.detail-form .ant-form-item .ant-form-item-label{ .detail-form .ant-form-item .ant-form-item-label{
width: 150px !important; width: 150px !important;
} }
.detail-form .ant-form-item .ant-form-item-label > label::after{
content: ':';
}
} }
</style> </style>

83
src/views/thrombolysis/components/throm-result-firstInfo.vue

@ -1,6 +1,9 @@
<template> <template>
<div class="Overviewbasicr"> <div class="Overviewbasicr">
<div class="first-content"> <div class="first-content">
<div style="text-align: right;" v-if="!writeAble">
<a-button type="primary" @click="editAuth = !editAuth">{{editAuth ? '取消编辑' : '编辑'}}</a-button>
</div>
<!-- 患者急救记录 --> <!-- 患者急救记录 -->
<div class="basicr-back basicr-back-info"> <div class="basicr-back basicr-back-info">
<a-form class="detail-form" :form="firstForm"> <a-form class="detail-form" :form="firstForm">
@ -14,22 +17,22 @@
</div> </div>
<div class="content-right"> <div class="content-right">
<!-- text --> <!-- text -->
<a-input :disabled="writeAble" v-if="k.type === 'text'" type="text" v-decorator="[v]" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'text'" type="text" v-decorator="[v]"
readOnly /> readOnly />
<!-- input --> <!-- input -->
<a-input :disabled="writeAble" v-if="k.type === 'input'" :type="k.inputType" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'input'" :type="k.inputType"
v-decorator="[v]" @blur="handleChange($event.target.value, v)" placeholder="请输入" /> v-decorator="[v]" @blur="handleChange($event.target.value, v)" placeholder="请输入" />
<!-- datetime --> <!-- datetime -->
<a-input :disabled="writeAble" v-if="k.type === 'datetime'" readOnly <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'datetime'" readOnly
@click="selectOption(v)" v-decorator="[v]" placeholder="请选择" /> @click="selectOption(v)" v-decorator="[v]" placeholder="请选择" />
<a-select :disabled="writeAble" v-if="k.type === 'select'" v-decorator="[v]" <a-select :disabled="writeAble || !editAuth" v-if="k.type === 'select'" v-decorator="[v]"
@change="handleChange($event, v)" placeholder="请选择" style="display: block;"> @change="handleChange($event, v)" placeholder="请选择" style="display: block;">
<a-select-option v-for="(item, val) in k.range" :key="val"> <a-select-option v-for="(item, val) in k.range" :key="val">
{{ val }} {{ val }}
</a-select-option> </a-select-option>
</a-select> </a-select>
<!-- radio --> <!-- radio -->
<a-radio-group :disabled="writeAble" v-if="k.type === 'radio'" v-decorator="[v]" <a-radio-group :disabled="writeAble || !editAuth" v-if="k.type === 'radio'" v-decorator="[v]"
@change=" @change="
handleChange($event.target.value, v) handleChange($event.target.value, v)
"> ">
@ -38,7 +41,7 @@
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
<!-- pageText --> <!-- pageText -->
<a-input :disabled="writeAble" v-if="k.type === 'pageText'" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'pageText'"
@blur="handleChange($event.target.value, v)" v-decorator="[v]" placeholder="请输入" /> @blur="handleChange($event.target.value, v)" v-decorator="[v]" placeholder="请输入" />
</div> </div>
</div> </div>
@ -68,7 +71,7 @@
</div> </div>
<div class="content-right"> <div class="content-right">
<!-- input --> <!-- input -->
<a-input :disabled="writeAble" v-if=" <a-input :disabled="writeAble || !editAuth" v-if="
JMRS_CODE[item].type === 'input' JMRS_CODE[item].type === 'input'
" :type="item.inputType" v-decorator="[item]" @blur=" " :type="item.inputType" v-decorator="[item]" @blur="
handleChange( handleChange(
@ -77,7 +80,7 @@
) )
" placeholder="请输入" /> " placeholder="请输入" />
<!-- pageText --> <!-- pageText -->
<a-input :disabled="writeAble" v-if=" <a-input :disabled="writeAble || !editAuth" v-if="
JMRS_CODE[item].type === JMRS_CODE[item].type ===
'pageText' 'pageText'
" @blur=" " @blur="
@ -113,13 +116,13 @@
</div> </div>
<div class="content-right"> <div class="content-right">
<!-- text --> <!-- text -->
<a-input :disabled="writeAble" v-if="k.type === 'text'" type="text" v-decorator="[v]" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'text'" type="text" v-decorator="[v]"
readOnly /> readOnly />
<!-- modal --> <!-- modal -->
<a-input :disabled="writeAble" v-if="k.type === 'modal'" :placeholder="k.rightText" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'modal'" :placeholder="k.rightText"
@click="toInform" type="text" v-decorator="[v]" readOnly /> @click="toInform" type="text" v-decorator="[v]" readOnly />
<!-- radio --> <!-- radio -->
<a-radio-group :disabled="writeAble" v-if="k.type === 'radio'" v-decorator="[ <a-radio-group :disabled="writeAble || !editAuth" v-if="k.type === 'radio'" v-decorator="[
v, v,
{ initialValue: k.default }, { initialValue: k.default },
]" @change=" ]" @change="
@ -130,7 +133,7 @@
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
<!-- checkbox --> <!-- checkbox -->
<a-checkbox-group :disabled="writeAble" v-if="k.type === 'checkbox'" :options="k.range" <a-checkbox-group :disabled="writeAble || !editAuth" v-if="k.type === 'checkbox'" :options="k.range"
v-decorator="[ v-decorator="[
v, v,
{ initialValue: k.default }, { initialValue: k.default },
@ -138,15 +141,15 @@
handleChange($event, v, null, k.type) handleChange($event, v, null, k.type)
" /> " />
<!-- input --> <!-- input -->
<a-input :disabled="writeAble" v-if="k.type === 'input'" :type="k.inputType" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'input'" :type="k.inputType"
v-decorator="[v]" @blur="handleChange($event.target.value, v)" placeholder="请输入" /> v-decorator="[v]" @blur="handleChange($event.target.value, v)" placeholder="请输入" />
<!-- datetime --> <!-- datetime -->
<a-input :disabled="writeAble" v-if="k.type === 'datetime'" readOnly <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'datetime'" readOnly
@click="selectOption(v)" v-decorator="[ @click="selectOption(v)" v-decorator="[
v, v,
{ initialValue: k.default }, { initialValue: k.default },
]" placeholder="请选择" /> ]" placeholder="请选择" />
<a-select :disabled="writeAble" v-if="k.type === 'select'" v-decorator="[ <a-select :disabled="writeAble || !editAuth" v-if="k.type === 'select'" v-decorator="[
v, v,
{ initialValue: k.default }, { initialValue: k.default },
]" @change="handleChange($event, v)" placeholder="请选择" style="display: block;"> ]" @change="handleChange($event, v)" placeholder="请选择" style="display: block;">
@ -155,7 +158,7 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
<!-- pageText --> <!-- pageText -->
<a-input :disabled="writeAble" v-if="k.type === 'pageText'" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'pageText'"
@blur="handleChange($event.target.value, v)" v-decorator="[ @blur="handleChange($event.target.value, v)" v-decorator="[
v, v,
{ initialValue: k.default }, { initialValue: k.default },
@ -167,7 +170,7 @@
<div class="adverse"> <div class="adverse">
<a-collapse class="jmrs-form-item-con" :bordered="false" expandIconPosition="right"> <a-collapse class="jmrs-form-item-con" :bordered="false" expandIconPosition="right">
<a-collapse-panel key="1" header="不良反应"> <a-collapse-panel key="1" header="不良反应">
<Adverse source="first" ref="adverse" /> <Adverse source="first" :editAuth="editAuth" ref="adverse" />
</a-collapse-panel> </a-collapse-panel>
</a-collapse> </a-collapse>
</div> </div>
@ -188,10 +191,10 @@
</div> </div>
<div class="content-right"> <div class="content-right">
<!-- text --> <!-- text -->
<a-input :disabled="writeAble" v-if="k.type === 'text'" type="text" v-decorator="[v]" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'text'" type="text" v-decorator="[v]"
readOnly /> readOnly />
<!-- radio --> <!-- radio -->
<a-radio-group class="radioGroupItem" :disabled="writeAble" v-if="k.type === 'radio'" <a-radio-group class="radioGroupItem" :disabled="writeAble || !editAuth" v-if="k.type === 'radio'"
v-decorator="[v]" @change=" v-decorator="[v]" @change="
handleChange($event.target.value, v) handleChange($event.target.value, v)
"> ">
@ -200,24 +203,24 @@
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
<!-- input --> <!-- input -->
<a-input :disabled="writeAble" v-if="k.type === 'input'" :type="k.inputType" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'input'" :type="k.inputType"
v-decorator="[v]" @blur="handleChange($event.target.value, v)" placeholder="请输入" /> v-decorator="[v]" @blur="handleChange($event.target.value, v)" placeholder="请输入" />
<!-- checkbox --> <!-- checkbox -->
<a-checkbox-group :disabled="writeAble" v-if="k.type === 'checkbox'" :options="k.range" <a-checkbox-group :disabled="writeAble || !editAuth" v-if="k.type === 'checkbox'" :options="k.range"
v-decorator="[v]" @change=" v-decorator="[v]" @change="
handleChange($event, v, null, k.type) handleChange($event, v, null, k.type)
" /> " />
<!-- datetime --> <!-- datetime -->
<a-input :disabled="writeAble" v-if="k.type === 'datetime'" readOnly <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'datetime'" readOnly
@click="selectOption(v)" v-decorator="[v]" placeholder="请选择" /> @click="selectOption(v)" v-decorator="[v]" placeholder="请选择" />
<a-select :disabled="writeAble" v-if="k.type === 'select'" v-decorator="[v]" <a-select :disabled="writeAble || !editAuth" v-if="k.type === 'select'" v-decorator="[v]"
@change="handleChange($event, v)" placeholder="请选择"> @change="handleChange($event, v)" placeholder="请选择">
<a-select-option v-for="(item, v) in k.range" :key="item"> <a-select-option v-for="(item, v) in k.range" :key="item">
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </a-select>
<!-- pageText --> <!-- pageText -->
<a-input :disabled="writeAble" v-if="k.type === 'pageText'" <a-input :disabled="writeAble || !editAuth" v-if="k.type === 'pageText'"
@blur="handleChange($event.target.value, v)" v-decorator="[v]" placeholder="请输入" /> @blur="handleChange($event.target.value, v)" v-decorator="[v]" placeholder="请输入" />
</div> </div>
</div> </div>
@ -234,7 +237,7 @@
</a-modal> </a-modal>
</div> </div>
<div class="throm-common-button"> <div class="throm-common-button">
<a-button :disabled="writeAble" class="" block type="primary" size="large" <a-button :disabled="writeAble || !editAuth" class="" block type="primary" size="large"
@click="onSubmit($event, patientId)">{{patientId? '保存' : '完成'}}</a-button> @click="onSubmit($event, patientId)">{{patientId? '保存' : '完成'}}</a-button>
<!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit"> <!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit">
保存<a-icon type="check" /> 保存<a-icon type="check" />
@ -343,7 +346,8 @@
}, },
request: 0, request: 0,
selectCode: '', // code selectCode: '', // code
form: {} form: {},
editAuth: false,
}; };
}, },
props: ['patientId'], props: ['patientId'],
@ -364,7 +368,7 @@
// }); // });
// }, // },
async mounted() { async mounted() {
console.log('patientId', this.patientId) // console.log('patientId', this.patientId)
if (this.patientId) { if (this.patientId) {
const res = await queryAidRecord(this.patientId) const res = await queryAidRecord(this.patientId)
@ -506,17 +510,17 @@
cancelText: '取消', cancelText: '取消',
content: '是否确定生成报告单,生成报告单后无法修改内容', content: '是否确定生成报告单,生成报告单后无法修改内容',
onOk() { onOk() {
_this.handleSubmit(1) _this.handleSubmit(e, 1)
}, },
onCancel() { onCancel() {
_this.handleSubmit(0) _this.handleSubmit(e, 0)
}, },
}); });
} else { } else {
this.handleSubmit() this.handleSubmit(e)
} }
}, },
handleSubmit(finishStatus) { handleSubmit(e,finishStatus) {
this.$nextTick(async () => { this.$nextTick(async () => {
this.firstForm.validateFields(async (err, values) => { this.firstForm.validateFields(async (err, values) => {
let codeAndAnswerList = [], let codeAndAnswerList = [],
@ -524,7 +528,7 @@
const { const {
firstAidId firstAidId
} = this.form } = this.form
console.log('firstinfo handleSubmit', firstAidId) // console.log('firstinfo handleSubmit', firstAidId)
let adverseSubmit = this.$refs.adverse; let adverseSubmit = this.$refs.adverse;
if (adverseSubmit) { if (adverseSubmit) {
let res = await adverseSubmit.onAdverseSubmit(e, 'first'); let res = await adverseSubmit.onAdverseSubmit(e, 'first');
@ -810,7 +814,8 @@
.basicrItem .ant-form-item:nth-child(10), .basicrItem .ant-form-item:nth-child(10),
.basicrItem .ant-form-item:nth-child(11), .basicrItem .ant-form-item:nth-child(11),
.basicrItem .ant-form-item:nth-child(12), .basicrItem .ant-form-item:nth-child(12),
.basicrItem .ant-form-item:nth-child(13) { .basicrItem .ant-form-item:nth-child(13),
.basicrItem .ant-form-item:nth-child(14) {
// height:150px !important; // height:150px !important;
height: auto !important; height: auto !important;
} }
@ -836,6 +841,8 @@
} }
</style> </style>
<style scoped> <style scoped>
>>>.adverse .ant-form-item:nth-child(2) { >>>.adverse .ant-form-item:nth-child(2) {
height: 150px !important; height: 150px !important;
display: flex; display: flex;
@ -924,3 +931,13 @@
border-radius: 12px; border-radius: 12px;
} }
</style> </style>
<style lang="less">
.Overviewbasicr{
.basicr-back .ant-form-item {
.ant-form-item-label > label::after{
content: ':';
}
}
}
</style>
Loading…
Cancel
Save