index.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <template>
  2. <div class="station">
  3. <div class="station-head">
  4. <div class="station-head-title">货物基本信息</div>
  5. <div class="station-head-content flex-wrap">
  6. <div class="station-head-content-list" v-for="item in dataInfo" :key="item.id">{{item.name}}:{{item.value}}</div>
  7. </div>
  8. </div>
  9. <div class="station-status flex">
  10. <div class="station-status-info flex-wrap">
  11. <div class="manageTitle">货物跟踪信息</div>
  12. <div class="status">正常</div>
  13. </div>
  14. <div class="station-status-search flex-wrap">
  15. <TBtnGroup @columnSet="columnSet" :groupSet="groupSet" />
  16. <Search @clear="clear" @search="search" />
  17. </div>
  18. </div>
  19. <div class="station-list flex-wrap">
  20. <div class="station-list-left">
  21. <div class="title flex-wrap">
  22. <div class="title-list">航班号CA1001</div>
  23. <div class="title-list">出港: 深圳机场</div>
  24. <div class="title-list">日期:2022/09/10</div>
  25. </div>
  26. <Steps :datas="datas" />
  27. </div>
  28. <div class="station-list-right">
  29. <div class="title flex-wrap">
  30. <div class="title-list">进港: 深圳机场</div>
  31. </div>
  32. <Steps :datas="datas1" />
  33. </div>
  34. </div>
  35. <div class="station-table">
  36. <Table height="calc(100vh - 540px)" :tableHeader="tableHeader" :tableData="tableData" />
  37. </div>
  38. <tableColumnSet :dialogVisible="dialogVisible" :columnList="tableHeader" @setColumn="setColumn" @closeDialog="closeDialog"></tableColumnSet>
  39. </div>
  40. </template>
  41. <script setup lang="ts">
  42. import { ref } from "vue";
  43. import Search from "@/components/search/index.vue";
  44. import Steps from "@/components/steps/index.vue";
  45. import Table from "@/components/tableTemp/index.vue";
  46. import TBtnGroup from "@/components/TBtnGroup/index.vue";
  47. import tableColumnSet from "@/components/tableColumnSet/index.vue";
  48. import { ElMessage } from "element-plus";
  49. const dataInfo = [
  50. {
  51. id: 1,
  52. name: "货物编码",
  53. value: "56888829",
  54. },
  55. {
  56. id: 2,
  57. name: "运单",
  58. value: "FA56888829",
  59. },
  60. ];
  61. const datas = [
  62. {
  63. id: 1,
  64. name: "收货核单",
  65. flag: true,
  66. labelWidth: 100,
  67. children: ["A32", "534件", "通过", "10:25"],
  68. },
  69. {
  70. id: 2,
  71. name: "安检",
  72. flag: true,
  73. children: ["A32", "534件", "通过", "10:25"],
  74. },
  75. {
  76. id: 3,
  77. name: "理货",
  78. flag: true,
  79. children: ["A32", "534件", "通过", "10:25"],
  80. },
  81. {
  82. id: 4,
  83. name: "待运区",
  84. flag: true,
  85. children: ["A32", "534件", "通过", "10:25"],
  86. },
  87. {
  88. id: 5,
  89. name: "货站交接",
  90. flag: true,
  91. children: ["A32", "534件", "通过", "10:25"],
  92. },
  93. {
  94. id: 6,
  95. name: "机下交接",
  96. flag: true,
  97. children: ["A32", "534件", "通过", "10:25"],
  98. },
  99. {
  100. id: 7,
  101. name: "装机",
  102. flag: true,
  103. labelWidth: 100,
  104. children: ["A32", "534件", "通过", "10:25"],
  105. },
  106. ];
  107. const datas1 = [
  108. {
  109. id: 1,
  110. name: "卸机",
  111. flag: true,
  112. labelWidth: 100,
  113. children: ["A32", "534件", "通过", "10:25"],
  114. },
  115. {
  116. id: 2,
  117. name: "机下交接",
  118. flag: true,
  119. children: ["A32", "534件", "通过", "10:25"],
  120. },
  121. {
  122. id: 3,
  123. name: "货站交接",
  124. flag: true,
  125. children: ["A32", "534件", "通过", "10:25"],
  126. },
  127. {
  128. id: 4,
  129. name: "提取",
  130. flag: true,
  131. children: ["A32", "534件", "通过", "10:25"],
  132. },
  133. ];
  134. const tableHeader = ref([
  135. { label: "航班号", key: "fightNo", isShow: true },
  136. { label: "航班日期", key: "containerNo", isShow: true },
  137. { label: "起飞航站-预计起飞时间", key: "goodsNo", isShow: true },
  138. { label: "目的航站-预计降落时间", key: "dwon1", isShow: true },
  139. { label: "节点名称", key: "return", isShow: true },
  140. { label: "位置码", key: "receipt", isShow: true },
  141. { label: "位置描述", key: "securityCheck", isShow: true },
  142. { label: "处理时间", key: "tally", isShow: true },
  143. { label: "处理结果", key: "dwon2", isShow: true },
  144. { label: "数据来源", key: "waitingArea", isShow: true },
  145. { label: "设备ID", key: "goodSstation1", isShow: true },
  146. { label: "操作人", key: "offBoard1", isShow: true },
  147. { label: "发往位置", key: "installEquipment", isShow: true },
  148. { label: "发往位置描述", key: "unloading", isShow: true },
  149. ]);
  150. const tableData = [
  151. {
  152. id: 1,
  153. fightNo: "CA1001",
  154. containerNo: "2022/9/10",
  155. goodsNo: "SZX-11:35",
  156. dwon1: "PEK-14:35",
  157. return: "机下交接",
  158. receipt: "A03",
  159. securityCheck: "停机位E24",
  160. tally: "2022/09/10 07:10",
  161. dwon2: "通过",
  162. waitingArea: "人工扫描",
  163. goodSstation1: "56",
  164. offBoard1: "张伯伦",
  165. installEquipment: "B12",
  166. unloading: "货站B12闸口",
  167. },
  168. {
  169. id: 2,
  170. fightNo: "CA1001",
  171. containerNo: "2022/9/10",
  172. goodsNo: "SZX-11:35",
  173. dwon1: "PEK-14:35",
  174. return: "机下交接",
  175. receipt: "A03",
  176. securityCheck: "停机位E24",
  177. tally: "2022/09/10 07:10",
  178. dwon2: "通过",
  179. waitingArea: "人工扫描",
  180. goodSstation1: "56",
  181. offBoard1: "张伯伦",
  182. installEquipment: "B12",
  183. unloading: "货站B12闸口",
  184. },
  185. {
  186. id: 3,
  187. fightNo: "CA1001",
  188. containerNo: "2022/9/10",
  189. goodsNo: "SZX-11:35",
  190. dwon1: "PEK-14:35",
  191. return: "机下交接",
  192. receipt: "A03",
  193. securityCheck: "停机位E24",
  194. tally: "2022/09/10 07:10",
  195. dwon2: "通过",
  196. waitingArea: "人工扫描",
  197. goodSstation1: "56",
  198. offBoard1: "张伯伦",
  199. installEquipment: "B12",
  200. unloading: "货站B12闸口",
  201. },
  202. ];
  203. const groupSet = {
  204. isUtc: false,
  205. isRefresh: false,
  206. isDownLoad: true,
  207. isColumnSet: true,
  208. };
  209. const dialogVisible = ref(false);
  210. const search = (val) => {
  211. ElMessage.success(`搜索成功:${val}`);
  212. };
  213. const clear = () => {
  214. ElMessage.success(`清除`);
  215. };
  216. const setColumn = (data) => {
  217. tableHeader.value = data;
  218. dialogVisible.value = false;
  219. };
  220. const closeDialog = (data) => {
  221. dialogVisible.value = false;
  222. };
  223. //点击列设置按钮
  224. const columnSet = (data) => {
  225. dialogVisible.value = true;
  226. };
  227. </script>
  228. <style lang="scss" scoped>
  229. .station {
  230. &-head {
  231. height: 144px;
  232. background: #410425;
  233. padding: 24px 30px;
  234. color: #ffffff;
  235. &-title {
  236. font-size: 18px;
  237. font-family: Microsoft YaHei;
  238. font-weight: bold;
  239. margin-bottom: 40px;
  240. }
  241. &-content {
  242. &-list {
  243. margin-right: 100px;
  244. &:last-child {
  245. margin-right: 0;
  246. }
  247. }
  248. }
  249. }
  250. &-status {
  251. margin: 24px 0;
  252. line-height: 32px;
  253. .status {
  254. font-size: 16px;
  255. font-family: Microsoft YaHei;
  256. font-weight: bold;
  257. color: #519f6b;
  258. }
  259. }
  260. &-list {
  261. margin-bottom: 8px;
  262. &:last-child {
  263. margin-bottom: 0;
  264. }
  265. .title {
  266. font-size: 16px;
  267. font-family: Microsoft YaHei;
  268. font-weight: bold;
  269. color: #101116;
  270. margin-bottom: 28px;
  271. &-list {
  272. margin-right: 50px;
  273. }
  274. }
  275. &-left {
  276. background: #ffffff;
  277. padding: 24px 24px 12px 24px;
  278. width: 1090px;
  279. margin-right: 8px;
  280. }
  281. &-right {
  282. flex: 1;
  283. background: #ffffff;
  284. padding: 24px 24px 12px 24px;
  285. }
  286. }
  287. :deep &-table {
  288. margin-top: 16px;
  289. .scoreColumn {
  290. background: #eef3d6;
  291. }
  292. }
  293. }
  294. </style>