tranManagementTransporTrainDetails.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650
  1. //火运调度详情
  2. <template>
  3. <div class="container">
  4. <el-row>
  5. <el-col :span="12">
  6. <h2 class="bg-left title">火运调度详情</h2>
  7. </el-col>
  8. <el-col :span="12" class="bg-right">
  9. <el-button
  10. class="bg-bottom"
  11. type="primary"
  12. size="small"
  13. @click="returnsales()"
  14. ><img
  15. width="6"
  16. height="10"
  17. style="vertical-align: bottom; margin-right: 3px"
  18. src="../../../public/img/lujing.png"
  19. alt=""
  20. />返回</el-button
  21. >
  22. </el-col>
  23. </el-row>
  24. <ws-form
  25. class="position"
  26. ref="deptBudgetList"
  27. :rules="rules"
  28. :model="deptBudgetList"
  29. >
  30. <div class="small-title" style="font-size: 16px">任务详情</div>
  31. <ws-info-table>
  32. <!--任务编号-->
  33. <ws-form-item label="任务编号" span="1" prop="processNo">
  34. {{ deptBudgetList.processNo }}
  35. </ws-form-item>
  36. <!--货名-->
  37. <ws-form-item label="货名" span="1" prop="goodsName">
  38. {{ deptBudgetList.goodsName }}
  39. </ws-form-item>
  40. <!--重量(吨)-->
  41. <ws-form-item label="重量(吨)" span="1" prop="weight">
  42. {{ deptBudgetList.weight }}
  43. </ws-form-item>
  44. <!--发货地址-->
  45. <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
  46. {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
  47. }}{{ deptBudgetList.sendArea }}
  48. </ws-form-item>
  49. <!--发货人-->
  50. <ws-form-item label="发货人" span="1" prop="sender" class="readonly">
  51. {{ deptBudgetList.sender }}
  52. </ws-form-item>
  53. <!--发货人电话-->
  54. <ws-form-item
  55. label="发货人电话"
  56. span="1"
  57. prop="senderPhone"
  58. class="readonly"
  59. >
  60. {{ deptBudgetList.senderPhone }}
  61. </ws-form-item>
  62. <!--收货地址-->
  63. <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
  64. {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
  65. }}{{ deptBudgetList.receiveArea }}
  66. </ws-form-item>
  67. <!--收货人-->
  68. <ws-form-item label="收货人" span="1" prop="receiver">
  69. {{ deptBudgetList.receiver }}
  70. </ws-form-item>
  71. <!--收货人电话-->
  72. <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
  73. {{ deptBudgetList.receiverPhone }}
  74. </ws-form-item>
  75. <!--发货日期-->
  76. <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
  77. {{ deptBudgetList.deliveryDateStart }}
  78. </ws-form-item>
  79. <!--最晚到货日期-->
  80. <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
  81. {{ deptBudgetList.deliveryDateEnd }}
  82. </ws-form-item>
  83. <!--合同编号-->
  84. <ws-form-item label="合同编号" span="1" prop="contractNo">
  85. {{ deptBudgetList.contractNo }}
  86. </ws-form-item>
  87. </ws-info-table>
  88. <div class="small-title" style="font-size: 16px">联络员及车皮信息</div>
  89. <div class="myTest">
  90. <!--当前运输总价-->
  91. <ws-form-item label="当前运输总价(元/吨):" span="1" prop="tranPrice">
  92. <ws-input
  93. v-model="deptBudgetList.tranPrice"
  94. maxlength="70"
  95. disabled
  96. size="small"
  97. style="width:70px"
  98. />
  99. </ws-form-item>
  100. </div>
  101. <div
  102. class="liaison"
  103. v-for="(item, index) in deptBudgetList.tranCarInfoList"
  104. :key="index"
  105. >
  106. <ws-info-table>
  107. <!--姓名-->
  108. <ws-form-item label="姓名:" span="1" prop="driver">
  109. {{ item.driver }}
  110. </ws-form-item>
  111. <!--电话-->
  112. <ws-form-item label="电话:" span="1" prop="driverPhone">
  113. {{ item.driverPhone }}
  114. </ws-form-item>
  115. <!--发车日期-->
  116. <ws-form-item label="发车日期:" span="1" prop="sendDateStart">
  117. {{ item.sendDateStart }}
  118. </ws-form-item>
  119. <!--到站日期-->
  120. <ws-form-item label="到站日期:" span="1" prop="receiveDateEnd">
  121. {{ item.receiveDateEnd }}
  122. </ws-form-item>
  123. <!--车型-->
  124. <ws-form-item label="车型:" span="1" prop="carModel">
  125. {{ item.carModel }}
  126. </ws-form-item>
  127. <!--车厢号-->
  128. <ws-form-item label="车厢号:" span="1" prop="boxNo">
  129. {{ item.boxNo }}
  130. </ws-form-item>
  131. </ws-info-table>
  132. </div>
  133. </ws-form>
  134. <!-- 提交 -->
  135. <div style="text-align: right; padding: 10px" class="center">
  136. <el-button
  137. class="bg-bottom"
  138. type="primary"
  139. size="small"
  140. @click="returnsales()"
  141. >关闭</el-button
  142. >
  143. </div>
  144. </div>
  145. </template>
  146. <script>
  147. import { regionData } from 'element-china-area-data'
  148. import { seeCat } from '@/model/transport/index'
  149. import WsUpload from '@/components/WsUpload'
  150. import mapDrag from '@/components/mapdrag/mapdrag'
  151. export default {
  152. name: 'viewSpareMoney',
  153. components: {
  154. WsUpload,
  155. mapDrag,
  156. },
  157. watch: {
  158. vesselId(val) {
  159. this.getVesselData()
  160. },
  161. isShow(val) {
  162. this.showType = val
  163. },
  164. },
  165. data() {
  166. return {
  167. deptBudgetList: {
  168. totalStorage: 0,
  169. tranCarInfoList: [],
  170. },
  171. options_: regionData,
  172. selectedOptions: [],
  173. center: [116.244694, 39.517344],
  174. listDate: { country: '中国', level: 'country', city: '' },
  175. citylist: [],
  176. tranType: 2,
  177. rules: {
  178. warehouseName: [
  179. {
  180. required: true,
  181. message: '请输入仓库名称',
  182. trigger: 'blur',
  183. },
  184. {
  185. min: 2,
  186. max: 20,
  187. message: '仓库名长度不符合要求,请输入2-20字符之内',
  188. trigger: 'blur',
  189. },
  190. ],
  191. },
  192. size: 10,
  193. unitList: [],
  194. freightspace: [],
  195. name: '',
  196. list: [],
  197. staffList: [],
  198. options: [],
  199. carModel: [],
  200. tranCarInfoList: {},
  201. arr: [],
  202. }
  203. },
  204. activated() {
  205. this.deptBudgetList.id = this.$route.query.id
  206. this.getList()
  207. },
  208. computed: {
  209. totalStorage: function () {
  210. var maxStorage = 0
  211. for (var i = 0; i < this.freightspace.length; i++) {
  212. maxStorage += Number(this.freightspace[i].maxStorage)
  213. }
  214. return maxStorage
  215. },
  216. },
  217. methods: {
  218. confirmPositioncity() {
  219. this.listDate.level = 'city'
  220. this.listDate.country = this.name
  221. },
  222. // 关闭 dialog时 处理文件url 初始化upload组件
  223. // handleClose() {
  224. // this.dialogViewSpareMoney = false
  225. // },
  226. handleChange(value) {
  227. this.selectedOptions = value
  228. },
  229. returnsales() {
  230. this.deptBudgetList = {}
  231. this.freightspace = []
  232. this.selectedOptions = ''
  233. this.$router.go(-1)
  234. },
  235. // confirmPosition() {
  236. // this.draggable = false
  237. // },
  238. // 上传附件
  239. uploadSuccess(data, files, url) {
  240. console.log(data, files, url)
  241. },
  242. resetForm(deptBudgetList) {
  243. this.$refs[deptBudgetList].resetFields()
  244. },
  245. getList() {
  246. seeCat({ id: this.deptBudgetList.id })
  247. .toPromise()
  248. .then((response) => {
  249. this.deptBudgetList = response
  250. this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
  251. })
  252. },
  253. selectChapterTwo(e) {
  254. for (var i = 0; i < this.ChapterTwoList.length; i++) {
  255. if (this.ChapterTwoList[i].constValue == e) {
  256. this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
  257. }
  258. }
  259. },
  260. selectunitList(e) {
  261. for (var i = 0; i < this.unitList.length; i++) {
  262. if (this.unitList[i].constValue == e) {
  263. this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
  264. }
  265. }
  266. },
  267. selectgrade(e) {
  268. for (var i = 0; i < this.gradeList.length; i++) {
  269. if (this.gradeList[i].constValue == e) {
  270. this.deptBudgetList.gradeKey = this.gradeList[i].constKey
  271. }
  272. }
  273. },
  274. selectgoodsName(e) {
  275. for (var i = 0; i < this.goodnameList.length; i++) {
  276. if (this.goodnameList[i].constValue == e) {
  277. this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
  278. }
  279. }
  280. },
  281. selectpackingMethod(e) {
  282. for (var i = 0; i < this.packtypeList.length; i++) {
  283. if (this.packtypeList[i].constValue == e) {
  284. this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
  285. }
  286. }
  287. },
  288. // 编辑
  289. editClick(item, index) {
  290. const map = JSON.parse(JSON.stringify(item))
  291. if (Object.is(item.id, 1)) {
  292. return
  293. }
  294. if (Object.is(this.unitList[index].flag, 'delete')) {
  295. map.flag = 'check'
  296. this.$set(this.unitList, index, map)
  297. } else {
  298. map.flag = 'delete'
  299. this.$set(this.unitList, index, map)
  300. }
  301. },
  302. // 删除
  303. deleteClick(item, index) {
  304. if (Object.is(item.constKey, 1)) {
  305. return
  306. }
  307. if (!item.constValue) {
  308. this.unitList.splice(index, 1)
  309. return
  310. }
  311. delxiala({ id: this.unitList[index].id })
  312. .toPromise()
  313. .then((response) => {
  314. this.getUnitList()
  315. this.pleaseChoose = ''
  316. })
  317. },
  318. },
  319. }
  320. </script>
  321. <style lang="scss" scoped>
  322. /deep/.totalStorage .el-input__inner {
  323. color: #afb5cb;
  324. background: #f5f7fa;
  325. }
  326. .small-title {
  327. position: relative;
  328. padding: 10px;
  329. font-weight: 600;
  330. }
  331. .small-title::before {
  332. position: absolute;
  333. content: '';
  334. display: block;
  335. background: #5473e8;
  336. width: 4px;
  337. height: 14px;
  338. left: 0px;
  339. top: 13px;
  340. }
  341. .position {
  342. position: relative;
  343. }
  344. .del {
  345. position: absolute;
  346. right: -38px;
  347. top: 9px;
  348. cursor: pointer;
  349. }
  350. .del {
  351. right: 0;
  352. }
  353. .amap-page-container {
  354. width: 300px;
  355. height: 300px;
  356. }
  357. .el-form {
  358. padding: 0 15%;
  359. }
  360. /deep/.ws-info-table .el-form-item {
  361. border-right: 1px solid transparent;
  362. border-bottom: 1px solid transparent;
  363. margin-top: 6px;
  364. }
  365. .readonly {
  366. position: relative;
  367. }
  368. .readonly:after {
  369. content: '*';
  370. color: #ff2727;
  371. position: absolute;
  372. right: 8px;
  373. z-index: 10;
  374. top: 21%;
  375. font-size: 20px;
  376. }
  377. .title {
  378. position: relative;
  379. }
  380. .title::before {
  381. content: '';
  382. display: inline-block;
  383. width: 5px;
  384. height: 30px;
  385. background: #5473e8;
  386. position: absolute;
  387. left: 0;
  388. }
  389. .el-button--primary {
  390. background-color: #5878e8;
  391. border-color: #5878e8;
  392. }
  393. .el-col {
  394. background: #f6f7fc;
  395. }
  396. /deep/.ws-info-table .el-form-item .el-form-item__label {
  397. width: 100px;
  398. text-align: center;
  399. background: #fff;
  400. // border: 1px solid #cdd2dc;
  401. }
  402. .button-container {
  403. display: flex;
  404. flex-wrap: nowrap;
  405. justify-content: space-between;
  406. align-items: center;
  407. background-color: #fff;
  408. width: 100%;
  409. height: 50px;
  410. padding: 0 10px;
  411. & > div {
  412. margin-left: 10px;
  413. display: flex;
  414. flex-wrap: nowrap;
  415. flex-direction: row;
  416. & > span {
  417. line-height: 50px;
  418. }
  419. }
  420. /deep/.auditFlow-box {
  421. position: unset;
  422. margin-left: 10px;
  423. &/deep/.auditFlow-icon {
  424. width: auto;
  425. padding-right: 30px;
  426. }
  427. &/deep/.auditFlow-main {
  428. position: absolute;
  429. }
  430. }
  431. }
  432. .box-app {
  433. display: inline-block;
  434. float: left;
  435. margin-left: 30px;
  436. line-height: 50px;
  437. }
  438. /deep/.el-dialog {
  439. .el-form-item {
  440. margin-bottom: 0 !important;
  441. .el-input--medium {
  442. textarea {
  443. min-height: 100px !important;
  444. }
  445. }
  446. }
  447. }
  448. .collapse-bottom {
  449. margin-bottom: 20px;
  450. }
  451. .input-main .textarea .el-textarea__inner {
  452. width: 100%;
  453. z-index: 1;
  454. }
  455. .bg-left {
  456. padding-left: 30px;
  457. }
  458. .bg-right {
  459. padding-right: 10px;
  460. text-align: right;
  461. }
  462. .bg-bottom {
  463. margin: 15px 0px;
  464. }
  465. .wenzi {
  466. width: 900px;
  467. margin: 0 auto;
  468. }
  469. .wenzi h3 {
  470. display: inline-block;
  471. left: 10px;
  472. }
  473. .wenzi p {
  474. display: inline-block;
  475. }
  476. .center {
  477. margin-right: 50px;
  478. }
  479. .el-form-item {
  480. width: 50%;
  481. }
  482. .el-form-item__label {
  483. text-align: center;
  484. }
  485. .ce {
  486. width: 900px;
  487. margin: 0 auto;
  488. }
  489. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  490. /* height: 82px;*/
  491. /*}*/
  492. // 控制select为只读的时候显示样式
  493. .hide-sel {
  494. .el-input__inner {
  495. border: 0px;
  496. }
  497. .el-icon-arrow-up {
  498. display: none;
  499. }
  500. .el-textarea__inner {
  501. background-color: #fff !important;
  502. border: 0;
  503. }
  504. .el-date-editor {
  505. i {
  506. display: none;
  507. }
  508. }
  509. .is-disabled {
  510. .el-input__inner:hover {
  511. background-color: #fff !important;
  512. border: 0;
  513. }
  514. color: #606266;
  515. .el-input__inner {
  516. background-color: #fff !important;
  517. border: 0;
  518. color: #606266;
  519. }
  520. .el-textarea__inner {
  521. background-color: #fff !important;
  522. border: 0;
  523. color: #606266;
  524. }
  525. }
  526. }
  527. // 控制select为只读的时候显示样式
  528. /deep/.ws-class-table-col {
  529. height: auto;
  530. padding: 0px 2px;
  531. /deep/.el-input__inner {
  532. padding: 0px 2px;
  533. }
  534. }
  535. /deep/.is-disabled {
  536. .el-input__prefix,
  537. .el-input__suffix {
  538. display: none;
  539. }
  540. .el-input__inner {
  541. color: #c0c4cc !important;
  542. font-size: 14px;
  543. cursor: text;
  544. padding: 0 10px !important;
  545. }
  546. }
  547. .winseaview-view {
  548. padding: 0 0 20px;
  549. }
  550. .container {
  551. overflow: scroll;
  552. height: 93vh;
  553. }
  554. .ws-info-table .el-form-item {
  555. width: 33.3333%;
  556. }
  557. .readonly:after {
  558. display: none;
  559. }
  560. .el-textarea__inner {
  561. display: none;
  562. }
  563. .el-form {
  564. margin-top: 50px;
  565. }
  566. .readonly {
  567. width: 16%;
  568. }
  569. //去边框
  570. /deep/.el-form-item {
  571. border-right: 0px;
  572. border-bottom: 0px;
  573. }
  574. /deep/.ws-info-table {
  575. border-left: 0px;
  576. border-top: 0px;
  577. }
  578. /deep/.ws-info-table .el-form-item {
  579. border: none;
  580. height: 50px;
  581. }
  582. /deep/.ws-info-table .el-form-item .el-form-item__label {
  583. background-color: #fff;
  584. font-size: 14px;
  585. font-family: PingFangSC-Regular, PingFang SC;
  586. font-weight: 400;
  587. color: #8890b1;
  588. line-height: 16px;
  589. }
  590. /deep/.ws-info-table .el-form-item .el-form-item__content {
  591. border-radius: 4px;
  592. margin-bottom: 5px;
  593. background-color: #fff;
  594. font-size: 14px;
  595. color: #8890b1;
  596. padding: 0 25px;
  597. border-left: 1px solid transparent;
  598. background: #f5f7fa;
  599. }
  600. /deep/.flex .ws-info-table .el-form-item .el-form-item__content {
  601. border: 0px;
  602. }
  603. //联络员及车次
  604. /deep/.liaison .ws-info-table .el-form-item {
  605. width: 20%;
  606. }
  607. /deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
  608. width: 50%;
  609. background: #f5f7fa;
  610. border: none;
  611. text-align: center;
  612. }
  613. /deep/.liaison .flex {
  614. display: contents;
  615. }
  616. /deep/.liaison {
  617. background: #f5f7fa;
  618. border-radius: 4px;
  619. border: 1px solid #d8dce6;
  620. }
  621. /deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
  622. border-right: 1px solid #d8dce6;
  623. padding: 0px;
  624. border-radius: 0px;
  625. }
  626. .myTest{
  627. width: 800px;
  628. display: flex;
  629. height: 40px;
  630. }
  631. </style>