tranManagementShippingLook.vue 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  1. // 船运调度详情
  2. <template>
  3. <div class="container">
  4. <el-row>
  5. <el-col :span="20">
  6. <h2 class="bg-left title">船运调度详情</h2>
  7. </el-col>
  8. <el-col :span="4" class="bg-right">
  9. <el-button
  10. class="bg-bottom"
  11. type="primary"
  12. size="small"
  13. @click="revert()"
  14. >
  15. <img
  16. width="6"
  17. height="10"
  18. style="vertical-align: bottom; margin-right: 3px"
  19. src="../../../public/img/lujing.png"
  20. alt
  21. />返回
  22. </el-button>
  23. </el-col>
  24. </el-row>
  25. <div class="center">
  26. <ws-form ref="deptBudgetList" :model="deptBudgetList">
  27. <div class="basicInformation">
  28. <div class="small-title">任务详情</div>
  29. <ws-info-table>
  30. <!-- 任务编号 -->
  31. <ws-form-item label="任务编号" span="1" prop="processNo">
  32. {{ deptBudgetList.processNo }}
  33. </ws-form-item>
  34. <!-- 货名 -->
  35. <ws-form-item label="货名" span="1" prop="goodsName">
  36. {{ deptBudgetList.goodsName }}
  37. </ws-form-item>
  38. <!--重量(吨)-->
  39. <ws-form-item
  40. label="重量(吨)"
  41. span="1"
  42. prop="weight"
  43. class="readonly"
  44. >
  45. {{ deptBudgetList.weight }}
  46. </ws-form-item>
  47. <!--发货地址-->
  48. <ws-form-item label="发货地址" span="1">
  49. {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
  50. }}{{ deptBudgetList.sendArea }}
  51. </ws-form-item>
  52. <!--发货人-->
  53. <ws-form-item label="发货人" span="1" prop="sender">
  54. {{ deptBudgetList.sender }}
  55. </ws-form-item>
  56. <!--发货人电话-->
  57. <ws-form-item label="发货人电话" span="1" prop="senderPhone">
  58. {{ deptBudgetList.senderPhone }}
  59. </ws-form-item>
  60. <!--收货地址-->
  61. <ws-form-item
  62. label="收货地址"
  63. span="1"
  64. prop="receiveDetailedAddress"
  65. >
  66. {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
  67. }}{{ deptBudgetList.receiveArea }}
  68. </ws-form-item>
  69. <!--收货人-->
  70. <ws-form-item label="收货人" span="1" prop="receiver">
  71. {{ deptBudgetList.receiver }}
  72. </ws-form-item>
  73. <!--收货人电话-->
  74. <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
  75. {{ deptBudgetList.receiverPhone }}
  76. </ws-form-item>
  77. <!--发船日期-->
  78. <ws-form-item label="发船日期" span="1" prop="deliveryDateStart">
  79. {{ deptBudgetList.deliveryDateStart }}
  80. </ws-form-item>
  81. <!--最晚发货日期-->
  82. <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
  83. {{ deptBudgetList.deliveryDateEnd }}
  84. </ws-form-item>
  85. <!--合同编号-->
  86. <ws-form-item label="合同编号" span="1" prop="contractNo">
  87. {{ deptBudgetList.contractNo }}
  88. </ws-form-item>
  89. </ws-info-table>
  90. <div class="small-title">联络员及航次</div>
  91. <div
  92. style="width: 100% "
  93. class="flex position middle"
  94. v-for="(item, index) in deptBudgetList.tranCarInfoList"
  95. >
  96. <div style="margin: 18px;color: #69708C;">航次信息</div>
  97. <ws-info-table>
  98. <!-- 姓名 -->
  99. <ws-form-item label="姓名:" span="1" prop="driver" class="siji">
  100. {{item.driver}}
  101. </ws-form-item>
  102. <!-- <el-divider direction="vertical" class="line"></el-divider> -->
  103. <!-- 电话 -->
  104. <ws-form-item
  105. label="电话:"
  106. span="1"
  107. prop="driverPhone"
  108. class="siji"
  109. >
  110. {{ item.driverPhone }}
  111. </ws-form-item>
  112. <!-- <el-divider direction="vertical" class="line"></el-divider> -->
  113. <!--发船日期-->
  114. <ws-form-item
  115. label="发船日期:"
  116. span="1"
  117. prop="sendDateStart"
  118. class="siji"
  119. >
  120. {{ item.sendDateStart }}
  121. </ws-form-item>
  122. <!-- <el-divider direction="vertical" class="line"></el-divider> -->
  123. <ws-form-item
  124. label="预计到港日期:"
  125. span="1"
  126. prop="receiveDateEnd"
  127. class="siji"
  128. >
  129. {{ item.receiveDateEnd }}
  130. </ws-form-item>
  131. <!-- <el-divider direction="vertical" class="line"></el-divider> -->
  132. <!-- 船名 -->
  133. <ws-form-item label="船名:" span="1" prop="shipName" class="siji">
  134. {{ item.shipName }}
  135. </ws-form-item>
  136. <!-- <el-divider direction="vertical" class="line"></el-divider> -->
  137. <!-- 航次 -->
  138. <ws-form-item label="航次:" span="1" prop="shipNo" class="siji">
  139. {{ item.shipNo }}
  140. </ws-form-item>
  141. <!-- <el-divider direction="vertical" class="line"></el-divider> -->
  142. <!-- 类型 -->
  143. <ws-form-item label="类型:" span="1" prop="shipType" class="siji">
  144. {{ item.shipType }}
  145. </ws-form-item>
  146. <ws-form-item
  147. label="数量"
  148. span="1"
  149. prop="boxNumber"
  150. class="siji"
  151. v-show="item.shipType == '集装箱'"
  152. >
  153. {{ item.boxNumber }}
  154. </ws-form-item>
  155. </ws-info-table>
  156. </div>
  157. <div class="xia">
  158. <div
  159. style="width: 100%"
  160. class="flex position"
  161. v-for="(items, index) in freightspace"
  162. :key="index"
  163. >
  164. <ws-info-table>
  165. <ws-form-item
  166. :label="'仓位号-' + (index + 1)"
  167. span="1"
  168. prop="impurity"
  169. class="bot"
  170. >
  171. {{ items.impurity }}
  172. </ws-form-item>
  173. <!-- 重量(吨) -->
  174. <ws-form-item
  175. label="重量(吨)"
  176. span="1"
  177. prop="positionWeight"
  178. class="bot"
  179. >
  180. {{ items.positionWeight }}
  181. </ws-form-item>
  182. </ws-info-table>
  183. </div>
  184. </div>
  185. <div style="text-align: right; padding: 10px">
  186. <el-button
  187. class="bg-bottom-up"
  188. type="primary"
  189. size="small"
  190. @click="returnsales()"
  191. >关闭</el-button
  192. >
  193. </div>
  194. </div>
  195. </ws-form>
  196. </div>
  197. </div>
  198. </template>
  199. <script>
  200. import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
  201. import { shippingList, shippingLook } from '@/model/transport/index'
  202. import Pagination from '@/components/Pagination'
  203. import WsUpload from '@/components/WsUpload'
  204. import { dayjs, EventBus } from 'base-core-lib'
  205. export default {
  206. name: 'viewSpareMoney',
  207. components: {
  208. WsUpload,
  209. Pagination,
  210. },
  211. watch: {
  212. // vesselId(val) {
  213. // this.getList()
  214. // },
  215. isShow(val) {
  216. this.showType = val
  217. },
  218. },
  219. data() {
  220. return {
  221. //弹出框
  222. dialogViewSpareMoney: false,
  223. dialogApproveFormVisible: false,
  224. // 船舶类型
  225. monetaryKey: null,
  226. // 表格显示数据
  227. tableDate: [],
  228. // 是否显示
  229. showType: true,
  230. // 年
  231. year: '',
  232. deptBudgetTotal: 0,
  233. currentPage: 1,
  234. pageSize: 10,
  235. searchType: 1,
  236. searchKeyWord: '',
  237. contractType: 2,
  238. startDate: null,
  239. endDate: null,
  240. goodnameList: {},
  241. // 提交类型
  242. submitType: true,
  243. storageType: [],
  244. readonly: true,
  245. appendixIdsAdd: '',
  246. uploadSuccess: {},
  247. onChange: {},
  248. gradeList: [],
  249. tranCarInfoList: [],
  250. list: [],
  251. arr: [],
  252. freightspace: [],
  253. rules: {
  254. netWeight: [
  255. {
  256. required: true,
  257. type: 'number',
  258. message: '请输入活动名称',
  259. trigger: 'blur',
  260. },
  261. ],
  262. },
  263. size: 10,
  264. compId: sessionStorage.getItem('ws-pf_compId'),
  265. deptCircularPage: {},
  266. packtypeList: {},
  267. date: {
  268. year: dayjs().format('YYYY'),
  269. month: dayjs().format('MM'),
  270. },
  271. contractList: [],
  272. deptBudgetList: {
  273. warehouseInOutDetail: {},
  274. tranCarInfoList: [],
  275. },
  276. historyList: [],
  277. pickerBeginDateBefore: {
  278. disabledDate: (time) => {
  279. return time.getTime() > Date.now()
  280. },
  281. },
  282. accessoryTFs: false,
  283. }
  284. },
  285. mounted() {
  286. this.deptBudgetList.baseId = this.$route.query.baseId
  287. this.deptBudgetList.positionId = this.$route.query.positionId
  288. this.deptBudgetList.warehouseName = this.$route.query.warehouseName
  289. this.deptBudgetList.binNumber = this.$route.query.binNumber
  290. this.getList()
  291. },
  292. activated() {
  293. this.loaddata()
  294. },
  295. methods: {
  296. loaddata() {
  297. shippingLook({ id: this.$route.query.id })
  298. .toPromise()
  299. .then((response) => {
  300. this.deptBudgetList = response
  301. for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
  302. var num =
  303. this.deptBudgetList.tranCarInfoList[i].positionWeight.split(',')
  304. for (var j = 0; j < num.length; j++) {
  305. var num2 = num[j].split('/')
  306. this.freightspace.push({
  307. impurity: num2[i],
  308. positionWeight: num2[num2.length - 1],
  309. })
  310. }
  311. }
  312. })
  313. },
  314. getList() {
  315. shippingList({
  316. compId: sessionStorage.getItem('ws-pf_compId'),
  317. currentPage: this.currentPage,
  318. pageSize: this.pageSize,
  319. contractType: this.contractType,
  320. tranTypeKey: this.tranTypeKey,
  321. })
  322. .toPromise()
  323. .then((response) => {
  324. this.warehouseList = response
  325. })
  326. },
  327. //返回按钮
  328. revert() {
  329. this.freightspace = []
  330. this.$router.go(-1)
  331. },
  332. del(index) {
  333. if (this.freightspace.length > 1) {
  334. this.freightspace.splice(index, 1)
  335. }
  336. },
  337. add() {
  338. this.freightspace.push({
  339. binNumber: '',
  340. maxStorage: '',
  341. remark: '',
  342. })
  343. },
  344. //提交按钮
  345. submit() {
  346. this.$confirm(`暂存后可在待完成页面查看,确定暂存`, {
  347. cancelButtonText: '取消',
  348. confirmButtonText: '确定',
  349. type: 'warning',
  350. })
  351. .then(() => {
  352. this.$refs.deptBudgetList.validate((valid) => {
  353. if (valid) {
  354. this.deptBudgetList.compId =
  355. sessionStorage.getItem('ws-pf_compId')
  356. this.deptBudgetList.inOutFlag = 2
  357. this.deptBudgetList.statusFlag = 1
  358. addstorageputList(this.deptBudgetList)
  359. .toPromise()
  360. .then((response) => {
  361. this.$message.success('暂存成功')
  362. this.$router.push({ path: 'warehouseManagementList' })
  363. })
  364. } else {
  365. EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  366. return false
  367. }
  368. })
  369. })
  370. .catch(() => {
  371. return false
  372. })
  373. },
  374. returnsales() {
  375. this.$router.go(-1)
  376. },
  377. handleClose() {
  378. this.accessoryTFs = false
  379. },
  380. handleSizeChange(val) {
  381. console.log(`每页 ${val} 条`)
  382. this.pageSize = val
  383. this.getList()
  384. },
  385. handleCurrentChange(val) {
  386. this.currentPage = val
  387. console.log(`当前页: ${val}`)
  388. this.getList()
  389. },
  390. selecttaskType(e) {
  391. for (var i = 0; i < this.taskTypeList.length; i++) {
  392. if (this.taskTypeList[i].value == e) {
  393. this.searchType = this.taskTypeList[i].type
  394. }
  395. }
  396. },
  397. approve() {},
  398. listQuery() {},
  399. },
  400. }
  401. </script>
  402. <style lang="scss" scoped>
  403. /deep/.basicInformation {
  404. .ws-info-table {
  405. border: none;
  406. }
  407. .el-form-item {
  408. width: 33.3333%;
  409. border: none;
  410. .el-form-item__label {
  411. background: transparent;
  412. border: none;
  413. }
  414. .el-form-item__content {
  415. border: none;
  416. }
  417. }
  418. }
  419. .title {
  420. position: relative;
  421. padding-left: 10px;
  422. }
  423. .title::before {
  424. content: '';
  425. display: inline-block;
  426. width: 5px;
  427. height: 30px;
  428. background: #5473e8;
  429. position: absolute;
  430. left: 0;
  431. }
  432. .el-form {
  433. padding: 0 10%;
  434. }
  435. .el-button--primary {
  436. background-color: #5878e8;
  437. border-color: #5878e8;
  438. }
  439. .el-col {
  440. background: #f6f7fc;
  441. }
  442. .bg-right {
  443. text-align: right;
  444. padding: 16px 20px;
  445. }
  446. .center {
  447. width: 106%;
  448. margin: 0 auto;
  449. }
  450. //表格文字
  451. /deep/.ws-info-table .el-form-item .el-form-item__label {
  452. text-align: left;
  453. font-size: 14px;
  454. font-weight: 400;
  455. color: #8890b1;
  456. line-height: 16px;
  457. }
  458. //蓝标
  459. .small-title {
  460. position: relative;
  461. padding: 10px;
  462. font-weight: 600;
  463. }
  464. .small-title::before {
  465. position: absolute;
  466. content: '';
  467. display: block;
  468. background: #5473e8;
  469. width: 4px;
  470. height: 14px;
  471. left: 0px;
  472. top: 13px;
  473. padding: 4px 2px;
  474. }
  475. .position {
  476. width: 90%;
  477. }
  478. .position .siji {
  479. width: 16%;
  480. }
  481. /deep/.position .ws-info-table .el-form-item .el-form-item__label {
  482. background-color: #f5f7fa;
  483. }
  484. .position .zaizhong {
  485. width: 16%;
  486. }
  487. //减号
  488. .del {
  489. right: -70px;
  490. }
  491. // .bot{
  492. // width: 30%;
  493. // border: none;
  494. // }
  495. .siji {
  496. width: 300px;
  497. }
  498. /deep/.el-form-item {
  499. border-right: 0px;
  500. border-bottom: 0px;
  501. }
  502. /deep/.ws-info-table {
  503. border-left: 0px;
  504. border-top: 0px;
  505. }
  506. .ws-info-table .el-form-item .el-form-item__content {
  507. border-right: 0px;
  508. border-bottom: 0px;
  509. border-left: 0px;
  510. border-top: 0px;
  511. }
  512. /deep/.ws-info-table .el-form-item {
  513. border-right: 0px;
  514. border-bottom: 0px;
  515. border-left: 0px;
  516. border-top: 0px;
  517. }
  518. /deep/.ws-info-table .el-form-item .el-form-item__content {
  519. background: #f5f7fa;
  520. border-radius: 4px;
  521. border: 1px solid #d8dce6;
  522. font-family: PingFangSC-Regular, PingFang SC;
  523. margin-bottom: 5px;
  524. background-color: #fff;
  525. font-size: 12px;
  526. font-weight: 400;
  527. color: #8890b1;
  528. line-height: 16px;
  529. }
  530. /deep/.ws-info-table .el-form-item .el-form-item__content {
  531. background: #f5f7fa;
  532. border-radius: 4px;
  533. border: 1px solid #d8dce6;
  534. }
  535. /deep/.flex .ws-info-table .el-form-item .el-form-item__content {
  536. border: 0px;
  537. border-right: 1px solid #D8DCE6;
  538. border-radius: 0px;
  539. }
  540. /deep/.ws-class-table-col {
  541. height: auto;
  542. padding: 0px 2px;
  543. /deep/.el-input__inner {
  544. padding: 0px 2px;
  545. }
  546. }
  547. /deep/.is-disabled {
  548. .el-input__prefix,
  549. .el-input__suffix {
  550. display: none;
  551. }
  552. .el-input__inner {
  553. background-color: #fff;
  554. border-color: #fff !important;
  555. color: #000 !important;
  556. font-size: 14px;
  557. cursor: text;
  558. padding: 0 !important;
  559. border: none;
  560. }
  561. }
  562. .xia {
  563. width: 700px;
  564. // height: 50px;
  565. border-radius: 4px;
  566. border: 1px solid #d8dce6;
  567. margin-top: 10px;
  568. border: none;
  569. }
  570. /deep/.ws-info-table .el-form-item .el-form-item__label {
  571. // background-color: #f5f7fa;
  572. font-size: 12px;
  573. font-family: PingFangSC-Regular, PingFang SC;
  574. font-weight: 400;
  575. color: #8890b1;
  576. line-height: 16px;
  577. }
  578. .position .siji {
  579. width: 14.28%;
  580. }
  581. .el-form {
  582. height: 1000px;
  583. }
  584. .flex {
  585. flex-direction: column;
  586. }
  587. /deep/.position .ws-info-table .el-form-item .el-form-item__label {
  588. background-color: #f5f7fa;
  589. // text-align: center;
  590. width: 48%;
  591. }
  592. .middle {
  593. background: #f6f7fc;
  594. border-radius: 4px;
  595. border: 1px solid #d8dce6;
  596. }
  597. .line{
  598. height: 26px;
  599. margin-top: 6px;
  600. left: 2px;
  601. }
  602. /deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
  603. // background-color: #eee;
  604. // padding-right: 8px;
  605. // padding-left: 8px;
  606. // width: 100px;
  607. font-size: 12px;
  608. font-weight: bold;
  609. // color: #333;
  610. // overflow: hidden;
  611. text-overflow: ellipsis;
  612. white-space: nowrap;
  613. // line-height: 40px;
  614. }
  615. </style>