tranManagementShippingFeedback.vue 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163
  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. <!-- 运输方式 -->
  88. <ws-form-item label="运输方式" span="1" prop="tranType">
  89. {{ deptBudgetList.tranType }}
  90. </ws-form-item>
  91. </ws-info-table>
  92. <div class="small-title" style="font-size: 16px">联络员及航次</div>
  93. <ws-info-table>
  94. <!-- 姓名 -->
  95. <ws-form-item label="姓名" span="1" prop="driver">
  96. {{ deptBudgetList.driver }}
  97. </ws-form-item>
  98. <!-- 电话 -->
  99. <ws-form-item label="电话" span="1" prop="driverPhone">
  100. {{ deptBudgetList.driverPhone }}
  101. </ws-form-item>
  102. <!--发船日期-->
  103. <ws-form-item label="发船日期" span="1" prop="sendDateStart">
  104. <ws-date-picker
  105. v-model="deptBudgetList.sendDateStart"
  106. type="date"
  107. placeholder="请选择发船日期"
  108. value-format="yyyy-MM-dd"
  109. />
  110. </ws-form-item>
  111. <!-- 预计到港日期 -->
  112. <ws-form-item label="预计到港日期" span="1" prop="receiveDateEnd">
  113. {{ deptBudgetList.receiveDateEnd }}
  114. </ws-form-item>
  115. <!-- 船名 -->
  116. <ws-form-item label="船名" span="1" prop="shipName">
  117. {{ deptBudgetList.shipName }}
  118. </ws-form-item>
  119. <!-- 航次 -->
  120. <ws-form-item label="航次" span="1" prop="shipNo">
  121. {{ deptBudgetList.shipNo }}
  122. </ws-form-item>
  123. <!-- 类型 -->
  124. <ws-form-item label="类型" span="1" prop="shipType">
  125. {{ deptBudgetList.shipType }}
  126. </ws-form-item>
  127. <!-- 数量 -->
  128. <ws-form-item
  129. label="数量"
  130. span="1"
  131. prop="boxNumber"
  132. v-if="deptBudgetList.shipType == '集装箱'"
  133. >
  134. {{ deptBudgetList.boxNumber }}
  135. </ws-form-item>
  136. </ws-info-table>
  137. <div class="small-title" style="font-size: 16px; width: 50%; float: left">
  138. 装船详情
  139. </div>
  140. <!-- 导入 -->
  141. <div style="font-size: 16px; width: 50%; float: left; text-align: right">
  142. <el-button
  143. class="bg-bottom"
  144. type="primary"
  145. size="small"
  146. @click="import(deptBudgetList)"
  147. >导入</el-button
  148. >
  149. </div>
  150. <div class="liaison">
  151. <div
  152. style="width: 100%"
  153. class="flex position"
  154. v-for="(item, index) in this.freightspace"
  155. :key="index"
  156. >
  157. <ws-info-table>
  158. <div class="catNos" v-if="item.shipType == '集装箱'">
  159. 集装箱-{{ index + 1 }}
  160. <span class="noservice" v-show="item.status == '未装车'">
  161. 未装船
  162. </span>
  163. <span class="service" v-show="item.status == '已装车'">
  164. 已装船
  165. </span>
  166. <span class="serviced" v-show="item.status == '已送达'">{{
  167. item.status
  168. }}</span>
  169. </div>
  170. <div class="catNos" v-if="item.shipType == '散船'">
  171. 仓位号-{{ index + 1 }}
  172. <span class="noservice" v-show="item.status == '未装车'">
  173. 未装船
  174. </span>
  175. <span class="service" v-show="item.status == '已装车'">
  176. 已装船
  177. </span>
  178. <span class="serviced" v-show="item.status == '已送达'">{{
  179. item.status
  180. }}</span>
  181. </div>
  182. <!--箱号-->
  183. <el-form-item
  184. label="箱号"
  185. prop="caseNo"
  186. v-if="item.shipType == '集装箱'"
  187. >
  188. <el-input
  189. v-if="item.status == '已装车' || item.status == '已送达'"
  190. :disabled="readonly"
  191. v-model="item.caseNo"
  192. placeholder="请输入箱号"
  193. ></el-input>
  194. <el-input
  195. v-else
  196. v-model="item.caseNo"
  197. placeholder="请输入箱号"
  198. ></el-input>
  199. </el-form-item>
  200. <!--封号-->
  201. <el-form-item
  202. label="封号"
  203. prop="titleNo"
  204. v-if="item.shipType == '集装箱'"
  205. >
  206. <el-input
  207. v-if="item.status == '已装车' || item.status == '已送达'"
  208. :disabled="readonly"
  209. v-model="item.titleNo"
  210. placeholder="请输入封号"
  211. ></el-input>
  212. <el-input
  213. v-else
  214. v-model="item.titleNo"
  215. placeholder="请输入封号"
  216. ></el-input>
  217. </el-form-item>
  218. <!-- 仓位号 -->
  219. <ws-form-item
  220. span="1"
  221. prop="binNumber"
  222. v-if="item.shipType == '散船'"
  223. >
  224. {{ item.binNumber }}
  225. </ws-form-item>
  226. <!-- 计划重量 -->
  227. <ws-form-item
  228. label="计划重量(吨)"
  229. span="1"
  230. prop="positionWeight"
  231. v-if="item.shipType == '散船'"
  232. >
  233. {{ item.positionWeight }}
  234. </ws-form-item>
  235. <!--装船净重-->
  236. <ws-form-item label="装船净重:" span="1" prop="loadNetWeight">
  237. <ws-input
  238. v-if="item.status == '已装车' || item.status == '已送达'"
  239. :disabled="readonly"
  240. v-model="item.loadNetWeight"
  241. placeholder="请输入装船净重"
  242. maxlength="20"
  243. size="small"
  244. />
  245. <ws-input
  246. v-else
  247. v-model="item.loadNetWeight"
  248. placeholder="请输入装船净重"
  249. maxlength="20"
  250. size="small"
  251. />
  252. </ws-form-item>
  253. <!--装船日期-->
  254. <el-form-item
  255. label="装船日期:"
  256. span="1"
  257. prop="loadingDate"
  258. label-width="100px"
  259. >
  260. <ws-date-picker
  261. v-if="item.status == '已装车' || item.status == '已送达'"
  262. :disabled="readonly"
  263. v-model="item.loadingDate"
  264. type="date"
  265. style="width: 150px"
  266. placeholder="请选择日期"
  267. value-format="yyyy-MM-dd"
  268. />
  269. <ws-date-picker
  270. v-else
  271. v-model="item.loadingDate"
  272. type="date"
  273. style="width: 150px"
  274. placeholder="请选择日期"
  275. value-format="yyyy-MM-dd"
  276. />
  277. </el-form-item>
  278. <div style="text-align: right; padding: 10px" class="center1">
  279. <el-button
  280. v-show="item.status == '未装车'"
  281. class="bg-bottom"
  282. type="primary"
  283. size="small"
  284. @click="submit(deptBudgetList)"
  285. >提交</el-button
  286. >
  287. </div>
  288. <div v-show=" item.signStatus == '未签合同'" class="signStatus">
  289. {{ item.signStatus }}
  290. </div>
  291. <div v-show=" item.signStatus == '已签合同'" class="signStatus1">
  292. {{ item.signStatus }}
  293. </div>
  294. </ws-info-table>
  295. </div>
  296. </div>
  297. <div style="text-align: right; color: #8890b1; font-size: 16px">
  298. 合计(吨):{{ total }}/{{ deptBudgetList.weight }}
  299. <!--阶段状态-->
  300. <span
  301. class="noservice"
  302. v-show="deptBudgetList.feedbackStatus == '执行中'"
  303. >
  304. 未完货
  305. </span>
  306. <span
  307. class="service"
  308. v-show="deptBudgetList.feedbackStatus == '已完货'"
  309. >{{ deptBudgetList.feedbackStatus }}</span
  310. >
  311. </div>
  312. <!--运单-->
  313. <!-- <div
  314. style="width: 100%"
  315. class="flex position"
  316. v-for="(item, index) in this.freightspace"
  317. :key="index"
  318. > -->
  319. <ws-form-item label="运单:" span="1" prop="loadPoundImg">
  320. <!-- slot-scope="scope" -->
  321. <template>
  322. <el-upload
  323. action="https://www.zthymaoyi.com/upload/admin"
  324. :show-file-list="false"
  325. :on-success=" (res) => { uploadSuccessHandle1(res)}"
  326. class="avatar-uploader"
  327. accept=".jpg, .jpeg, .png, .gif"
  328. ><img
  329. width="18"
  330. height="20"
  331. style="vertical-align: text-top; position: relative"
  332. src="../../../public/img/fujian.png"
  333. alt=""
  334. />
  335. </el-upload>
  336. <div class="tupian">
  337. <span v-if="deptBudgetList.tranCarInfoList[0].loadPoundImg != null " >1</span>
  338. <span v-if="deptBudgetList.tranCarInfoList[0].loadPoundImg == null ">未上传</span>
  339. </div>
  340. </template>
  341. </ws-form-item>
  342. <!-- </div> -->
  343. </ws-form>
  344. <!-- 完货 -->
  345. <div style="text-align: right; padding: 10px" class="center">
  346. <el-button
  347. class="bg-bottom"
  348. type="primary"
  349. size="small"
  350. @click="finished(deptBudgetList)"
  351. >完货</el-button
  352. >
  353. </div>
  354. </div>
  355. </template>
  356. <script>
  357. import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
  358. import { seeCat, packList, feedback, state } from '@/model/transport/index'
  359. import { getstaff } from '@/model/warehouse/index'
  360. import WsUpload from '@/components/WsUpload'
  361. import mapDrag from '@/components/mapdrag/mapdrag'
  362. export default {
  363. name: 'viewSpareMoney',
  364. components: {
  365. WsUpload,
  366. mapDrag,
  367. },
  368. watch: {
  369. vesselId(val) {
  370. this.getVesselData()
  371. },
  372. isShow(val) {
  373. this.showType = val
  374. },
  375. },
  376. data() {
  377. return {
  378. deptBudgetList: {
  379. totalStorage: 0,
  380. sendDateStart:''
  381. },
  382. tranCarInfoList: {
  383. loadPoundImg: '',
  384. },
  385. options_: regionData,
  386. heightData: '600px',
  387. zoom: 7,
  388. selectedOptions: [],
  389. center: [116.244694, 39.517344],
  390. window: '',
  391. radio: 1,
  392. personCharge: [],
  393. district: null,
  394. driverList: [],
  395. readonly: true,
  396. listDate: { country: '中国', level: 'country', city: '' },
  397. citylist: [],
  398. compId: sessionStorage.getItem('ws-pf_compId'),
  399. rules: {
  400. warehouseName: [
  401. {
  402. required: true,
  403. message: '请输入仓库名称',
  404. trigger: 'blur',
  405. },
  406. {
  407. min: 2,
  408. max: 20,
  409. message: '仓库名长度不符合要求,请输入2-20字符之内',
  410. trigger: 'blur',
  411. },
  412. ],
  413. },
  414. tranType: 1,
  415. size: 10,
  416. value1: '',
  417. unitList: [],
  418. freightspace: [
  419. {
  420. caseNo: '',
  421. titleNo: '',
  422. binNumber: '',
  423. positionWeight: '',
  424. loadNetWeight: '',
  425. loadingDate: '',
  426. },
  427. // {loadPoundImg:{}},
  428. ],
  429. name: '',
  430. staffList: [],
  431. options: [],
  432. carModel: [],
  433. tranCarInfoList: {
  434. loadPoundImg: '',
  435. },
  436. //上传
  437. accessoryTFs: false,
  438. fileList: [],
  439. appendixIdsAdd: '',
  440. }
  441. },
  442. activated() {
  443. this.deptBudgetList.id = this.$route.query.id
  444. this.getList()
  445. },
  446. computed: {
  447. totalStorage: function () {
  448. var maxStorage = 0
  449. for (var i = 0; i < this.freightspace.length; i++) {
  450. maxStorage += Number(this.freightspace[i].maxStorage)
  451. }
  452. return maxStorage
  453. },
  454. total: function () {
  455. if (this.deptBudgetList.tranCarInfoList != null) {
  456. var maxStorage = 0
  457. for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
  458. maxStorage += Number(
  459. this.deptBudgetList.tranCarInfoList[i].loadNetWeight
  460. )
  461. }
  462. return maxStorage
  463. } else {
  464. return 0
  465. }
  466. },
  467. },
  468. methods: {
  469. dataFilter(val) {
  470. this.deptBudgetList.personCharge = val
  471. if (val) {
  472. this.options = this.staffList.filter((item) => {
  473. if (
  474. !!~item.staffName.indexOf(val) ||
  475. !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
  476. ) {
  477. return true
  478. }
  479. })
  480. } else {
  481. this.options = this.staffList
  482. }
  483. },
  484. selectstaff(e) {
  485. for (var i = 0; i < this.staffList.length; i++) {
  486. if (this.staffList[i].staffName == e) {
  487. this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
  488. this.freightspace[i].driverPhone = this.staffList[i].staffMobilePhone
  489. this.deptBudgetList.personChargeKey = this.staffList[i].staffId
  490. }
  491. }
  492. },
  493. marker: function (item) {
  494. this.deptBudgetList.warehousePositioning =
  495. item.lnglat.lat + ',' + item.lnglat.lng
  496. },
  497. selectedAddress(e) {
  498. this.deptBudgetList.warehousePositioning =
  499. e.center.lat + ',' + e.center.lng
  500. },
  501. confirmPositioncity() {
  502. this.listDate.level = 'city'
  503. this.listDate.country = this.name
  504. },
  505. // 关闭 dialog时 处理文件url 初始化upload组件
  506. handleClose() {
  507. this.dialogViewSpareMoney = false
  508. },
  509. //下拉司机姓名改变事件
  510. selectdriver() {},
  511. handleChange(value) {
  512. this.selectedOptions = value
  513. },
  514. returnsales() {
  515. this.deptBudgetList = {}
  516. this.freightspace = {}
  517. this.selectedOptions = ''
  518. this.deptBudgetList.tranCarInfoList = []
  519. this.$router.push({ path: 'tranManagementTransporHairRespond' })
  520. },
  521. // 上传附件
  522. uploadSuccess(data, files, url) {
  523. console.log(data, files, url)
  524. },
  525. handleClose() {
  526. this.accessoryTFs = false
  527. },
  528. //导入
  529. import() {},
  530. //完货
  531. finished() {
  532. this.$confirm(`完货操作后,装船信息不可修改,是否确定完货?`, {
  533. confirmButtonText: '确定',
  534. cancelButtonText: '取消',
  535. type: 'warning',
  536. })
  537. .then(() => {
  538. this.$refs.deptBudgetList.validate((valid) => {
  539. if (valid) {
  540. var tranProcessInfo = {}
  541. tranProcessInfo.id = this.deptBudgetList.id
  542. state(tranProcessInfo)
  543. .toPromise()
  544. .then((response) => {
  545. this.$message.success('完货成功')
  546. this.deptBudgetList = {}
  547. this.freightspace = {}
  548. this.selectedOptions = ''
  549. this.$router.push({
  550. path: 'tranManagementTransporHairRespond',
  551. })
  552. })
  553. } else {
  554. return false
  555. }
  556. })
  557. })
  558. .catch(() => {
  559. return false
  560. })
  561. },
  562. submit() {
  563. // if (!this.freightspace[i].sendDateStart) {
  564. // this.$message({
  565. // message: '发船日期不能为空!',
  566. // type: 'warning',
  567. // })
  568. // return
  569. // }
  570. // if (!this.freightspace[i].caseNo) {
  571. // this.$message({
  572. // message: '箱号不能为空!',
  573. // type: 'warning',
  574. // })
  575. // return
  576. // }
  577. // if (
  578. // this.freightspace[i].caseNo.length > 15 ||
  579. // this.freightspace[i].caseNo.length < 1
  580. // ) {
  581. // this.$message({
  582. // message: '箱号输入错误!',
  583. // type: 'warning',
  584. // })
  585. // return
  586. // }
  587. // if (!this.freightspace[i].titleNo) {
  588. // this.$message({
  589. // message: '封号不能为空!',
  590. // type: 'warning',
  591. // })
  592. // return
  593. // }
  594. // if (
  595. // this.freightspace[i].titleNo.length > 15 ||
  596. // this.freightspace[i].titleNo.length < 1
  597. // ) {
  598. // this.$message({
  599. // message: '封号输入错误!',
  600. // type: 'warning',
  601. // })
  602. // return
  603. // }
  604. // if (!this.freightspace[i].loadNetWeight) {
  605. // this.$message({
  606. // message: '装船净重不能为空!',
  607. // type: 'warning',
  608. // })
  609. // return
  610. // }
  611. // if (
  612. // (this.freightspace[i].loadNetWeight &&
  613. // String(this.freightspace[i].loadNetWeight).indexOf('.') != -1 &&
  614. // String(this.freightspace[i].loadNetWeight).length -
  615. // (String(this.freightspace[i].loadNetWeight).indexOf('.') + 1) >
  616. // 2) ||
  617. // this.freightspace[i].loadNetWeight > 10000 ||
  618. // this.freightspace[i].loadNetWeight < 0
  619. // ) {
  620. // this.$message({
  621. // message: '装船净重输入错误',
  622. // type: 'warning',
  623. // })
  624. // return
  625. // }
  626. // if (!this.freightspace[i].loadingDate) {
  627. // this.$message({
  628. // message: '装船日期不能为空!',
  629. // type: 'warning',
  630. // })
  631. // return
  632. // }
  633. this.$confirm(`提交成功后装船信息不可修改,是否确定提交?`, {
  634. confirmButtonText: '确定',
  635. cancelButtonText: '取消',
  636. type: 'warning',
  637. })
  638. .then(() => {
  639. this.$refs.deptBudgetList.validate((valid) => {
  640. if (valid) {
  641. // this.deptBudgetList.totalStorage = this.totalStorage
  642. this.tranCarInfoList = this.freightspace
  643. this.tranCarInfoList[0].sendDateStart = this.deptBudgetList.sendDateStart
  644. // this.tranCarInfoList.boxNo = this.arr.toString()
  645. for (var i = 0; i < this.tranCarInfoList.length; i++) {
  646. this.tranCarInfoList[i].id = this.freightspace[i].id
  647. }
  648. var tranProcessInfo = {}
  649. tranProcessInfo.id = this.deptBudgetList.id
  650. tranProcessInfo.infoId = this.deptBudgetList.infoId
  651. tranProcessInfo.processNo = this.deptBudgetList.processNo
  652. tranProcessInfo.tranCarInfoList = this.tranCarInfoList
  653. // dispatchCat({tranCarInfo:{tranCarInfoList:[this.tranCarInfoList],id:this.deptBudgetList.id}
  654. feedback(tranProcessInfo)
  655. .toPromise()
  656. .then((response) => {
  657. this.$message.success('提交成功')
  658. this.deptBudgetList = {}
  659. this.freightspace = {}
  660. this.selectedOptions = ''
  661. this.$router.push({
  662. path: 'tranManagementTransporHairRespond',
  663. })
  664. })
  665. } else {
  666. // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  667. return false
  668. }
  669. })
  670. })
  671. .catch(() => {
  672. return false
  673. })
  674. },
  675. resetForm(deptBudgetList) {
  676. this.$refs[deptBudgetList].resetFields()
  677. },
  678. getList() {
  679. seeCat({ id: this.deptBudgetList.id })
  680. .toPromise()
  681. .then((response) => {
  682. this.deptBudgetList = response
  683. this.deptBudgetList.driver = response.tranCarInfoList[0].driver
  684. this.deptBudgetList.driverPhone =
  685. response.tranCarInfoList[0].driverPhone
  686. this.$set(this.deptBudgetList,'sendDateStart',response.tranCarInfoList[0].sendDateStart)
  687. this.deptBudgetList.receiveDateEnd =
  688. response.tranCarInfoList[0].receiveDateEnd
  689. this.deptBudgetList.shipName = response.tranCarInfoList[0].shipName
  690. this.deptBudgetList.shipNo = response.tranCarInfoList[0].shipNo
  691. this.deptBudgetList.shipType = response.tranCarInfoList[0].shipType
  692. this.deptBudgetList.boxNumber = response.tranCarInfoList[0].boxNumber
  693. // this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
  694. this.freightspace = response.tranCarInfoList
  695. for (var i = 0; i < this.freightspace.length; i++) {
  696. if (!this.freightspace[i].loadNetWeight) {
  697. this.freightspace[i].loadNetWeight = 0
  698. }
  699. }
  700. })
  701. //司机姓名下拉
  702. getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
  703. .toPromise()
  704. .then((response) => {
  705. this.options = response
  706. this.staffList = response
  707. }),
  708. //车型
  709. packList({ constId: 'TRAN5' })
  710. .toPromise()
  711. .then((response) => {
  712. this.carModel = response
  713. })
  714. },
  715. handleExamine() {},
  716. approve() {},
  717. // returnsales() {
  718. // this.$router.push({ path: 'purchaseContract' })
  719. // },
  720. selectChapterTwo(e) {
  721. for (var i = 0; i < this.ChapterTwoList.length; i++) {
  722. if (this.ChapterTwoList[i].constValue == e) {
  723. this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
  724. }
  725. }
  726. },
  727. selectunitList(e) {
  728. for (var i = 0; i < this.unitList.length; i++) {
  729. if (this.unitList[i].constValue == e) {
  730. this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
  731. }
  732. }
  733. },
  734. selectgrade(e) {
  735. for (var i = 0; i < this.gradeList.length; i++) {
  736. if (this.gradeList[i].constValue == e) {
  737. this.deptBudgetList.gradeKey = this.gradeList[i].constKey
  738. }
  739. }
  740. },
  741. selectgoodsName(e) {
  742. for (var i = 0; i < this.goodnameList.length; i++) {
  743. if (this.goodnameList[i].constValue == e) {
  744. this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
  745. }
  746. }
  747. },
  748. selectpackingMethod(e) {
  749. for (var i = 0; i < this.packtypeList.length; i++) {
  750. if (this.packtypeList[i].constValue == e) {
  751. this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
  752. }
  753. }
  754. },
  755. uploadSuccessHandle1(e) {
  756. this.deptBudgetList.tranCarInfoList[0].loadPoundImg = e.url
  757. },
  758. },
  759. }
  760. </script>
  761. <style lang="scss" scoped>
  762. /deep/.totalStorage .el-input__inner {
  763. color: #afb5cb;
  764. background: #f5f7fa;
  765. }
  766. .small-title {
  767. position: relative;
  768. padding: 10px;
  769. font-weight: 600;
  770. }
  771. .small-title::before {
  772. position: absolute;
  773. content: '';
  774. display: block;
  775. background: #5473e8;
  776. width: 4px;
  777. height: 14px;
  778. left: 0px;
  779. top: 13px;
  780. }
  781. .position {
  782. position: relative;
  783. }
  784. .del {
  785. position: absolute;
  786. right: -38px;
  787. top: 14px;
  788. cursor: pointer;
  789. right: 0;
  790. display: inline-block;
  791. font-size: 26px;
  792. width: 26px;
  793. height: 10px;
  794. line-height: 0px;
  795. }
  796. .amap-page-container {
  797. width: 300px;
  798. height: 300px;
  799. }
  800. .el-form {
  801. padding: 0 15%;
  802. }
  803. /deep/.ws-info-table .el-form-item {
  804. border-right: 1px solid transparent;
  805. border-bottom: 1px solid transparent;
  806. }
  807. .readonly {
  808. position: relative;
  809. }
  810. .readonly:after {
  811. content: '*';
  812. color: #ff2727;
  813. position: absolute;
  814. right: 8px;
  815. z-index: 10;
  816. top: 21%;
  817. font-size: 20px;
  818. }
  819. .title {
  820. position: relative;
  821. }
  822. .title::before {
  823. content: '';
  824. display: inline-block;
  825. width: 5px;
  826. height: 30px;
  827. background: #5473e8;
  828. position: absolute;
  829. left: 0;
  830. }
  831. .el-button--primary {
  832. background-color: #5878e8;
  833. border-color: #5878e8;
  834. }
  835. .el-col {
  836. background: #f6f7fc;
  837. }
  838. /deep/.ws-info-table .el-form-item .el-form-item__content {
  839. padding: 0 25px;
  840. border-left: 1px solid transparent;
  841. background: #fff;
  842. }
  843. /deep/.ws-info-table .el-form-item .el-form-item__label {
  844. width: 100px;
  845. text-align: center;
  846. background: #fff;
  847. // border: 1px solid #cdd2dc;
  848. }
  849. .button-container {
  850. display: flex;
  851. flex-wrap: nowrap;
  852. justify-content: space-between;
  853. align-items: center;
  854. background-color: #fff;
  855. width: 100%;
  856. height: 50px;
  857. padding: 0 10px;
  858. & > div {
  859. margin-left: 10px;
  860. display: flex;
  861. flex-wrap: nowrap;
  862. flex-direction: row;
  863. & > span {
  864. line-height: 50px;
  865. }
  866. }
  867. /deep/.auditFlow-box {
  868. position: unset;
  869. margin-left: 10px;
  870. &/deep/.auditFlow-icon {
  871. width: auto;
  872. padding-right: 30px;
  873. }
  874. &/deep/.auditFlow-main {
  875. position: absolute;
  876. }
  877. }
  878. }
  879. .box-app {
  880. display: inline-block;
  881. float: left;
  882. margin-left: 30px;
  883. line-height: 50px;
  884. }
  885. /deep/.el-dialog {
  886. .el-form-item {
  887. margin-bottom: 0 !important;
  888. .el-input--medium {
  889. textarea {
  890. min-height: 100px !important;
  891. }
  892. }
  893. }
  894. }
  895. .collapse-bottom {
  896. margin-bottom: 20px;
  897. }
  898. .input-main .textarea .el-textarea__inner {
  899. width: 100%;
  900. z-index: 1;
  901. }
  902. .bg-left {
  903. padding-left: 30px;
  904. }
  905. .bg-right {
  906. padding-right: 10px;
  907. text-align: right;
  908. }
  909. .bg-bottom {
  910. margin: 15px 0px;
  911. }
  912. .wenzi {
  913. width: 900px;
  914. margin: 0 auto;
  915. }
  916. .wenzi h3 {
  917. display: inline-block;
  918. left: 10px;
  919. }
  920. .wenzi p {
  921. display: inline-block;
  922. }
  923. .center {
  924. width: 900px;
  925. margin: 0 auto;
  926. }
  927. .center1 {
  928. width: 100px;
  929. margin: 0 auto;
  930. margin-top: -2%
  931. }
  932. .el-form-item {
  933. width: 50%;
  934. }
  935. .el-form-item__label {
  936. text-align: center;
  937. }
  938. .ce {
  939. width: 900px;
  940. margin: 0 auto;
  941. }
  942. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  943. /* height: 82px;*/
  944. /*}*/
  945. // 控制select为只读的时候显示样式
  946. .hide-sel {
  947. .el-input__inner {
  948. border: 0px;
  949. }
  950. .el-icon-arrow-up {
  951. display: none;
  952. }
  953. .el-textarea__inner {
  954. background-color: #fff !important;
  955. border: 0;
  956. }
  957. .el-date-editor {
  958. i {
  959. display: none;
  960. }
  961. }
  962. // .is-disabled {
  963. // .el-input__inner:hover {
  964. // background-color: #fff !important;
  965. // border: 0;
  966. // }
  967. // color: #606266;
  968. // .el-input__inner {
  969. // background-color: #fff !important;
  970. // border: 0;
  971. // color: #606266;
  972. // }
  973. // .el-textarea__inner {
  974. // background-color: #fff !important;
  975. // border: 0;
  976. // color: #606266;
  977. // }
  978. // }
  979. }
  980. // 控制select为只读的时候显示样式
  981. /deep/.ws-class-table-col {
  982. height: auto;
  983. padding: 0px 2px;
  984. /deep/.el-input__inner {
  985. padding: 0px 2px;
  986. }
  987. }
  988. // /deep/.is-disabled {
  989. // .el-input__prefix,
  990. // .el-input__suffix {
  991. // display: none;
  992. // }
  993. // .el-input__inner {
  994. // background-color: #fff;
  995. // border-color: #fff !important;
  996. // color: #000 !important;
  997. // font-size: 14px;
  998. // cursor: text;
  999. // padding: 0 !important;
  1000. // }
  1001. // }
  1002. .winseaview-view {
  1003. padding: 0 0 20px;
  1004. }
  1005. .container {
  1006. overflow: scroll;
  1007. height: 93vh;
  1008. }
  1009. .ws-info-table .el-form-item {
  1010. width: 33.3333%;
  1011. }
  1012. .readonly:after {
  1013. display: none;
  1014. }
  1015. .el-textarea__inner {
  1016. display: none;
  1017. }
  1018. .el-form {
  1019. margin-top: 50px;
  1020. }
  1021. .readonly {
  1022. width: 16%;
  1023. }
  1024. //去边框
  1025. /deep/.el-form-item {
  1026. border-right: 0px;
  1027. border-bottom: 0px;
  1028. }
  1029. /deep/.ws-info-table {
  1030. border-left: 0px;
  1031. border-top: 0px;
  1032. }
  1033. .ws-info-table .el-form-item .el-form-item__content {
  1034. border: none;
  1035. }
  1036. /deep/.ws-info-table .el-form-item {
  1037. border: none;
  1038. height: 50px;
  1039. }
  1040. /deep/.ws-info-table .el-form-item .el-form-item__content {
  1041. background: #f5f7fa;
  1042. border-radius: 4px;
  1043. border: 1px solid #d8dce6;
  1044. font-family: PingFangSC-Regular, PingFang SC;
  1045. margin-bottom: 5px;
  1046. background-color: #fff;
  1047. font-size: 14px;
  1048. font-weight: 400;
  1049. color: #8890b1;
  1050. line-height: 16px;
  1051. }
  1052. /deep/.ws-info-table .el-form-item .el-form-item__label {
  1053. background-color: #fff;
  1054. font-size: 13px;
  1055. font-family: PingFangSC-Regular, PingFang SC;
  1056. font-weight: 400;
  1057. color: #8890b1;
  1058. line-height: 16px;
  1059. }
  1060. /deep/.ws-info-table .el-form-item .el-form-item__content {
  1061. background: #f5f7fa;
  1062. border-radius: 4px;
  1063. border: 1px solid #d8dce6;
  1064. }
  1065. /deep/.flex .ws-info-table .el-form-item .el-form-item__content {
  1066. border: 0px;
  1067. }
  1068. //联络员及车次
  1069. /deep/.liaison .ws-info-table .el-form-item {
  1070. width: 20%;
  1071. }
  1072. /deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
  1073. width: 50%;
  1074. background: #f6f7fc;
  1075. }
  1076. /deep/.liaison .flex {
  1077. display: contents;
  1078. }
  1079. /deep/.liaison .ws-info-table {
  1080. background: #f6f7fc;
  1081. border-radius: 4px;
  1082. border: 1px solid #d8dce6;
  1083. margin-top: 20px;
  1084. }
  1085. .catNos {
  1086. width: 100%;
  1087. height: 30px;
  1088. margin-top: 10px;
  1089. margin-left: 20px;
  1090. font-size: 14px;
  1091. }
  1092. .catNosCor {
  1093. color: #5473e8;
  1094. }
  1095. .add {
  1096. width: 130px;
  1097. height: 34px;
  1098. background: #f6f7fb;
  1099. border-radius: 17px;
  1100. color: #5473e8;
  1101. font-size: 14px;
  1102. border: none;
  1103. }
  1104. .add img {
  1105. display: inline-block;
  1106. margin-top: 3px;
  1107. margin-left: -30px;
  1108. }
  1109. .add .spans {
  1110. display: table-caption;
  1111. width: 56px;
  1112. height: 20px;
  1113. line-height: 18px;
  1114. }
  1115. .signStatus {
  1116. height: 25px;
  1117. border-radius: 3px;
  1118. border: 1px solid #5473e8;
  1119. padding: 0 3px;
  1120. color: #ffffff;
  1121. background: #c4cada;
  1122. line-height: 24px;
  1123. margin-left: 18px;
  1124. }
  1125. .signStatus1 {
  1126. height: 25px;
  1127. background: #e6ebff;
  1128. border-radius: 3px;
  1129. border: 1px solid #5473e8;
  1130. padding: 0 3px;
  1131. margin-left: 18px;
  1132. color: #5473e8;
  1133. line-height: 24px;
  1134. }
  1135. .line {
  1136. height: 26px;
  1137. margin-top: 6px;
  1138. left: 2px;
  1139. }
  1140. /deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
  1141. padding: 0px;
  1142. }
  1143. .noservice {
  1144. background: #c4cada;
  1145. color: #ffffff;
  1146. }
  1147. .service {
  1148. background: #e5f1f7;
  1149. color: #50cad4;
  1150. }
  1151. .tupian{
  1152. margin-left: 14%;
  1153. margin-top: -7%;
  1154. }
  1155. </style>