index.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <template>
  2. <div class="details-main">
  3. <div class="details-main-box">
  4. <div class="details-dr">
  5. <Map :address="detailsData.address" :latAndLng="{latitude:detailsData.latitude,longitude:detailsData.longitude}"/>
  6. </div>
  7. <div class="details-list">
  8. <div class="details-list-item" v-for="item in detailsData.secondOrderList" :key="item.secondOrderId">
  9. <el-image style="width: 100px; height: 100px"
  10. :src="item.volunteerPicture" />
  11. <div>
  12. <div>姓名:{{ detailsData.clientName }}</div>
  13. <div>评分:{{ item.userReview }}</div>
  14. <div>创建时间:{{ item.createTime }}</div>
  15. <div>创建时间:{{ item.createTime }}</div>
  16. <div>预计开始时间:{{ item.workDate }} - {{ item.workStartTime }}</div>
  17. <div>类别:{{ detailsData.businessTierName }}</div>
  18. <div style="display: flex;">订单状态:<dict-tag :options="lrr_service_status" :value="item.orderStatus" /></div>
  19. </div>
  20. </div>
  21. <el-divider />
  22. </div>
  23. </div>
  24. <div class="details-main-footer">
  25. <el-descriptions title="订单信息" border>
  26. <el-descriptions-item label="志愿者姓名">{{ detailsData.volunteerName }}</el-descriptions-item>
  27. <el-descriptions-item label="项目类别">{{ detailsData.businessTierName }}</el-descriptions-item>
  28. <el-descriptions-item label="被服务人员">{{ detailsData.clientName }}</el-descriptions-item>
  29. <el-descriptions-item label="手机号">{{ detailsData.clientTelephone }}</el-descriptions-item>
  30. <el-descriptions-item label="服务项目">{{ detailsData.volunteerName }}</el-descriptions-item>
  31. <el-descriptions-item label="订单状态"><dict-tag :options="lrr_service_status" :value="detailsData.orderStatus" /> </el-descriptions-item>
  32. <el-descriptions-item label="电话">{{ detailsData.clientTelephone }}</el-descriptions-item>
  33. <el-descriptions-item label="住址">{{ detailsData.address }}</el-descriptions-item>
  34. </el-descriptions>
  35. </div>
  36. </div>
  37. </template>
  38. <script setup>
  39. import Map from '@/views/components/Map/index.vue'
  40. import { orderInfo } from "@/api/order/manage.js";
  41. import { onMounted } from 'vue';
  42. const { proxy } = getCurrentInstance();
  43. const { lrr_service_status } = proxy.useDict("lrr_service_status");
  44. const list = [
  45. {
  46. lable: ''
  47. }
  48. ]
  49. const route = useRoute()
  50. const detailsData = ref({})
  51. const getDetails = async()=> {
  52. try {
  53. const res = await orderInfo(route.query.id);
  54. console.log('res',res);
  55. detailsData.value = res.data;
  56. } catch (error) {
  57. }
  58. }
  59. onMounted(getDetails)
  60. </script>
  61. <style lang="scss" scoped>
  62. .details-main {
  63. height: calc(100vh - 84px);
  64. display: flex;
  65. flex-direction: column;
  66. padding: 24px;
  67. overflow-y: auto;
  68. .details-main-box {
  69. display: flex;
  70. flex: 1;
  71. .details-dr {
  72. flex: 1;
  73. }
  74. .details-list {
  75. display: flex;
  76. flex-direction: column;
  77. overflow-y: auto;
  78. width: 300px;
  79. .details-list-item {
  80. display: flex;
  81. }
  82. }
  83. }
  84. .details-main-footer {}
  85. }
  86. </style>