| | |
| | | <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.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.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-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-item label="诊断病情">{{ medicalInfo.complaint }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | |
| | | <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.carLicense }}</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> |
| | |
| | | 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-column prop="id" label="收款流水" min-width="120" /> |
| | | <el-table-column |
| | | prop="paidMoneyTime" |
| | | label="收款时间" |
| | | min-width="140" |
| | | :formatter="(row, column, cellValue) => formatDateTime(cellValue)" |
| | | /> |
| | | <el-table-column prop="paidMoney" label="金额(元)" min-width="100" /> |
| | | <el-table-column prop="vtext" label="方式" min-width="100" /> |
| | | <el-table-column prop="paidMoneyMono" label="备注" min-width="120" /> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 运行情况 --> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | |
| | | <!-- 订单情况 --> |
| | | <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> |
| | | <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> |
| | | <div slot="header"><b>详情</b></div> |
| | | <el-descriptions :column="isMobile ? 1 : 2" border> |
| | | <el-descriptions-item label="服务评价">{{ otherInfo.serviceOrdVisit }}</el-descriptions-item> |
| | | <el-descriptions-item label="发票状态">{{ otherInfo.invoiceStatus }}</el-descriptions-item> |
| | | <el-descriptions-item label="知情同意书"> |
| | | <div v-if="otherInfo.imageUrls && otherInfo.imageUrls.length > 0" class="image-container"> |
| | | <el-image |
| | | v-for="image in otherInfo.imageUrls" |
| | | :key="image" |
| | | :src="image" |
| | | :preview-src-list="otherInfo.imageUrls" |
| | | class="preview-image" |
| | | /> |
| | | </div> |
| | | <span v-else>暂无图片</span> |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getOrderDetail } from '@/api/system/order' |
| | | import { parseTime } from '@/utils/ruoyi' |
| | | |
| | | export default { |
| | | name: 'OrderDetail', |
| | |
| | | medicalInfo: {}, |
| | | dispatchInfo: {}, |
| | | paymentInfo: [], |
| | | operationInfo: [], |
| | | otherInfo: [], |
| | | screenWidth: document.documentElement.clientWidth // 屏幕宽度 |
| | | } |
| | | }, |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | // 获取路由参数中的订单ID |
| | | const orderId = this.$route.params.id |
| | | this.getDetail(orderId) |
| | | |
| | | // 获取URL查询参数 |
| | | const urlParams = new URLSearchParams(window.location.search) |
| | | const params = { |
| | | appId: urlParams.get('appId'), |
| | | timestamp: urlParams.get('timestamp'), |
| | | sign: urlParams.get('sign') |
| | | } |
| | | |
| | | // 调用获取详情方法,传入所有参数 |
| | | this.getDetail(orderId, params) |
| | | // 监听窗口大小变化 |
| | | window.addEventListener('resize', this.handleResize) |
| | | }, |
| | |
| | | }, |
| | | methods: { |
| | | /** 获取订单详情 */ |
| | | getDetail(orderId) { |
| | | getOrderDetail(orderId).then(response => { |
| | | getDetail(orderId, params) { |
| | | getOrderDetail(orderId, params).then(response => { |
| | | const { data } = response |
| | | // 根据后端返回的数据结构设置各个对象的值 |
| | | this.orderInfo = data.orderInfo || {} |
| | |
| | | this.medicalInfo = data.medicalInfo || {} |
| | | this.dispatchInfo = data.dispatchInfo || {} |
| | | this.paymentInfo = data.paymentInfo || [] |
| | | this.operationInfo = data.operationInfo || [] |
| | | this.otherInfo = data.otherInfo || [] |
| | | |
| | | console.log(this.orderInfo) |
| | | |
| | |
| | | // 处理窗口大小变化 |
| | | handleResize() { |
| | | this.screenWidth = document.documentElement.clientWidth |
| | | }, |
| | | formatDateTime(time) { |
| | | if (!time) { |
| | | return ''; |
| | | } |
| | | return parseTime(time, '{y}-{m}-{d} {h}:{i}:{s}'); |
| | | } |
| | | } |
| | | } |
| | |
| | | .el-descriptions-item { padding: 8px !important; } |
| | | .el-descriptions-item__label { width: 100px !important; } |
| | | } |
| | | .image-container { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | gap: 10px; |
| | | } |
| | | .preview-image { |
| | | width: 100px; |
| | | height: 100px; |
| | | object-fit: cover; |
| | | cursor: pointer; |
| | | } |
| | | </style> |