detail.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <template>
  2. <a-modal
  3. v-model:open="open"
  4. title="旅客信息查看"
  5. centered
  6. width="90%"
  7. >
  8. <div class="goods-detail">
  9. <div class="__cus-title_1">旅客基本信息</div>
  10. <a-form :model="formData">
  11. <a-row :gutter="16">
  12. <a-col :span="8">
  13. <a-form-item label="姓名">
  14. <a-input v-model:value="formData.name" :disabled="true"/>
  15. </a-form-item>
  16. </a-col>
  17. <a-col :span="8">
  18. <a-form-item label="身份证号">
  19. <a-input v-model:value="formData.idNo" :disabled="true"/>
  20. </a-form-item>
  21. </a-col>
  22. <a-col :span="8">
  23. <a-form-item label="国籍">
  24. <a-select v-model:value="formData.nationality" :disabled="true"
  25. :options="cityOptions" show-search allow-clear optionFilterProp="label"/>
  26. </a-form-item>
  27. </a-col>
  28. <a-col :span="8">
  29. <a-form-item label="车次/航班号">
  30. <a-input v-model:value="formData.travelNo" :disabled="true"/>
  31. </a-form-item>
  32. </a-col>
  33. <a-col :span="8">
  34. <a-form-item label="性别">
  35. <a-select v-model:value="formData.gender" :disabled="true"
  36. :options="sexOptions" show-search allow-clear optionFilterProp="label"/>
  37. </a-form-item>
  38. </a-col>
  39. <a-col :span="8">
  40. <a-form-item label="年龄">
  41. <a-input v-model:value="formData.age" :disabled="true"/>
  42. </a-form-item>
  43. </a-col>
  44. </a-row>
  45. </a-form>
  46. <div class="__cus-title_1">查验信息</div>
  47. <a-form :model="formData">
  48. <a-row :gutter="16">
  49. <a-col :span="8">
  50. <a-form-item label="查验时间">
  51. <a-input v-model:value="formData.checkTime" :disabled="true"/>
  52. </a-form-item>
  53. </a-col>
  54. <a-col :span="8">
  55. <a-form-item label="查验地点">
  56. <a-input v-model:value="formData.checkPlace" :disabled="true"/>
  57. </a-form-item>
  58. </a-col>
  59. <a-col :span="8">
  60. <a-form-item label="查验人">
  61. <a-input v-model:value="formData.checkBy" :disabled="true"/>
  62. </a-form-item>
  63. </a-col>
  64. <a-col :span="8">
  65. <a-form-item label="查验结果">
  66. <a-select v-model:value="formData.checkStatus" :disabled="true"
  67. :options="checkStatusOptions" show-search allow-clear optionFilterProp="label"/>
  68. </a-form-item>
  69. </a-col>
  70. <a-col :span="16">
  71. <a-form-item :label="formData.checkStatus == 1 ? '查验结果说明' : '查验未通过原因'">
  72. <a-input v-model:value="formData.checkReason" :disabled="true"/>
  73. </a-form-item>
  74. </a-col>
  75. </a-row>
  76. </a-form>
  77. <div class="__cus-title_1">查验过程记录</div>
  78. <a-timeline>
  79. <a-timeline-item>Create a services site 2015-09-01</a-timeline-item>
  80. <a-timeline-item>Solve initial network problems 2015-09-01</a-timeline-item>
  81. <a-timeline-item>Technical testing 2015-09-01</a-timeline-item>
  82. <a-timeline-item>Network problems being solved 2015-09-01</a-timeline-item>
  83. </a-timeline>
  84. <div class="__cus-title_1">行李物品信息</div>
  85. <a-table
  86. style="margin-top: 10px"
  87. bordered
  88. :dataSource="formData.goods"
  89. :columns="[
  90. {title: '物品类别',dataIndex: 'goodCategory',key: 'goodCategory'},
  91. {title: '物品细类',dataIndex: 'goodSubclass',key: 'goodSubclass'},
  92. {title: '物品名称',dataIndex: 'goodName',key: 'goodName'},
  93. {title: '物品产地',dataIndex: 'goodPlace',key: 'goodPlace'},
  94. {title: '重量(千克)',dataIndex: 'weight',key: 'weight'},
  95. {title: '品牌',dataIndex: 'brand',key: 'brand'},
  96. {title: '规格型号',dataIndex: 'specModel',key: 'specModel'},
  97. {title: '单价',dataIndex: 'price',key: 'price'},
  98. {title: '币种',dataIndex: 'currency',key: 'currency'},
  99. {title: '数量',dataIndex: 'quantity',key: 'quantity'},
  100. {title: '数量单位',dataIndex: 'unit',key: 'unit'},
  101. {title: '发票/许可证',dataIndex: 'license',key: 'license'},
  102. ]"
  103. :pagination="false"
  104. >
  105. <template #bodyCell="{ column, record }">
  106. <template v-if="column.dataIndex === 'license'">
  107. <a-button type="link" primary size="small" @click="onViewImg(record.license)">查看</a-button>
  108. </template>
  109. </template>
  110. </a-table>
  111. <div class="__cus-title_1">乘坐交通工具信息</div>
  112. <a-form :model="formData">
  113. <a-row :gutter="16">
  114. <a-col :span="8">
  115. <a-form-item label="乘坐交通工具类型">
  116. <a-input v-model:value="formData.vehicleType" :disabled="true"/>
  117. </a-form-item>
  118. </a-col>
  119. <a-col :span="8">
  120. <a-form-item label="出发时间">
  121. <a-input v-model:value="formData.departTime" :disabled="true"/>
  122. </a-form-item>
  123. </a-col>
  124. <a-col :span="8">
  125. <a-form-item label="出发港口">
  126. <a-select v-model:value="formData.fromPort" :disabled="true"
  127. :options="departurePortOptions" show-search allow-clear optionFilterProp="label"/>
  128. </a-form-item>
  129. </a-col>
  130. <a-col :span="8">
  131. <a-form-item label="到达港口">
  132. <a-select v-model:value="formData.toPort" :disabled="true"
  133. :options="arrivingPortOptions" show-search allow-clear optionFilterProp="label"/>
  134. </a-form-item>
  135. </a-col>
  136. <a-col :span="8">
  137. <a-form-item label="车次/航班号">
  138. <a-input v-model:value="formData.travelNo" :disabled="true"/>
  139. </a-form-item>
  140. </a-col>
  141. <a-col :span="8">
  142. <a-form-item label="座位号">
  143. <a-input v-model:value="formData.seatNo" :disabled="true"/>
  144. </a-form-item>
  145. </a-col>
  146. </a-row>
  147. </a-form>
  148. </div>
  149. <template #footer></template>
  150. <!-- <a-image-preview-group-->
  151. <!-- :style="{ display: 'none' }"-->
  152. <!-- :preview="{-->
  153. <!-- visible: imgOptions.visible,-->
  154. <!-- onVisibleChange: imgOptions.setVisible,-->
  155. <!-- }">-->
  156. <!-- <a-image :width="200" src="https://aliyuncdn.antdv.com/vue.png" />-->
  157. <!-- <a-image :width="200" src="https://aliyuncdn.antdv.com/logo.png" />-->
  158. <!-- </a-image-preview-group>-->
  159. </a-modal>
  160. </template>
  161. <script setup name="enterpriseDetail">
  162. import tool from '@/utils/tool'
  163. import {cloneDeep} from 'lodash-es'
  164. import basicApi from "@/api/gsc/basic";
  165. // 抽屉状态
  166. const open = ref(false)
  167. const emit = defineEmits({successful: null})
  168. // 表单数据
  169. const formData = ref({})
  170. const imgOptions = ref({
  171. visible: false,
  172. setVisible: (value) => {
  173. imgOptions.value.visible = value;
  174. },
  175. url: []
  176. })
  177. // 打开抽屉
  178. const onOpen = (record, view = false) => {
  179. open.value = true
  180. if (record) {
  181. basicApi.passengerinfoDetail({id: record.id}).then(res => {
  182. formData.value = Object.assign({}, res)
  183. })
  184. }
  185. }
  186. // 关闭抽屉
  187. const onClose = () => {
  188. // ref_detail.value?.resetFields()
  189. formData.value = {}
  190. open.value = false
  191. }
  192. const onViewImg = (urls) => {
  193. }
  194. const sexOptions = tool.dictList('lvke_sex')
  195. const cityOptions = tool.dictList('lvke_city')
  196. const departurePortOptions = tool.dictList('lvke_departurePort')
  197. const arrivingPortOptions = tool.dictList('lvke_arrivingPort')
  198. const checkStatusOptions = tool.dictList('lvke_checkStatus')
  199. // 抛出函数
  200. defineExpose({
  201. onOpen
  202. })
  203. </script>
  204. <style lang="less" scoped>
  205. .goods-detail {
  206. max-height: 800px;
  207. overflow-y: auto;
  208. overflow-x: hidden;
  209. }
  210. </style>