<template>
|
<div class="app-container">
|
<div v-if="!validated" class="loading-container">
|
<el-alert
|
:title="errorMessage || '正在加载订单数据...'"
|
:type="errorMessage ? 'error' : 'info'"
|
:closable="false"
|
show-icon>
|
</el-alert>
|
</div>
|
<div v-else>
|
<!-- 复用订单详情展示逻辑 -->
|
<el-descriptions title="服务订单详情" :column="2" border>
|
<el-descriptions-item label="订单编号">{{ orderInfo.serviceOrdId }}</el-descriptions-item>
|
<el-descriptions-item label="联系人">{{ orderInfo.serviceOrdCoName }}</el-descriptions-item>
|
<el-descriptions-item label="患者姓名">{{ orderInfo.serviceOrdPtName }}</el-descriptions-item>
|
<el-descriptions-item label="联系电话">{{ orderInfo.serviceOrdCoPhone }}</el-descriptions-item>
|
<el-descriptions-item label="患者性别">{{ orderInfo.serviceOrdPtSex }}</el-descriptions-item>
|
<el-descriptions-item label="出发时间">{{ orderInfo.serviceOrdStartDate }}</el-descriptions-item>
|
<el-descriptions-item label="目的地址">{{ orderInfo.serviceOrdTraEnd }}</el-descriptions-item>
|
<el-descriptions-item label="订单状态">
|
<dict-tag :options="dict.type.sys_order_status" :value="orderInfo.serviceOrdState"/>
|
</el-descriptions-item>
|
</el-descriptions>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import { getOrder } from "@/api/system/order";
|
import { validateOrderAccess } from "@/api/system/order";
|
|
export default {
|
name: "AnonymousOrder",
|
dicts: ['sys_order_status'],
|
data() {
|
return {
|
validated: false,
|
orderInfo: {},
|
errorMessage: ''
|
};
|
},
|
created() {
|
this.validateAndLoad();
|
},
|
methods: {
|
async validateAndLoad() {
|
try {
|
// 调用后端验证接口
|
const validateResult = await validateOrderAccess(this.$route.query);
|
if (validateResult.code !== 200) {
|
this.errorMessage = validateResult.msg;
|
this.validated = true;
|
setTimeout(() => {
|
this.$router.push('/401');
|
}, 2000);
|
return;
|
}
|
|
// 验证通过后加载订单数据
|
const response = await getOrder(this.$route.query.serviceOrderId);
|
this.orderInfo = response.data;
|
this.validated = true;
|
} catch (error) {
|
console.error('验证或加载订单数据失败:', error);
|
this.errorMessage = '验证或加载订单数据失败,请稍后重试';
|
this.validated = true;
|
setTimeout(() => {
|
this.$router.push('/401');
|
}, 2000);
|
}
|
}
|
}
|
};
|
</script>
|
|
<style scoped>
|
.loading-container {
|
margin: 20px;
|
text-align: center;
|
}
|
</style>
|