New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>订åç¼å·ï¼{{ orderInfo.orderNo }}</span> |
| | | </div> |
| | | |
| | | <el-row :gutter="20"> |
| | | <!-- 订ååºæ¬ä¿¡æ¯ --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"><b>订ååºæ¬ä¿¡æ¯</b></div> |
| | | <el-descriptions :column="isMobile ? 1 : 2" border> |
| | | <el-descriptions-item label="å¤é¨ç¼å·">{{ orderInfo.externalNo }}</el-descriptions-item> |
| | | <el-descriptions-item label="ä¸åæ¶é´">{{ orderInfo.orderTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="订åç¶æ">{{ orderInfo.orderStatus }}</el-descriptions-item> |
| | | <el-descriptions-item label="è®¢åæ¥æº">{{ orderInfo.orderSource }}</el-descriptions-item> |
| | | <el-descriptions-item label="åæ®ç¶æ">{{ orderInfo.documentStatus }}</el-descriptions-item> |
| | | <el-descriptions-item label="æäº¤ä»·æ ¼">{{ orderInfo.price }}å
</el-descriptions-item> |
| | | <el-descriptions-item label="客æ·é¢çº¦æ¶é´">{{ orderInfo.appointmentTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ´¾åæ¶é´">{{ orderInfo.dispatchTime }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <!-- 客æ·ä¿¡æ¯ --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"><b>客æ·ä¿¡æ¯</b></div> |
| | | <el-descriptions :column="isMobile ? 1 : 2" border> |
| | | <el-descriptions-item label="è系人">{{ patientInfo.contactName }}</el-descriptions-item> |
| | | <el-descriptions-item label="èç³»çµè¯">{{ patientInfo.contactPhone }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ£è
å§å">{{ patientInfo.patientName }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ£è
å¹´é¾">{{ patientInfo.patientAge }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ£è
æ§å«">{{ patientInfo.patientGender }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ£è
ä½é">{{ patientInfo.patientWeight }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <!-- æå¡è¦æ± --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"><b>æå¡è¦æ±</b></div> |
| | | <el-descriptions :column="1" border> |
| | | <el-descriptions-item label="åºåå°">{{ serviceInfo.startAddress }}</el-descriptions-item> |
| | | <el-descriptions-item label="åºåå°ä½ç½®">{{ serviceInfo.startLocation }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç®çå°">{{ serviceInfo.endAddress }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç®çå°ä½ç½®">{{ serviceInfo.endLocation }}</el-descriptions-item> |
| | | <el-descriptions-item label="转è¿éç¨">{{ serviceInfo.distance }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¬æ¬æå¡">{{ serviceInfo.liftService }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¬æ¬æ¥¼å±">{{ serviceInfo.liftFloor }}</el-descriptions-item> |
| | | <el-descriptions-item label="廿¤è¦æ±">{{ serviceInfo.medicalStaff }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <!-- ç
å --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"><b>ç
å</b></div> |
| | | <el-descriptions :column="1" border> |
| | | <el-descriptions-item label="æ¯å¦ææè¯">{{ medicalInfo.hasConsciousness }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç
人æ
åµ">{{ medicalInfo.patientCondition }}</el-descriptions-item> |
| | | <el-descriptions-item label="使ç¨å¼å¸æº">{{ medicalInfo.useVentilator }}</el-descriptions-item> |
| | | <el-descriptions-item label="è¯æç
æ
">{{ medicalInfo.diagnosis }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <!-- è°åº¦ä¿¡æ¯ --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"><b>è°åº¦ä¿¡æ¯</b></div> |
| | | <el-descriptions :column="isMobile ? 1 : 2" border> |
| | | <el-descriptions-item label="è°åº¦æ¶é´">{{ dispatchInfo.dispatchTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="è°åº¦ç¶æ">{{ dispatchInfo.dispatchStatus }}</el-descriptions-item> |
| | | <el-descriptions-item label="叿º">{{ dispatchInfo.driver }}</el-descriptions-item> |
| | | <el-descriptions-item label="车ç">{{ dispatchInfo.carNo }}</el-descriptions-item> |
| | | <el-descriptions-item label="å»ç">{{ dispatchInfo.doctor }}</el-descriptions-item> |
| | | <el-descriptions-item label="èä½">{{ dispatchInfo.doctorPosition }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¤å£«">{{ dispatchInfo.nurse }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <!-- æ¶æ¬¾ä¿¡æ¯ --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"><b>æ¶æ¬¾ä¿¡æ¯</b></div> |
| | | <el-table |
| | | :data="paymentInfo" |
| | | border |
| | | style="width: 100%" |
| | | :size="isMobile ? 'mini' : 'medium'" |
| | | class="responsive-table"> |
| | | <el-table-column prop="paymentNo" label="æ¶æ¬¾æµæ°´" min-width="120" /> |
| | | <el-table-column prop="paymentTime" label="æ¶æ¬¾æ¶é´" min-width="140" /> |
| | | <el-table-column prop="amount" label="éé¢" min-width="100" /> |
| | | <el-table-column prop="method" label="æ¹å¼" min-width="100" /> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="120" /> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- è¿è¡æ
åµ --> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-card class="inner-card"> |
| | | <div slot="header"> |
| | | <b>è¿è¡æ
åµ</b> |
| | | <span style="float: right">粤A102311</span> |
| | | </div> |
| | | <el-table |
| | | :data="operationInfo" |
| | | border |
| | | style="width: 100%" |
| | | :size="isMobile ? 'mini' : 'medium'" |
| | | class="responsive-table"> |
| | | <el-table-column prop="status" label="åºè½¦ç¶æ" min-width="100" /> |
| | | <el-table-column prop="operator" label="æä½äºº" min-width="100" /> |
| | | <el-table-column prop="operateTime" label="æä½æ¶é´" min-width="140" /> |
| | | <el-table-column prop="location" label="åæ ä½ç½®" min-width="200" show-overflow-tooltip /> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getOrderDetail } from '@/api/system/order' |
| | | |
| | | export default { |
| | | name: 'OrderDetail', |
| | | data() { |
| | | return { |
| | | // åå§å为空对象 |
| | | orderInfo: {}, |
| | | patientInfo: {}, |
| | | serviceInfo: {}, |
| | | medicalInfo: {}, |
| | | dispatchInfo: {}, |
| | | paymentInfo: [], |
| | | operationInfo: [], |
| | | screenWidth: document.documentElement.clientWidth // å±å¹å®½åº¦ |
| | | } |
| | | }, |
| | | computed: { |
| | | isMobile() { |
| | | return this.screenWidth <= 768 |
| | | } |
| | | }, |
| | | created() { |
| | | const orderId = this.$route.params.id |
| | | this.getDetail(orderId) |
| | | // çå¬çªå£å¤§å°åå |
| | | window.addEventListener('resize', this.handleResize) |
| | | }, |
| | | beforeDestroy() { |
| | | // ç»ä»¶éæ¯åç§»é¤çå¬å¨ |
| | | window.removeEventListener('resize', this.handleResize) |
| | | }, |
| | | methods: { |
| | | /** è·å订å详æ
*/ |
| | | getDetail(orderId) { |
| | | getOrderDetail(orderId).then(response => { |
| | | const { data } = response |
| | | // æ ¹æ®å端è¿åçæ°æ®ç»æè®¾ç½®å个对象çå¼ |
| | | this.orderInfo = data.orderInfo || {} |
| | | this.patientInfo = data.patientInfo || {} |
| | | this.serviceInfo = data.serviceInfo || {} |
| | | this.medicalInfo = data.medicalInfo || {} |
| | | this.dispatchInfo = data.dispatchInfo || {} |
| | | this.paymentInfo = data.paymentInfo || [] |
| | | this.operationInfo = data.operationInfo || [] |
| | | }) |
| | | }, |
| | | // å¤ççªå£å¤§å°åå |
| | | handleResize() { |
| | | this.screenWidth = document.documentElement.clientWidth |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .inner-card { |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-card ::v-deep .el-card__header { |
| | | padding: 10px 20px; |
| | | background-color: #f5f7fa; |
| | | } |
| | | .el-descriptions { |
| | | margin: 10px 0; |
| | | } |
| | | .el-descriptions-item { |
| | | margin-bottom: 0; |
| | | } |
| | | /* ååºå¼è¡¨æ ¼æ ·å¼ */ |
| | | .responsive-table { |
| | | width: 100%; |
| | | overflow-x: auto; |
| | | } |
| | | @media screen and (max-width: 768px) { |
| | | .el-card { margin: 10px 0; } |
| | | .el-row { margin-left: 0 !important; margin-right: 0 !important; } |
| | | .el-col { padding-left: 0 !important; padding-right: 0 !important; } |
| | | .box-card { border-radius: 0; } |
| | | .inner-card { margin-bottom: 10px; } |
| | | .el-descriptions-item { padding: 8px !important; } |
| | | .el-descriptions-item__label { width: 100px !important; } |
| | | } |
| | | </style> |