Browse Source

20250226

master
nicky 5 months ago
parent
commit
1a4df7e3e9
  1. 2
      src/App.vue
  2. 2
      src/api/index.js
  3. 7
      src/assets/less/common.css
  4. 137
      src/assets/less/common.less
  5. 28
      src/config/code.js
  6. 53
      src/layouts/BasicLayout.less
  7. 39
      src/layouts/BasicLayout.vue
  8. 7
      src/views/Patient/FirstInfo.vue
  9. 34
      src/views/Patient/components/title.vue
  10. 4
      src/views/Patient/index.vue
  11. 2
      src/views/before/Informed.vue
  12. 2
      src/views/before/UploadCT.vue
  13. 2
      src/views/before/UploadInformed.vue
  14. 4
      src/views/before/Video.vue
  15. 6
      src/views/document/index.vue
  16. 2
      src/views/login/index.vue
  17. 35
      src/views/thrombolysis/components/throm-before.vue
  18. 2
      src/views/thrombolysis/components/throm-before3.vue
  19. 6
      src/views/thrombolysis/components/throm-before4.vue
  20. 3
      src/views/thrombolysis/components/throm-ing-date.vue
  21. 25
      src/views/thrombolysis/components/throm-ing.vue
  22. 2
      src/views/thrombolysis/components/throm-interfere-informed.vue
  23. 6
      src/views/thrombolysis/components/throm-interfere.vue
  24. 196
      src/views/thrombolysis/components/throm-report.vue
  25. 197
      src/views/thrombolysis/components/throm-result-baseInfo.vue
  26. 72
      src/views/thrombolysis/components/throm-result-firstInfo.vue
  27. 16
      src/views/thrombolysis/components/throm-result.vue
  28. 5
      src/views/thrombolysis/index.vue

2
src/App.vue

@ -286,7 +286,7 @@
background: #f6f8fa;
height: 100%;
position: relative;
user-select: none;
::-webkit-scrollbar {
display: none;
}

2
src/api/index.js

@ -372,4 +372,4 @@ export const exportAll = (params) =>
export const exportJrPdf = (params) =>
axios.post(`${proxyUrl1}/admin/export/exportJrPdf`, {
...params
});
});

7
src/assets/less/common.css

@ -226,7 +226,7 @@
}
.ant-form .ant-form-item:not(:last-child) {
border-bottom: 1px solid #dfe6ec;
/* border-bottom: 1px solid #dfe6ec; */
padding-bottom: 18px;
}
@ -312,4 +312,9 @@
.ant-tabs-nav-container .ant-tabs-ink-bar {
background: #7690e5 !important;
}
.ant-form .ant-form-item-label label{
font-size: 18px;
color: #222;
}

137
src/assets/less/common.less

@ -351,6 +351,11 @@
}
}
.ant-form .ant-form-item-label label{
font-size: 18px;
color: #222;
}
.ant-form {
.ant-form-item-label{
text-align: left;
@ -362,7 +367,7 @@
}
.ant-form-item{
&:not(:last-child) {
border-bottom: 1px solid #dfe6ec;
// border-bottom: 1px solid #dfe6ec;
}
box-sizing: border-box;
}
@ -456,26 +461,28 @@
}
}
.container-left-header {
display: flex;
margin-top: 20px;
margin-bottom: 20px;
span {
width: 12px;
height: 32px;
display: inline-block;
border-radius: 12px;
background: #8FB3FB;
margin-right: 16px;
}
// .container-left-header {
// // display: flex;
// margin-top: 20px;
// margin-bottom: 20px;
// // width: 100%;
// // float: left;
// span {
// width: 8px;
// height: 25px;
// display: inline-block;
// border-radius: 12px;
// background: #8FB3FB;
// margin-right: 16px;
// }
p {
line-height: 32px;
font-size: 32px;
font-weight: 600;
margin: 0;
}
}
// p {
// line-height: 32px;
// font-size: 1.2rem;
// font-weight: 600;
// margin: 0;
// }
// }
//急诊溶栓记录
.basic-btn {
@ -579,17 +586,19 @@
.container-left-header {
display: flex;
span {
width: 12px;
height: 32px;
width: 8px;
height: 28px;
display: inline-block;
border-radius: 12px;
background: #8FB3FB;
margin-right: 16px;
position: relative;
top: 3px;
}
p {
line-height: 32px;
font-size: 32px;
font-size: 1.2rem;
font-weight: 600;
margin: 0;
}
@ -597,8 +606,8 @@
.basicr-back {
border-radius: 12px;
background: #fff;
padding: 0 28px;
box-shadow: 0 2px 12px 0 rgba(52, 52, 52, .1);
padding: 0 12px;
// box-shadow: 0 2px 12px 0 rgba(52, 52, 52, .1);
}
.container {
flex: 1;
@ -627,48 +636,65 @@
font-size: 16px;
}
}
.ant-checkbox-group .ant-checkbox-wrapper{
font-size: 18px;
}
.ant-radio-wrapper{
font-size: 18px;
}
.detail-form {
.detail-form-control{
display: flex;
align-items: center;
}
.ant-form-item-control{
width: 100%;
}
.ant-form-item {
display: flex;
justify-content: space-between;
align-items: center;
// justify-content: space-between;
align-items: left;
padding: 12px 0 !important;
margin-bottom: 0 !important;
.ant-form-item-label {
display: flex;
align-items: center;
label {
font-size: 24px !important;
}
width: 160px !important;
}
.ant-radio-wrapper {
height: 30px !important;
font-size: 20px !important;
// height: 30px !important;
font-size: 14px !important;
}
}
.ant-input{
width: 100%;
background: #f2f3f5;
border: 1px solid #f2f3f5;
}
.ant-select{
min-width: 300px;
display: flex;
justify-content: flex-end;
// width: 195px;
width: 100%;
}
.ant-radio-group span{
padding: 0;
}
.ant-select-selection--single{
background: #f2f3f5;
border: 1px solid #f2f3f5;
}
.ant-select-selection-selected-value{
padding-right: 10px;
}
.ant-select-selection__rendered{
line-height: 40px;
line-height: 32px;
max-width: 300px;
}
.ant-form-item-control-wrapper {
display: flex;
align-items: center;
justify-content: flex-end;
// justify-content: flex-end;
text-align: right;
}
@ -678,6 +704,11 @@
display: flex;
flex-direction: column;
margin-bottom: 20px;
width: 100%;
}
.adverse{
width: 100%;
float: left;
}
// 复选框
.ant-checkbox-group{
@ -710,13 +741,13 @@
align-items: center;
}
.operate {
font-size: 24px;
font-size: 1rem;
color: #000000;
padding-right: 12px;
}
.label-info{
color: #000000;
font-size: 20px;
font-size: 1rem;
}
}
}
@ -825,5 +856,25 @@
}
}
}
.thrombolysis-box{
.ant-steps-dot .ant-steps-item-content,
.ant-steps-dot.ant-steps-small .ant-steps-item-content{
width: 100px;
}
.ant-steps.ant-steps-horizontal {
.ant-steps-item-container .ant-steps-item-title{
font-size: 20px;
}
.ant-steps-item-finish,
.ant-steps-item-process{
.ant-steps-item-container .ant-steps-item-title{
font-size: 20px;
color: #3D3D3D;
}
}
}
}

