portDeclarationDetail.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <template>
  2. <div class="container-title df aic jcsb">
  3. <div class="df aic">
  4. <div class="mr30">船东信息</div>
  5. </div>
  6. </div>
  7. <div class="line-container-p24">
  8. <div class="df aic mb30">
  9. <div class="df aic">
  10. <div class="title">船东姓名</div>
  11. <div class="text">{{ detail.userName }}</div>
  12. </div>
  13. <div class="df aic">
  14. <div class="title">手机号</div>
  15. <div class="text">{{ detail.phone }}</div>
  16. </div>
  17. </div>
  18. <div class="df aic mb30">
  19. <div class="df aic">
  20. <div class="title">身份证号</div>
  21. <div class="text">{{ detail.idcardNo }}</div>
  22. </div>
  23. </div>
  24. <div class="df aic">
  25. <div class="df aic">
  26. <div class="title">身份证国徽面</div>
  27. <div class="text">
  28. <el-image
  29. :preview-src-list="previewListIds"
  30. fit="contain"
  31. :src="detail.idcardBackViewUrl"
  32. ></el-image>
  33. </div>
  34. </div>
  35. <div class="df aic">
  36. <div class="title">身份证头像面</div>
  37. <div class="text">
  38. <el-image
  39. :preview-src-list="previewListIds"
  40. fit="contain"
  41. :src="detail.idcardFrontViewUrl"
  42. ></el-image>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="container-title df aic jcsb">
  48. <div class="df aic">
  49. <div class="mr30">船舶信息</div>
  50. </div>
  51. </div>
  52. <div class="line-container-p24">
  53. <div class="df aic mb30">
  54. <div class="df aic">
  55. <div class="title">船舶名称</div>
  56. <div class="text">{{ detail.shipname }}</div>
  57. </div>
  58. <div class="df aic">
  59. <div class="title">MMSI</div>
  60. <div class="text">{{ detail.mmsi }}</div>
  61. </div>
  62. </div>
  63. <Certs ref="certs"></Certs>
  64. </div>
  65. <div class="container-title df aic jcsb">
  66. <div class="df aic">
  67. <div class="mr30">航次信息</div>
  68. </div>
  69. </div>
  70. <div class="line-container-p24">
  71. <div class="df aic mb30">
  72. <div class="df aic">
  73. <div class="title">航次名称</div>
  74. <div class="text">{{ detail.voyageName }}</div>
  75. </div>
  76. <div class="df aic">
  77. <div class="title">货种</div>
  78. <div class="text">{{ detail.cargo }}</div>
  79. </div>
  80. </div>
  81. <div class="df aic">
  82. <div class="df aic">
  83. <div class="title">货量</div>
  84. <div class="text">
  85. {{ detail.actualLoadTons + " 吨" }} /
  86. {{ detail.actualLoadPieces + " 件" }}
  87. </div>
  88. </div>
  89. <div class="df aic">
  90. <div class="title">预计到港时间</div>
  91. <div class="text">{{ detail.expectedArrivalTime }}</div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="df jcfe mt20 mr20">
  96. <el-button @click="portReport" type="primary">申请报港</el-button>
  97. </div>
  98. </template>
  99. <script setup>
  100. import { ref, h, reactive, toRefs, onMounted } from "vue";
  101. import { ElNotification, ElMessageBox, ElMessage } from "element-plus";
  102. import store from "../../store";
  103. import router from "../../router";
  104. import md5 from "md5";
  105. import api from "../../apis/fetch";
  106. import { useRoute } from "vue-router";
  107. const route = useRoute();
  108. let detail = ref({});
  109. let certs = ref(null);
  110. let previewListIds = ref([]);
  111. async function getReportDetail() {
  112. let res = await api.getReportDetail({
  113. voyageId: route.query.id,
  114. });
  115. detail.value = res.data.result;
  116. previewListIds.value = [
  117. detail.value.idcardFrontViewUrl,
  118. detail.value.idcardBackViewUrl,
  119. ];
  120. // certs.value.initCerts(detail.value.shipAudits);
  121. }
  122. async function portReport() {
  123. let res = await api.portReport({
  124. voyageId: route.query.id,
  125. });
  126. if (res.data.status == 0) {
  127. ElMessage({
  128. type: "success",
  129. message: "报港成功!",
  130. });
  131. router.push("/voyage/portDeclarationList");
  132. } else {
  133. ElMessage({
  134. type: "error",
  135. message: "报港失败!",
  136. });
  137. console.log(res);
  138. }
  139. }
  140. onMounted(() => {
  141. getReportDetail();
  142. });
  143. </script>
  144. <style scoped>
  145. .title {
  146. color: #555;
  147. width: 100px;
  148. text-align: right;
  149. margin-right: 30px;
  150. font-size: 14px;
  151. }
  152. .text {
  153. width: 280px;
  154. }
  155. .el-image {
  156. width: 240px;
  157. height: 160px;
  158. border: 1px solid #ddd;
  159. border-radius: 10px;
  160. }
  161. </style>