tranManagementShippingLook.vue 16 KB

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