28
src/config/code.js

@ -1279,6 +1279,19 @@ export const XGZL_CODE = {
inputType: 'number',
default: '',
},
'XGZL-CCWC-TIME': {
text: '穿刺完成时间',
type: 'datetime',
default: '',
valueType: 'string',
},
'XGZL-SH-SCXGZTSJ': {
text: '首次血管再通时间',
type: 'datetime',
default: '',
valueType: 'string',
},
'XGZL-SQ-TICI': {
text: 'TICI分级',
type: 'radio',
@ -1291,12 +1304,6 @@ export const XGZL_CODE = {
},
default: '',
},
'XGZL-CCWC-TIME': {
text: '穿刺完成时间',
type: 'datetime',
default: '',
valueType: 'string',
},
'XGZL-XGKT': {
text: '血管内开通方法',
type: 'checkbox',
@ -1312,12 +1319,7 @@ export const XGZL_CODE = {
'机械碎栓',
],
},
'XGZL-SH-SCXGZTSJ': {
text: '首次血管再通时间',
type: 'datetime',
default: '',
valueType: 'string',
},
'XGZL-BFZ': {
text: '手术并发症',
type: 'checkbox',
@ -1326,13 +1328,13 @@ export const XGZL_CODE = {
'无',
'内出血',
'动脉夹层',
'缺血性并发症/其他部位动脉闭塞',
'支架脱离',
'再闭塞',
'消化道出血',
'颈动脉海绵窦痿',
'再灌注损伤',
'其他',
'缺血性并发症/其他部位动脉闭塞',
],
},
'XGZL-BFZ-ELSE': {

53
src/layouts/BasicLayout.less

@ -12,26 +12,28 @@
background-color: #fff;
.layout-sider-header-row{
display: flex;
padding: .3rem 1rem;
height: 5vw;
line-height: 5vw;
// padding: .3rem 1rem;
height: 59px;
line-height: 59px;
box-sizing: border-box;
overflow: hidden;
justify-content: center;
border-bottom: 1px solid #eee;
.layout-sider-header-row-icon{
display: flex;
align-items: center;
.sider-header-icon{
display: inline-block;
text-align: center;
width: 2.8rem;
height: 2.8rem;
line-height: 2.8rem;
width: 50px;
height: 50px;
line-height: 50px;
background-color: #659aff;
border-radius: 50px;
overflow: hidden;
color: #FFFFFF;
font-size: 1.8rem;
font-size: 28px;
}
}
@ -44,6 +46,7 @@
}
.layout-sider-menu{
padding: 10px;
padding-top: 20px;
user-select: none; /* 禁止文本选择 */
-webkit-user-select: none; /* Safari */
-moz-user-select: none; /* Firefox */
@ -51,7 +54,7 @@
.menus{
.menu-item{
border-radius: .5rem;
color: #8a8c8e;
color: #666666;
overflow: hidden;
display: flex;
justify-content: flex-start;
@ -60,13 +63,15 @@
margin-bottom: .5rem;
cursor: pointer;
&.active{
color: #0576fe;
color: #FFFFFF;
box-shadow: 0 1px 6px rgba(238, 238, 238, 1);
background-color: #0576fe;
}
.menu-item-icon{
img{
width: 1.6rem;
height: 1.6rem;
width: 25px;
height: 25px;
}
}
.menu-item-name{
@ -74,6 +79,7 @@
text-align: left;
margin-left: .5rem;
text-align: center;
font-size: 22px;
}
}
@ -89,9 +95,11 @@
flex-direction: column;
.ant-layout-header{
padding: 0 !important;
height: 5vw !important;
line-height: 5vw !important;
height: 59px !important;
line-height: 59px !important;
background-color: #FFFFFF !important;
border-bottom: 1px solid #eee;
box-sizing: border-box;
.patient-box{
display: flex;
justify-content: flex-start;
@ -102,7 +110,7 @@
display: flex;
flex-direction: column;
align-items: center;
font-size: 1.5rem;
font-size: 22px;
font-weight: bold;
margin-right: 1rem;
}
@ -110,7 +118,7 @@
height: 100%;
display: flex;
align-items: center;
font-size: 1.5rem;
font-size: 18px;
.lable {
// color: #AAAAAA;
@ -129,7 +137,7 @@
}
.patient-action{
display: flex;
font-size: 1.5rem;
font-size: 22px;
padding: 0 .2rem;
align-items: center;
margin-left: 1rem;
@ -147,10 +155,10 @@
.layout-sider-header-row-title{
background-color: #fff;
height: 5vw;
line-height: 5vw;
height: 59px;
line-height: 59px;
flex: 1;
font-size: 0.75rem;
font-size: 22px;
margin-left: 0rem;
padding-left: 20px;
}
@ -196,7 +204,7 @@
text-align: left;
flex: 1;
margin-left: 1rem;
font-size: 1.4rem;
font-size: 20px;
color: #FFFFFF;
font-weight: bold;
.user-name{
@ -215,7 +223,7 @@
box-shadow: 5px 5px 6px rgba(238, 238, 238, 1);
border-radius: .6rem;
line-height: 2rem;
font-size: .8rem;
font-size: 16px;
.label{
color: #8a8c8e;
}
@ -224,7 +232,7 @@
.person-content{
margin-top: 3.5rem;
padding: 1.2rem 1rem;
font-size: .8rem;
font-size: 16px;
flex: 1;
.person-content-row{
border-bottom: 2px solid #eee;
@ -237,6 +245,7 @@
}
}
.person-footer{
margin-top: 200px;
padding: 1rem;
.person-footer-button {

39
src/layouts/BasicLayout.vue

@ -76,7 +76,7 @@
</div>
</a-drawer> -->
<a-drawer placement="left" :visible="visible" width="320" @close="onClose" :getContainer="false"
<a-drawer placement="left" :visible="visible" width="380" @close="onClose" :getContainer="false"
:closable="false" :wrap-style="{ position: 'absolute' }">
<div class="person-drawer">
<div class="person-header">
@ -137,6 +137,7 @@
loginInfo,
messageQuery,
saveAidRecord,
updateFirstAid
} from 'api';
import icon01 from '@/assets/images/slice/icon01.png'
import icon01H from '@/assets/images/slice/icon01H.png'
@ -213,6 +214,7 @@
},
methods: {
...mapMutations('patient', ['setPatientData', 'setTimerData', 'setPatientDataCur']),
...mapMutations('storm', ['setToken']),
handleClickMenu(item, index) {
if (index != this.current) {
this.current_ = this.current
@ -258,12 +260,14 @@
this.setPatientDataCur({});
if (this.$route.name != 'PatientList') this.$router.replace('/firstaid/patientList')
}
this.current = 0
this.current_ = 0
},
async handleTermin(finishStatus) {
const { firstAidId } = this.patientData;
let res = await saveAidRecord({
let res = await updateFirstAid({
firstAidId,
finishStatus
});
@ -308,18 +312,25 @@
content: '退出登录后回终止本次急救, 确认要退出登录吗?',
onOk: async () => {
const { firstAidId } = this.patientData;
let res = await saveAidRecord({
firstAidId,
finishStatus: 1
});
const { code, data, msg } = res;
if (code === 200) {
this.setPatientData({})
this.setTimerData({});
this.$router.replace('/login')
} else {
this.$message.error(msg);
if(firstAidId){
let res = await updateFirstAid({
firstAidId,
finishStatus: 1
});
const { code, data, msg } = res;
if (code === 200) {
this.setPatientData({})
this.setTimerData({});
this.setToken(undefined)
this.$router.replace('/login')
} else {
this.$message.error(msg);
}
}else{
this.setToken(undefined)
this.$router.replace('/login')
}
},
onCancel() {},
});

7
src/views/Patient/FirstInfo.vue

@ -799,6 +799,7 @@ p {
</style>
<style scoped>
>>> .adverse .ant-form-item {
height:150px;
display: flex;
justify-content: space-between;
}
@ -814,7 +815,7 @@ p {
}
>>> .adverse .ant-form-item-label label {
font-size: 22px !important;
font-size: 1.2rem !important;
}
>>> .adverse .ant-input {
@ -834,7 +835,7 @@ p {
>>> .ant-radio-wrapper {
text-align: left;
font-size: 24px;
font-size: 1.2rem;
height: 58px !important;
line-height: 58px !important;
box-sizing: border-box;
@ -847,7 +848,7 @@ p {
}
>>> .ant-collapse-header {
font-size: 24px;
font-size: 1.2rem;
padding: 10px 0 !important;
font-weight: bold;
text-align: left;

34
src/views/Patient/components/title.vue

@ -38,22 +38,22 @@
p{
margin: 0;
}
.container-left-header{
display: flex;
span{
width: 12px;
height: 32px;
display: inline-block;
border-radius:12px;
background: #8FB3FB;
margin-right: 16px;
}
p{
line-height: 32px;
font-size: 32px;
font-weight: 600;
margin: 0;
}
}
// .container-left-header{
// display: flex;
// span{
// width: 12px;
// height: 32px;
// display: inline-block;
// border-radius:12px;
// background: #8FB3FB;
// margin-right: 16px;
// }
// p{
// line-height: 32px;
// font-size: 1.2rem;
// font-weight: 600;
// margin: 0;
// }
// }
</style>

4
src/views/Patient/index.vue

@ -411,9 +411,9 @@
margin-bottom: .2rem;
.operater-title {
font-size: 1rem;
font-size: 20px;
font-weight: bold;
line-height: 1.6rem;
line-height: 32px;
}
}

2
src/views/before/Informed.vue

@ -481,7 +481,7 @@ export default {
height: 500px;
}
.info {
font-size: 28px;
font-size: 18px;
font-family: Source Han Sans CN, Source Han Sans CN-Bold;
font-weight: 700;
text-align: left;

2
src/views/before/UploadCT.vue

@ -196,7 +196,7 @@
flex: 1;
.info {
font-size: 28px;
font-size: 18px;
font-family: Source Han Sans CN, Source Han Sans CN-Bold;
font-weight: 700;
text-align: left;

2
src/views/before/UploadInformed.vue

@ -206,7 +206,7 @@ export default {
flex: 1;
.info {
font-size: 28px;
font-size: 18px;
font-family: Source Han Sans CN, Source Han Sans CN-Bold;
font-weight: 700;
text-align: left;

4
src/views/before/Video.vue

@ -77,7 +77,9 @@ export default {
<style scoped lang="less">
.Video-container {
padding-top: 36px;
h1{
font-size:18px !important;
}
video {
width: 100%;
}

6
src/views/document/index.vue

@ -390,13 +390,13 @@
display: flex;
justify-content: space-between;
margin-bottom: .2rem;
padding: 10px;
padding: 6px;
background-color: #fff;
.doc-list-title {
font-size: 1.2rem;
font-size: 20px;
font-weight: bold;
line-height: 35px;
line-height: 38px;
}
.doc-list-btns {}

2
src/views/login/index.vue

@ -96,7 +96,7 @@
created() {
const formData = localStorage.getItem('NICKY_REMEMBER_PWD')
if(formData) Object.assign(this.form, JSON.parse(formData))
this.queryUser()
// this.queryUser()
},
methods: {
...mapActions('storm', ['toLogin']),

35
src/views/thrombolysis/components/throm-before.vue

@ -59,7 +59,7 @@
.throm-step {
padding: 10px;
margin-right: .2rem;
margin-right:10px;
background-color: #fff;
.ant-steps-vertical .ant-steps-item-content {
@ -100,22 +100,22 @@
}
.throm-content {
height: calc(100vh - 126px);
height: calc(100vh - 138px);
overflow-y: auto;
padding: 10px;
flex: 1;
background-color: #fff;
.ant-form .ant-form-item-label label {
font-size: 0.85rem;
font-weight: bold;
// font-size: 0.85rem;
// font-weight: bold;
}
.ant-radio-button-wrapper {
padding: 0 18px;
height: 40px;
line-height: 40px;
font-size: 0.75rem !important;
font-size: 18px !important;
margin-right: 20px;
margin-bottom: 10px;
// background: #f9f9f9;
@ -140,18 +140,16 @@
.solid {
.ant-checkbox-wrapper {
// background: #f9f9f9;
min-width: 0 !important;
padding: 0 1.64vw;
height: 3.64vw;
line-height: 3.64vw;
font-size: 1.64vw !important;
margin-right: 1.82vw;
margin-bottom: 0.91vw;
border: 0.5px solid #a3acbf;
border-radius: 6px;
border-radius: 0.55vw;
vertical-align: middle;
margin-right: 20px;
margin-bottom: 10px;
font-size: 0.75rem !important;
line-height: 40px;
padding: 0 18px;
height: 40px;
min-width: 0 !important;
&.ant-checkbox-wrapper-checked {
background: #007AFF;
color: #fff;
@ -195,4 +193,11 @@
}
}
}
.throm-report .report-timeline{
margin-left:40px;
}
.ant-card-head-title{
font-size:24px;
color:#222;
}
</style>

2
src/views/thrombolysis/components/throm-before3.vue

@ -278,7 +278,7 @@
color: #ffffff;
text-align: center;
line-height: 40vh;
font-size: 2rem;
// font-size: 2rem;
}
.emtpy {

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

@ -573,7 +573,7 @@
.video-container {
.info {
font-size: 2rem;
font-size: 18px;
margin-bottom: 2rem;
}
}
@ -587,7 +587,7 @@
color: #ffffff;
text-align: center;
line-height: 50vh;
font-size: 2rem;
// font-size: 2rem;
}
.emtpy {
@ -612,7 +612,7 @@
flex: 1;
.info {
font-size: 28px;
font-size: 18px;
font-family: Source Han Sans CN, Source Han Sans CN-Bold;
font-weight: 700;
text-align: left;

3
src/views/thrombolysis/components/throm-ing-date.vue

@ -599,6 +599,7 @@ p {
</style>
<style scoped>
>>> .adverse .ant-form-item {
height:150px;
display: flex;
justify-content: space-between;
}
@ -647,7 +648,7 @@ p {
}
>>> .ant-collapse-header {
font-size: 24px;
font-size: 1.2rem;
padding: 10px 0 !important;
font-weight: bold;
text-align: left;

25
src/views/thrombolysis/components/throm-ing.vue

@ -159,7 +159,7 @@
}
.throm-content {
height: calc(100vh - 120px);
height: calc(100vh - 138px);
overflow-y: auto;
padding: 10px;
box-sizing: border-box;
@ -167,8 +167,8 @@
background-color: #fff;
.ant-form .ant-form-item-label label {
font-size: 0.85rem;
font-weight: bold;
// font-size: 0.85rem;
// font-weight: bold;
}
.ant-form-item {
@ -182,7 +182,7 @@
padding: 0 1.64vw;
height: 3.64vw;
line-height: 3.64vw;
font-size: 0.75rem !important;
font-size: 18px !important;
margin-right: 1.82vw;
margin-bottom: 0.91vw;
border: 0.5px solid #a3acbf;
@ -206,17 +206,16 @@
.solid {
.ant-checkbox-wrapper {
background: #f9f9f9;
min-width: 0 !important;
padding: 0 1.64vw;
height: 3.64vw;
line-height: 3.64vw;
font-size: 1.64vw !important;
margin-right: 1.82vw;
margin-bottom: 0.91vw;
border: 0.5px solid #a3acbf;
border-radius: 6px;
border-radius: 0.55vw;
vertical-align: middle;
margin-right: 20px;
margin-bottom: 10px;
font-size: 0.75vw !important;
line-height: 40px;
padding: 0 6px;
height: 40px;
min-width: 0 !important;
&.ant-checkbox-wrapper-checked {
background: #007AFF;

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

@ -578,7 +578,7 @@
.video-container {
.info {
font-size: 2rem;
font-size: 18px;
margin-bottom: 2rem;
}

6
src/views/thrombolysis/components/throm-interfere.vue

@ -90,7 +90,7 @@
}
.throm-content {
height: calc(100vh - 120px);
height: calc(100vh - 138px);
overflow-y: auto;
padding: 10px;
background-color: #fff;
@ -98,8 +98,8 @@
box-sizing: border-box;
.ant-form .ant-form-item-label label {
font-size: 1.5rem;
font-weight: bold;
// font-size: 1.5rem;
// font-weight: bold;
}
.ant-radio-button-wrapper {

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

@ -1,99 +1,56 @@
<template>
<div class="throm-report">
<div class="report-container">
<a-row :gutter="[6,6]">
<a-row >
<a-col :span="24">
<a-card class="report-card">
<div class="report-patient-box">
<div class="report-patient-info">
<div class="report-patient-avatar"><img src="@/assets/images/ys.png" alt="" /></div>
<div class="report-patient-name">
<div class="report-pname">{{patient.patientName}}</div>
<div class="reort-psan">
<span class="reort-psex">{{patient.patientGenderString || '-'}}</span>
<span class="reort-page">{{patient.patientAge || '-'}}</span>
<span class="reort-pnat">{{patient.patientNation || '-'}}</span>
</div>
</div>
</div>
<div class="report-patient-tags">
<div class="report-patient-tag">{{patient.firstAidZlTypeString || '-'}}</div>
<div class="report-patient-tag">发病时间{{queryItemInfo('XGZL-CCWC-TIME').toString() ||
'-'}}</div>
</div>
<div class="report-patient-row">
<span class="report-patient-rowlabel">联系方式: </span>
<span class="report-patient-rowtext">{{patient.patientContract || '-'}}</span>
</div>
<div class="report-patient-row">
<span class="report-patient-rowlabel">身份证: </span>
<span
class="report-patient-rowtext">{{patient.patientIdCardNo ? utils.maskIDCard(patient.patientIdCardNo || '') : '-'}}</span>
</div>
</div>
<a-card class="report-card baseInfo" title="患者信息">
<a-col :span='8'>
<a-row><div class="leftTitle">姓名</div><div class="rightValue">{{patient.patientName}}</div></a-row>
<a-row><div class="leftTitle">民族</div><div class="rightValue">{{patient.patientNation || '-'}}</div></a-row>
<a-row><div class="leftTitle">诊断</div><div class="rightValue">{{patient.firstAidZlTypeString || '-'}}</div></a-row>
</a-col>
<a-col :span='8' class="midItem">
<a-row><div class="leftTitle">性别</div><div class="rightValue">{{patient.patientGenderString || '-'}}</div></a-row>
<a-row><div class="leftTitle">身份证号</div><div class="rightValue">{{patient.patientIdCardNo ? utils.maskIDCard(patient.patientIdCardNo || '') : '-'}}</div></a-row>
<a-row><div class="leftTitle">发病时间</div><div class="rightValue">{{queryItemInfo('XGZL-CCWC-TIME').toString() ||'-'}}</div></a-row>
</a-col>
<a-col :span='8'>
<a-row><div class="leftTitle">年龄</div><div class="rightValue">{{patient.patientAge || '-'}}</div></a-row>
<a-row><div class="leftTitle">联系方式</div><div class="rightValue">{{patient.patientContract || '-'}}</div></a-row>
</a-col>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card">
<div class="report-treat-box">
<div class="report-treat-row1">
<span class="report-treat-rowlabel">入院mRS评分: </span>
<span class="report-treat-rowtext">
{{ getFirstInfo['RYPG-MRS'] || '暂无' }}
</span>
</div>
<div class="report-treat-row1">
<span class="report-treat-rowlabel">入院NIHSS评分: </span>
<span class="report-treat-rowtext">
{{ getFirstInfo['RYPG-NIHSS'] || '暂无' }}
</span>
</div>
<div class="report-treat-row1">
<span class="report-treat-rowlabel">舒张压/收缩压: </span>
<span class="report-treat-rowtext">
<span>{{getFirstInfo['RYPG-DIASTOLIC-PRESSURE'] ? (getFirstInfo['RYPG-DIASTOLIC-PRESSURE'] + 'mmHg') : '暂无'}}</span>
<a-card class="report-card baseInfo" title="病情评估">
<a-col :span='8'>
<a-row><div class="leftTitle">入院mRS评分</div><div class="rightValue">{{ getFirstInfo['RYPG-MRS'] || '暂无' }}</div></a-row>
<a-row><div class="leftTitle">入院NIHSS评分</div><div class="rightValue">{{ getFirstInfo['RYPG-NIHSS'] || '暂无' }}</div></a-row>
<a-row><div class="leftTitle">舒张压/收缩压</div><div class="rightValue">
<span>{{getFirstInfo['RYPG-DIASTOLIC-PRESSURE'] ? (getFirstInfo['RYPG-DIASTOLIC-PRESSURE'] + 'mmHg') : '暂无'}}</span>
<span> / </span>
<span>{{getFirstInfo['RYPG-SYSTOLIC-PRESSURE'] ? (getFirstInfo['RYPG-SYSTOLIC-PRESSURE'] + 'mmHg') : '暂无'}}</span>
</span>
</div>
<div class="report-treat-row2">
<span class="report-treat-rowlabel">身高: </span>
<span class="report-treat-rowtext">
{{ getFirstInfo['RYPG-HEIGHT'] ? getFirstInfo['RYPG-HEIGHT'] + 'CM' : '暂无' }}
</span>
<span class="report-treat-rowlabel">体重: </span>
<span class="report-treat-rowtext">
{{ getFirstInfo['RYPG-WEIGHT'] ? getFirstInfo['RYPG-WEIGHT'] + 'KG' : '暂无' }}
</span>
<span class="report-treat-rowlabel">BMI: </span>
<span class="report-treat-rowtext">{{ getFirstInfo['RYPG-BMI'] || '暂无' }}</span>
<span class="report-treat-rowlabel">血糖: </span>
<span class="report-treat-rowtext">
{{ getFirstInfo['RYPG-PULSE'] ? getFirstInfo['RYPG-PULSE'] + '次/分' : '暂无' }}
</span>
</div>
<div class="report-treat-row2">
<span class="report-treat-rowlabel">选用平车: </span>
<span class="report-treat-rowtext">{{patient.carNo || '-'}}</span>
</div>
<div class="report-treat-row2">
<span class="report-treat-rowlabel">溶栓药物及计量: </span>
<span class="report-treat-rowtext" style="height: 64px;">
溶栓药物: {{getFirstInfo['JMRS-RSYW'] || '暂无'}}
静滴剂量: {{getFirstInfo['JMRS-JDJL'] || '暂无'}}
团注剂量: {{getFirstInfo['JMRS-TZJL'] || '暂无'}}
</span>
</div>
<div class="report-treat-row2">
<span class="report-treat-rowlabel">绿道状态: </span>
<span class="report-treat-rowtext"><a-switch checked></a-switch></span>
</div>
</div>
</div></a-row>
<a-row><div class="leftTitle">选用平车</div><div class="rightValue">{{patient.carNo || '-'}}</div></a-row>
<a-row><div class="leftTitle">绿道状态</div><div class="rightValue"><span class="report-treat-rowtext"><a-switch checked></a-switch></span></div></a-row>
</a-col>
<a-col :span='8' class="midItem">
<a-row><div class="leftTitle">身高</div><div class="rightValue">{{ getFirstInfo['RYPG-HEIGHT'] ? getFirstInfo['RYPG-HEIGHT'] + 'CM' : '暂无' }}</div></a-row>
<a-row><div class="leftTitle">体重</div><div class="rightValue">{{ getFirstInfo['RYPG-WEIGHT'] ? getFirstInfo['RYPG-WEIGHT'] + 'KG' : '暂无' }}</div></a-row>
<a-row><div class="leftTitle">BMI</div><div class="rightValue">{{ getFirstInfo['RYPG-BMI'] || '暂无' }}</div></a-row>
<a-row><div class="leftTitle">血糖</div><div class="rightValue">{{ getFirstInfo['RYPG-PULSE'] ? getFirstInfo['RYPG-PULSE'] + '次/分' : '暂无' }}</div></a-row>
</a-col>
<a-col :span='8'>
<a-row><div class="leftTitle">选用平车</div><div class="rightValue">{{patient.carNo || '-'}}</div></a-row>
<a-row><div class="leftTitle">溶栓药物</div><div class="rightValue">: {{getFirstInfo['JMRS-RSYW'] || '暂无'}}</div></a-row>
<a-row><div class="leftTitle">静滴剂量</div><div class="rightValue">: {{getFirstInfo['JMRS-JDJL'] || '暂无'}}</div></a-row>
<a-row><div class="leftTitle">团注剂量</div><div class="rightValue">: {{getFirstInfo['JMRS-TZJL'] || '暂无'}}</div></a-row>
</a-col>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card">
<a-card class="report-card" title="溶栓状态">
<div class="report-timeline">
<a-steps progress-dot :current="currentIndex" direction="vertical">
<template v-for="(item, index) in getNodeList">
@ -116,7 +73,7 @@
<a-col :span="24">
<a-card class="report-card" title="急诊溶栓记录">
<a slot="extra" id="exportFirst" href="JavaScript:;" @click="handleExportRsPdf">导出</a>
<div class="report-card-content">
<div class="report-card-content" style="min-height: 300px;">
<div class="record-content" v-html="recordData"></div>
<div class="emtpy" v-if="!recordData">
<a-empty :image="emptyImage" description="暂无溶栓记录" />
@ -402,7 +359,7 @@
<a-col :span="24">
<a-card class="report-card" title="介入手术记录">
<a slot="extra" href="javascript:;" @click="handleExportJrPdf">导出</a>
<div class="doc-ct-content">
<div class="doc-ct-content" style="min-height: 300px;">
<div class="record-content" v-html="operaData"></div>
<div class="emtpy" v-if="!operaData">
<a-empty :image="emptyImage" description="暂无手术记录" />
@ -412,12 +369,15 @@
</a-col>
</a-row>
</div>
<div class="throm-common-button">
<a-button :disabled="writeAble" class="" type="primary" size="large" block
@click="handleExportAll">打印</a-button>
<!-- <a-button :disabled="writeAble" class="" block type="primary" size="large"
@click="onSubmit">导出</a-button> -->
<div style="background-color: #fff;padding-bottom: 12px;border-top: 1px solid #eee;">
<div class="throm-common-button" >
<a-button :disabled="writeAble" class="" type="primary" size="large" block
@click="handleExportAll">打印</a-button>
<!-- <a-button :disabled="writeAble" class="" block type="primary" size="large"
@click="onSubmit">导出</a-button> -->
</div>
</div>
<throm-report-dnt ref="dnt"></throm-report-dnt>
<throm-report-record ref="record"></throm-report-record>
<throm-report-observe ref="observe"></throm-report-observe>
@ -883,20 +843,13 @@
<style lang="less" scoped>
.throm-report {
// padding-top: 1rem;
.report-container {
height: calc(100vh - 196px);
overflow-y: auto;
overflow-x: hidden;
// padding: 10px;
}
.report-card {
border-color: rgba(0, 0, 0, 0.09);
// border-radius: .8rem;
box-shadow: 0 0.18vw 0.73vw rgba(0, 0, 0, 0.09);
// padding: 1rem;
box-sizing: border-box;
font-size: 1rem;
@ -1011,13 +964,6 @@
}
.btns {
padding: 12px 15% 0;
background-color: #fff;
margin-top: 6px;
}
}
</style>
<style lang="less">
@ -1031,13 +977,7 @@
}
.report-timeline {
// height: 424px;
overflow-y: auto;
// .ant-steps-vertical .ant-steps-item-content {
// // min-height: 4.38rem;
// width: 88%;
// }
.ant-steps {
height: 100%;
padding-bottom: 20px;
@ -1070,6 +1010,40 @@
}
}
}
.ant-card-bordered {
border: none;
.ant-card-head {
border-bottom: none;
}
}
.baseInfo{
line-height:32px;
.ant-col-8{
padding-left:30px;
padding-right:30px;
}
.leftTitle{
float:left;
font-size:18px;
color:#888888;
}
.rightValue{
float:right;
font-size:18px;
color:#222;
}
.midItem{
border-left:1px solid #eee;
border-right:1px solid #eee;
}
}
.report-rsgcb td{
font-size:18px;
color:#3D3D3D;
}
}
</style>

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

@ -3,86 +3,91 @@
<div class="basic-content">
<!-- 患者基本信息 -->
<div class='basicr-back'>
<a-form class="detail-form" :form="baseForm" labelWitch="260px" :labelCol="{span: 6}"
:wrapperCol="{span: 16}">
<a-form-item label="扫描身份证">
<div class="detail-form-control">
<a-upload :disabled="writeAble" class="idcard-upload" accept=".img,.png,.jpg"
:before-upload="handleBeforeUpload" :showUploadList="false" name="file"
:multiple="false" :customRequest="handleUploadAdd">
<a-icon type="scan" class="fz24" />
</a-upload>
</div>
</a-form-item>
<a-form-item label="姓名">
<div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientName']" style="width: 448px;"
@blur="onBaseChange($event.target.value, 'patientName')" placeholder='请输入' />
</div>
</a-form-item>
<a-form-item label="性别">
<div class="detail-form-control">
<a-radio-group :disabled="writeAble" v-decorator="['patientGender']" style="width: 448px;"
@change="onBaseChange($event.target.value, 'patientGender')">
<a-radio :value='0'> </a-radio>
<a-radio :value='1'> </a-radio>
</a-radio-group>
</div>
</a-form-item>
<a-form-item label="民族">
<div class="detail-form-control">
<a-select :disabled="writeAble" ref="select" v-decorator="['patientNation']"
style="display: block;width: 448px;"
@change="handleChange($event, 'patientNation', 'default')" placeholder='请选择'>
<a-select-option v-for="item in nationList" :key="item" :value="item">
{{item}}
</a-select-option>
</a-select>
</div>
</a-form-item>
<a-form-item label="身份证号">
<div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientIdCardNo']" placeholder='请输入'
@blur="onBaseChange($event.target.value, 'patientIdCardNo')" style="width: 448px;" />
</div>
</a-form-item>
<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">
<!-- radio -->
<a-radio-group :disabled="writeAble" v-if="k.type==='radio'" style="width: 448px;"
v-decorator="[
v,
{initialValue: codeForm[k] },
]" @change="handleChange($event.target.value, v)">
<a-radio v-for="(item,index) in k.range" :key="item" :value="item">
{{item}}
</a-radio>
</a-radio-group>
<!-- input -->
<a-input :disabled="writeAble" v-if="k.type==='input'" :type="k.inputType" v-decorator="[
v]" @blur="handleChange($event.target.value, v)" placeholder='请输入' style="width: 448px;">
</a-input>
<!-- datetime -->
<a-input :disabled="writeAble" v-if="k.type==='datetime'" readOnly @click="selectOption(v)"
style="width: 448px;" v-decorator="[
v,
]" placeholder='请选择'>
</a-input>
<a-select :disabled="writeAble" v-if="k.type==='select'" v-decorator="[
v]" @change="handleChange($event, v)" placeholder='请选择' style="display: block;width: 448px;">
<a-select-option v-for="item in k.range" :key="item" :value="item">
{{item}}
</a-select-option>
</a-select>
</div>
</a-form-item>
<a-form class="detail-form" :form="baseForm">
<a-form-item label="扫描身份证">
<div class="detail-form-control">
<a-upload :disabled="writeAble" class="idcard-upload" accept=".img,.png,.jpg"
:before-upload="handleBeforeUpload" :showUploadList="false" name="file"
:multiple="false" :customRequest="handleUploadAdd">
<a-icon type="scan" class="fz24" />
</a-upload>
</div>
</a-form-item>
<a-form-item label="姓名">
<div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientName']"
@blur="onBaseChange($event.target.value, 'patientName')" placeholder='请输入' />
</div>
</a-form-item>
<a-form-item label="性别">
<div class="detail-form-control">
<a-radio-group :disabled="writeAble" v-decorator="['patientGender']"
@change="onBaseChange($event.target.value, 'patientGender')">
<a-radio :value='0'> </a-radio>
<a-radio :value='1'> </a-radio>
</a-radio-group>
</div>
</a-form-item>
<a-form-item label="民族">
<div class="detail-form-control">
<a-select :disabled="writeAble" ref="select" v-decorator="['patientNation']"
@change="handleChange($event, 'patientNation', 'default')" placeholder='请选择'>
<a-select-option v-for="item in nationList" :key="item" :value="item">
{{item}}
</a-select-option>
</a-select>
</div>
</a-form-item>
<a-form-item label="身份证号">
<div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientIdCardNo']" placeholder='请输入'
@blur="onBaseChange($event.target.value, 'patientIdCardNo')" />
</div>
</a-form-item>
<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">
<!-- radio -->
<a-radio-group :disabled="writeAble" v-if="k.type==='radio'"
v-decorator="[
v,
{initialValue: codeForm[k] },
]" @change="handleChange($event.target.value, v)">
<a-radio v-for="(item,index) in k.range" :key="item" :value="item">
{{item}}
</a-radio>
</a-radio-group>
<!-- input -->
<a-input :disabled="writeAble" v-if="k.type==='input'" :type="k.inputType" v-decorator="[
v]" @blur="handleChange($event.target.value, v)" placeholder='请输入'>
</a-input>
<!-- datetime -->
<a-input :disabled="writeAble" v-if="k.type==='datetime'" readOnly @click="selectOption(v)"
v-decorator="[
v,
]" placeholder='请选择'>
</a-input>
<a-select :disabled="writeAble" v-if="k.type==='select'" v-decorator="[
v]" @change="handleChange($event, v)" placeholder='请选择' style="display: block;">
<a-select-option v-for="item in k.range" :key="item" :value="item">
{{item}}
</a-select-option>
</a-select>
</div>
</a-form-item>
</a-form>
</div>
<!-- 疑似诊断 -->
<div class='diagnosis'>
<v-head text='疑似诊断'></v-head>
<div class='back-ff'>
<a-radio-group :disabled="writeAble" v-model:value="firstAidZlType" style="width: 448px;"
<a-radio-group :disabled="writeAble" v-model:value="firstAidZlType"
@change="onBaseChange($event.target.value, 'firstAidZlType')">
<a-radio :style="radioStyle" v-for="(k,v) in FIRSTAIDZLTYPE_DICT" :key="v"
:value="v">{{k}}</a-radio>
@ -402,6 +407,29 @@
margin-top: 20px;
padding: 0 10%;
}
.basicr-back,.diagnosis{
width:100%;
float:left;
}
.basicr-back .ant-form-item:nth-child(odd){
width:48%;
float:left;
}
.basicr-back .ant-form-item:nth-child(even){
width:49%;
float:left;
}
.basicr-back .ant-form-item:nth-child(odd) {
border-right: 1px solid #ddd;
border-radius: 0;
padding-right:2% !important;
margin-right:2% !important;
}
.detail-form .ant-form-item .ant-form-item-label{
width: 170px;
}
</style>
<style scoped>
>>>.ant-btn-link {
@ -412,11 +440,8 @@
>>>.ant-radio-wrapper {
text-align: left;
font-size: 24px;
height: 58px !important;
line-height: 58px !important;
box-sizing: border-box;
border-bottom: 1px solid #f0f0f0 !important;
/* border-bottom: 1px solid #f0f0f0 !important; */
}
>>>.ant-col.ant-form-item-control-wrapper {
@ -428,17 +453,17 @@
}
>>>.ant-radio {
font-size: 24px;
/* font-size: 24px; */
}
>>>.ant-radio-inner::after {
width: 16px;
height: 16px;
/* width: 16px;
height: 16px; */
}
>>>.ant-radio-inner {
width: 24px;
height: 24px;
/* width: 24px;
height: 24px; */
}
>>>.container-left-header {
@ -446,9 +471,13 @@
}
.back-ff {
box-shadow: 0 2px 12px 0 rgba(52, 52, 52, .1);
/* box-shadow: 0 2px 12px 0 rgba(52, 52, 52, .1); */
background: #fff;
padding: 10px 20px;
border-radius: 12px;
}
.diagnosis .ant-radio-wrapper{
float:left;
font-size:18px;
}
</style>

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

@ -45,8 +45,9 @@
</a-form-item>
</a-form>
</div>
<v-head text="主要治疗操作"></v-head>
<div class="basicr-back">
<v-head text="主要治疗操作"></v-head>
<a-form class="detail-form" :form="firstForm">
<a-form-item class="jmrs-form-item" v-for="(k, v) in JMRS_CODE" :key="v"
v-if="computeShow(v, codeForm)">
@ -172,9 +173,10 @@
</div>
</a-form>
</div>
<v-head text="血管内治疗"></v-head>
<div class="basicr-back">
<a-form class="detail-form" :form="firstForm">
<v-head text="血管内治疗"></v-head>
<a-form class="detail-form treatmentItem" :form="firstForm">
<a-form-item class="jmrs-form-item" v-for="(k, v) in XGZL_CODE" :key="v"
v-if="computeShow(v, codeForm)">
<div class="jmrs-form-item-con" :class="k.type">
@ -189,7 +191,7 @@
<a-input :disabled="writeAble" v-if="k.type === 'text'" type="text" v-decorator="[v]"
readOnly />
<!-- radio -->
<a-radio-group :disabled="writeAble" v-if="k.type === 'radio'" v-decorator="[v]"
<a-radio-group class="radioGroupItem" :disabled="writeAble" v-if="k.type === 'radio'" v-decorator="[v]"
@change="
handleChange($event.target.value, v)
">
@ -631,9 +633,42 @@
.adverse {
padding: 15px 0;
}
.basicr-back .ant-form-item{
width:48%;
float:left;
height:60px;
}
.basicr-back .ant-form-item:nth-child(odd) {
border-right: 1px solid #ddd;
border-radius: 0;
padding-right:2% !important;
margin-right:2% !important;
}
.treatmentItem .ant-form-item:nth-child(9),.treatmentItem .ant-form-item:nth-child(10),.treatmentItem .ant-form-item:nth-child(11){
width:100%;
float:left;
border:none;
}
.treatmentItem .ant-form-item:nth-child(10),.treatmentItem .ant-form-item:nth-child(11){
height:150px !important;
}
.basicr-back .ant-form-item .ant-form-item-label{
// width: 100px !important;
}
.treatmentItem .ant-form-item:nth-child(9).ant-form-item .ant-form-item-label{
// width: 100px !important;
flex: none;
margin-right: 20px;
}
.radioGroupItem:nth-of-type(2){
position: relative;
left: -180px;
}
</style>
<style scoped>
>>>.adverse .ant-form-item {
>>>.adverse .ant-form-item:nth-child(2) {
height:150px !important;
display: flex;
justify-content: space-between;
}
@ -649,7 +684,7 @@
}
>>>.adverse .ant-form-item-label label {
font-size: 22px !important;
font-size: 1.2rem !important;
}
>>>.adverse .ant-input {
@ -669,11 +704,11 @@
>>>.ant-radio-wrapper {
text-align: left;
font-size: 24px;
height: 58px !important;
line-height: 58px !important;
font-size: 18px;
/* height: 58px !important;
line-height: 58px !important; */
box-sizing: border-box;
border-bottom: 1px solid #f0f0f0 !important;
/* border-bottom: 1px solid #f0f0f0 !important; */
}
>>>.ant-collapse {
@ -682,7 +717,7 @@
}
>>>.ant-collapse-header {
font-size: 24px;
font-size: 1.2rem;
padding: 10px 0 !important;
font-weight: bold;
text-align: left;
@ -712,22 +747,9 @@
border-bottom: none !important;
}
>>>.ant-radio {
font-size: 24px;
}
>>>.ant-radio-inner::after {
width: 16px;
height: 16px;
}
>>>.ant-radio-inner {
width: 24px;
height: 24px;
}
.back-ff {
box-shadow: 0 2px 12px 0 rgba(52, 52, 52, 0.1);
/* box-shadow: 0 2px 12px 0 rgba(52, 52, 52, 0.1); */
background: #fff;
padding: 10px 20px;
border-radius: 12px;

16
src/views/thrombolysis/components/throm-result.vue

@ -58,8 +58,7 @@
<style lang="less">
.throm-result {
display: flex;
.throm-step {
.throm-step {
padding: 10px;
margin-right: .2rem;
background-color: #fff;
@ -93,7 +92,7 @@
}
.throm-content {
height: calc(100vh - 120px);
height: calc(100vh - 138px);
overflow-y: auto;
padding: 10px;
box-sizing: border-box;
@ -101,22 +100,23 @@
background-color: #fff;
.ant-form .ant-form-item-label label {
font-size: 0.85rem;
font-weight: bold;
// font-size: 0.85rem;
// font-weight: bold;
}
.ant-form-item {
background: #f9f9f9;
// background: #f9f9f9;
margin-bottom: .5rem;
padding: 12px;
border-radius: 4px;
height:60px;
}
.ant-radio-button-wrapper {
padding: 0 1.64vw;
height: 3.64vw;
line-height: 3.64vw;
font-size: 0.75rem !important;
// font-size: 0.75rem !important;
margin-right: 1.82vw;
margin-bottom: 0.91vw;
border: 0.5px solid #a3acbf;
@ -140,7 +140,7 @@
.solid {
.ant-checkbox-wrapper {
background: #f9f9f9;
// background: #f9f9f9;
border: 0.5px solid #a3acbf;
border-radius: 6px;
vertical-align: middle;

5
src/views/thrombolysis/index.vue

@ -118,9 +118,12 @@
.thrombolysis-container {
.thrombolysis-box {
.ant-steps {
margin-bottom: .2rem !important;
margin-bottom: 10px !important;
background-color: #fff;
}
}
}
.throm-step{
margin-right:10px !important;
}
</style>
Loading…
Cancel
Save