AddOrUpdate.vue 55 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="showDialog"
  5. width="80%"
  6. @close="handleClose"
  7. :close-on-click-modal="false"
  8. >
  9. <span>
  10. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  11. <el-row>
  12. <el-col :span="6">
  13. <el-form-item label="客户名称" prop="corpId">
  14. <el-select
  15. v-model="form.corpId"
  16. placeholder="请输入客户名称"
  17. :clearable="true"
  18. filterable
  19. :disabled="disabled"
  20. size="mini"
  21. style="width: 180px"
  22. >
  23. <el-option
  24. v-for="(dict, index) in fMblnoOptions"
  25. :key="index.fId"
  26. :label="dict.fName"
  27. :value="dict.fId"
  28. />
  29. </el-select>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="6">
  33. <el-form-item label="业务类型" prop="billType">
  34. <el-select
  35. v-model="form.billType"
  36. placeholder="请选择业务类型"
  37. :disabled="disabled"
  38. size="mini"
  39. style="width: 180px"
  40. >
  41. <el-option
  42. v-for="(dict, index) in billTypeList"
  43. :key="index.dictValue"
  44. :label="dict.dictLabel"
  45. :value="dict.dictValue"
  46. />
  47. </el-select>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="6">
  51. <el-form-item label="运输方式" prop="transType">
  52. <el-select
  53. v-model="form.transType"
  54. placeholder="请选择运输方式"
  55. :disabled="disabled"
  56. size="mini"
  57. style="width: 180px"
  58. >
  59. <el-option
  60. v-for="(dict, index) in transTypeList"
  61. :key="index.dictValue"
  62. :label="dict.dictLabel"
  63. :value="dict.dictValue"
  64. />
  65. </el-select>
  66. </el-form-item>
  67. </el-col>
  68. <el-col :span="6">
  69. <el-form-item label="运输性质" prop="transProp">
  70. <el-select
  71. v-model="form.transProp"
  72. placeholder="请选择运输方式"
  73. :disabled="disabled"
  74. size="mini"
  75. style="width: 180px"
  76. >
  77. <el-option
  78. v-for="(dict, index) in transPropList"
  79. :key="index.dictValue"
  80. :label="dict.dictLabel"
  81. :value="dict.dictValue"
  82. />
  83. </el-select>
  84. </el-form-item>
  85. </el-col>
  86. </el-row>
  87. <el-row>
  88. <el-col :span="6">
  89. <el-form-item label="提单号" prop="mblno">
  90. <el-input
  91. v-model="form.mblno"
  92. placeholder="请输入提单号"
  93. :disabled="disabled"
  94. size="mini"
  95. style="width: 180px"
  96. />
  97. </el-form-item>
  98. </el-col>
  99. <el-col :span="6">
  100. <el-form-item label="货品名称" prop="goodsId">
  101. <el-select
  102. v-model="form.goodsId"
  103. placeholder="请输入货品名称"
  104. :disabled="disabled"
  105. clearable
  106. filterable
  107. size="mini"
  108. style="width: 180px"
  109. >
  110. <el-option
  111. v-for="(dict, index) in goodsOptions"
  112. :key="index.fId"
  113. :label="dict.fName"
  114. :value="dict.fId"
  115. />
  116. </el-select>
  117. </el-form-item>
  118. </el-col>
  119. <el-col :span="6">
  120. <el-form-item label="计划件数" prop="qtyPlan">
  121. <el-input
  122. v-model="form.qtyPlan"
  123. placeholder="请输入计划件数"
  124. :disabled="disabled"
  125. v-input-limit="2"
  126. size="mini"
  127. style="width: 180px"
  128. />
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="6">
  132. <el-form-item label="重量(吨)" prop="weightPlan">
  133. <el-input
  134. v-model="form.weightPlan"
  135. placeholder="请输入计划重量"
  136. :disabled="disabled"
  137. v-input-limit="2"
  138. size="mini"
  139. style="width: 180px"
  140. />
  141. </el-form-item>
  142. </el-col>
  143. </el-row>
  144. <el-row>
  145. <el-col :span="6">
  146. <el-form-item label="船名" prop="ysl">
  147. <el-input
  148. v-model="form.ysl"
  149. placeholder="请输入船名"
  150. :disabled="disabled"
  151. size="mini"
  152. style="width: 180px"
  153. />
  154. </el-form-item>
  155. </el-col>
  156. <el-col :span="6">
  157. <el-form-item label="航次" prop="voy">
  158. <el-input
  159. v-model="form.voy"
  160. placeholder="请输入航次"
  161. :disabled="disabled"
  162. size="mini"
  163. style="width: 180px"
  164. />
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="6">
  168. <el-form-item label="起运港" prop="polId">
  169. <el-input
  170. v-model="form.polId"
  171. placeholder="请输入起运港"
  172. :disabled="disabled"
  173. size="mini"
  174. style="width: 180px"
  175. />
  176. </el-form-item>
  177. </el-col>
  178. <el-col :span="6">
  179. <el-form-item label="目的港" prop="podId">
  180. <el-input
  181. v-model="form.podId"
  182. placeholder="请输入目的港"
  183. :disabled="disabled"
  184. size="mini"
  185. style="width: 180px"
  186. />
  187. </el-form-item>
  188. </el-col>
  189. </el-row>
  190. <el-row>
  191. <el-col :span="6">
  192. <el-form-item
  193. v-if="form.transType != 3"
  194. label="提箱地点"
  195. prop="loadAddr"
  196. >
  197. <el-input
  198. v-model="form.loadAddr"
  199. placeholder="请输入提箱地点"
  200. :disabled="disabled"
  201. size="mini"
  202. style="width: 180px"
  203. />
  204. </el-form-item>
  205. <el-form-item v-else label="装货地点" prop="loadAddr">
  206. <el-input
  207. v-model="form.loadAddr"
  208. placeholder="请输入装货地点"
  209. :disabled="disabled"
  210. size="mini"
  211. />
  212. </el-form-item>
  213. </el-col>
  214. <el-col :span="6">
  215. <el-form-item label="计划时间" prop="loadDate">
  216. <el-date-picker
  217. clearable
  218. size="mini"
  219. style="width: 180px"
  220. v-model="form.loadDate"
  221. type="datetime"
  222. placeholder="选择计划装车时间"
  223. :disabled="disabled"
  224. >
  225. </el-date-picker>
  226. </el-form-item>
  227. </el-col>
  228. <el-col :span="6">
  229. <el-form-item label="联系人" prop="loadAttn">
  230. <el-input
  231. v-model="form.loadAttn"
  232. placeholder="请输入装车联系人"
  233. :disabled="disabled"
  234. size="mini"
  235. style="width: 180px"
  236. />
  237. </el-form-item>
  238. </el-col>
  239. <el-col :span="6">
  240. <el-form-item label="联系电话" prop="loadAttntel">
  241. <el-input
  242. v-model="form.loadAttntel"
  243. placeholder="请输入装车联系电话"
  244. :disabled="disabled"
  245. v-input-limit="0"
  246. size="mini"
  247. style="width: 180px"
  248. />
  249. </el-form-item>
  250. </el-col>
  251. </el-row>
  252. <el-row v-if="form.transType != 3">
  253. <el-col :span="6">
  254. <el-form-item
  255. v-if="form.billType == 1"
  256. label="卸货地点"
  257. prop="mdLoadAddr"
  258. >
  259. <el-input
  260. v-model="form.mdLoadAddr"
  261. placeholder="请输入装卸货地点"
  262. :disabled="disabled"
  263. size="mini"
  264. style="width: 180px"
  265. />
  266. </el-form-item>
  267. <el-form-item
  268. v-if="form.billType == 2"
  269. label="装货地点"
  270. prop="mdLoadAddr"
  271. >
  272. <el-input
  273. v-model="form.mdLoadAddr"
  274. placeholder="请输入装货地点"
  275. :disabled="disabled"
  276. size="mini"
  277. style="width: 180px"
  278. />
  279. </el-form-item>
  280. </el-col>
  281. <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
  282. <el-form-item label="计划时间" prop="mdLoadDate">
  283. <el-date-picker
  284. clearable
  285. size="mini"
  286. style="width: 180px"
  287. v-model="form.mdLoadDate"
  288. type="datetime"
  289. placeholder="选择计划装卸货时间"
  290. :disabled="disabled"
  291. >
  292. </el-date-picker>
  293. </el-form-item>
  294. </el-col>
  295. <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
  296. <el-form-item label="联系人" prop="mdLoadAttn">
  297. <el-input
  298. v-model="form.mdLoadAttn"
  299. placeholder="请输入装卸货联系人"
  300. :disabled="disabled"
  301. size="mini"
  302. style="width: 180px"
  303. />
  304. </el-form-item>
  305. </el-col>
  306. <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
  307. <el-form-item label="联系电话" prop="mdLoadAttnTel">
  308. <el-input
  309. v-model="form.mdLoadAttnTel"
  310. placeholder="请输入装卸货联系电话"
  311. :disabled="disabled"
  312. v-input-limit="0"
  313. size="mini"
  314. style="width: 180px"
  315. />
  316. </el-form-item>
  317. </el-col>
  318. </el-row>
  319. <el-row>
  320. <el-col v-if="form.transType != 3" :span="6">
  321. <el-form-item label="卸箱地点" prop="unLoadAddr">
  322. <el-input
  323. v-model="form.unLoadAddr"
  324. placeholder="请输入卸箱地点"
  325. :disabled="disabled"
  326. size="mini"
  327. style="width: 180px"
  328. />
  329. </el-form-item>
  330. </el-col>
  331. <el-col v-else :span="6">
  332. <el-form-item label="卸货地点" prop="unLoadAddr">
  333. <el-input
  334. v-model="form.unLoadAddr"
  335. placeholder="请输入卸箱地点"
  336. :disabled="disabled"
  337. size="mini"
  338. style="width: 180px"
  339. />
  340. </el-form-item>
  341. </el-col>
  342. <el-col :span="6">
  343. <el-form-item label="计划时间" prop="unLoadDate">
  344. <el-date-picker
  345. clearable
  346. size="mini"
  347. style="width: 180px"
  348. v-model="form.unLoadDate"
  349. type="datetime"
  350. placeholder="选择计划卸车时间"
  351. :disabled="disabled"
  352. >
  353. </el-date-picker>
  354. </el-form-item>
  355. </el-col>
  356. <el-col :span="6">
  357. <el-form-item label="联系人" prop="unLoadAttn">
  358. <el-input
  359. v-model="form.unLoadAttn"
  360. placeholder="请输入卸车联系人"
  361. :disabled="disabled"
  362. size="mini"
  363. style="width: 180px"
  364. />
  365. </el-form-item>
  366. </el-col>
  367. <el-col :span="6">
  368. <el-form-item label="联系电话" prop="unLoadAttnTel">
  369. <el-input
  370. v-model="form.unLoadAttnTel"
  371. placeholder="请输入卸车联系电话"
  372. :disabled="disabled"
  373. v-input-limit="0"
  374. size="mini"
  375. style="width: 180px"
  376. />
  377. </el-form-item>
  378. </el-col>
  379. </el-row>
  380. <el-row>
  381. <el-col>
  382. <el-form-item label="线路描述" prop="routeDesc">
  383. <el-input
  384. type="textarea"
  385. :rows="2"
  386. v-model="form.routeDesc"
  387. placeholder="请输入线路描述"
  388. :disabled="disabled"
  389. size="mini"
  390. />
  391. </el-form-item>
  392. </el-col>
  393. </el-row>
  394. <el-row>
  395. <el-col>
  396. <el-form-item label="备注" prop="remarks">
  397. <el-input
  398. type="textarea"
  399. :rows="2"
  400. v-model="form.remarks"
  401. placeholder="请输入备注"
  402. :disabled="disabled"
  403. size="mini"
  404. />
  405. </el-form-item>
  406. </el-col>
  407. </el-row>
  408. <!-- <div style="display: flex; justify-content: flex-end; margin: 10px 0">
  409. <el-button type="danger" @click="submitAllowChanges"
  410. >申请修改</el-button
  411. >
  412. </div> -->
  413. <el-collapse v-model="collapses">
  414. <el-collapse-item v-if="userType == '00'">
  415. <template slot="title">
  416. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  417. ><span
  418. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  419. >调度安排</span
  420. >
  421. </i>
  422. </template>
  423. <div>
  424. <div
  425. style="
  426. display: flex;
  427. justify-content: space-between;
  428. margin: 10px 0;
  429. "
  430. >
  431. <div>
  432. <el-button
  433. type="primary"
  434. icon="el-icon-plus"
  435. size="mini"
  436. @click="addschedulingRow(schedulingList)"
  437. :disabled="disabled"
  438. >添加</el-button
  439. >
  440. </div>
  441. </div>
  442. <el-table :data="schedulingList">
  443. <el-table-column label="箱型" align="center" prop="cntrId">
  444. <template slot-scope="scope">
  445. <el-select
  446. v-model="scope.row.cntrId"
  447. placeholder="请选择箱型"
  448. :disabled="disabled"
  449. >
  450. <el-option
  451. v-for="(dict, index) in cntrIdList"
  452. :key="index.dictValue"
  453. :label="dict.dictLabel"
  454. :value="dict.dictValue"
  455. />
  456. </el-select>
  457. </template>
  458. </el-table-column>
  459. <el-table-column
  460. label="车队名称"
  461. align="center"
  462. prop="carcorPid"
  463. >
  464. <template slot-scope="scope">
  465. <el-input
  466. v-model="scope.row.carcorPid"
  467. placeholder="车队名称"
  468. :disabled="disabled"
  469. />
  470. </template>
  471. </el-table-column>
  472. <el-table-column
  473. label="调度安排货量"
  474. align="center"
  475. prop="cntrQty"
  476. :disabled="disabled"
  477. >
  478. <template slot-scope="scope">
  479. <el-input
  480. v-model="scope.row.cntrQty"
  481. placeholder="调度安排货量"
  482. v-input-limit="2"
  483. :disabled="disabled"
  484. />
  485. </template>
  486. </el-table-column>
  487. <el-table-column
  488. label="已派车货量"
  489. align="center"
  490. prop="carQty"
  491. >
  492. <template slot-scope="scope">
  493. <el-input
  494. v-model="scope.row.carQty"
  495. placeholder="已派车货量"
  496. :disabled="true"
  497. />
  498. </template>
  499. </el-table-column>
  500. <el-table-column label="备注" align="center" prop="remarks">
  501. <template slot-scope="scope">
  502. <el-input
  503. v-model="scope.row.remarks"
  504. placeholder="备注"
  505. :disabled="disabled"
  506. />
  507. </template>
  508. </el-table-column>
  509. </el-table>
  510. </div>
  511. </el-collapse-item>
  512. <el-collapse-item v-if="userType == '00'">
  513. <template slot="title">
  514. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  515. ><span
  516. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  517. >车辆安排</span
  518. >
  519. </i>
  520. </template>
  521. <div>
  522. <div
  523. style="
  524. display: flex;
  525. justify-content: space-between;
  526. margin: 10px 0;
  527. "
  528. >
  529. <div>
  530. <el-button
  531. type="primary"
  532. icon="el-icon-plus"
  533. size="mini"
  534. @click="addRow(vehicleList)"
  535. >添加</el-button
  536. >
  537. </div>
  538. </div>
  539. <el-table :data="vehicleList">
  540. <el-table-column label="箱型" align="center" prop="cntrId">
  541. <template slot-scope="scope">
  542. <el-select
  543. v-model="scope.row.cntrId"
  544. placeholder="请选择箱型"
  545. :disabled="scope.row.billStatus == 6"
  546. @change="checkPid(scope.row)"
  547. >
  548. <el-option
  549. v-for="(dict, index) in cntrId2List"
  550. :key="index.dictValue"
  551. :label="dict.dictLabel"
  552. :value="dict.dictValue"
  553. />
  554. </el-select>
  555. </template>
  556. </el-table-column>
  557. <el-table-column label="货量" align="center" prop="cntrQty">
  558. <template slot-scope="scope">
  559. <el-input
  560. v-model="scope.row.cntrQty"
  561. placeholder="货量"
  562. :disabled="scope.row.billStatus == 6"
  563. />
  564. </template>
  565. </el-table-column>
  566. <el-table-column label="箱号" align="center" prop="cntrNo">
  567. <template slot-scope="scope">
  568. <el-input
  569. v-model="scope.row.cntrNo"
  570. placeholder="箱号"
  571. :disabled="scope.row.billStatus == 6"
  572. />
  573. </template>
  574. </el-table-column>
  575. <el-table-column label="车号" align="center" prop="carregNo">
  576. <template slot-scope="scope">
  577. <!-- <el-input
  578. v-model="scope.row.carregNo"
  579. placeholder="车号"
  580. :disabled="scope.row.billStatus == 6"
  581. /> -->
  582. <el-select
  583. v-model="scope.row.carregNo"
  584. placeholder="车号"
  585. :disabled="scope.row.billStatus == 6"
  586. :clearable="true"
  587. filterable
  588. >
  589. <el-option
  590. v-for="(dict, index) in carManages"
  591. :key="index"
  592. :label="dict.carNum"
  593. :value="dict.carNum"
  594. />
  595. </el-select>
  596. </template>
  597. </el-table-column>
  598. <el-table-column
  599. label="司机姓名"
  600. align="center"
  601. prop="driverName"
  602. >
  603. <template slot-scope="scope">
  604. <el-input
  605. v-model="scope.row.driverName"
  606. placeholder="司机姓名"
  607. :disabled="scope.row.billStatus == 6"
  608. />
  609. </template>
  610. </el-table-column>
  611. <el-table-column
  612. label="联系电话"
  613. align="center"
  614. prop="driverTel"
  615. >
  616. <template slot-scope="scope">
  617. <el-input
  618. v-model="scope.row.driverTel"
  619. placeholder="联系电话"
  620. v-input-limit="2"
  621. :disabled="scope.row.billStatus == 6"
  622. />
  623. </template>
  624. </el-table-column>
  625. <el-table-column label="备注" align="center" prop="remarks">
  626. <template slot-scope="scope">
  627. <el-input
  628. v-model="scope.row.remarks"
  629. placeholder="备注"
  630. :disabled="scope.row.billStatus == 6"
  631. />
  632. </template>
  633. </el-table-column>
  634. <el-table-column
  635. label="跟踪状态"
  636. align="center"
  637. class-name="small-padding fixed-width"
  638. width="100"
  639. prop="orderStatus"
  640. >
  641. <template slot-scope="scope">
  642. <div v-if="scope.row.orderStatus == 10">车队安排</div>
  643. <div v-if="scope.row.orderStatus == 20">司机受理</div>
  644. <div v-if="scope.row.orderStatus == 30">司机出车</div>
  645. <div v-if="scope.row.orderStatus == 40">提箱</div>
  646. <div v-if="scope.row.orderStatus == 50">装卸货</div>
  647. <div v-if="scope.row.orderStatus == 60">还卸柜</div>
  648. <div v-if="scope.row.orderStatus == 70">费用确认</div>
  649. <div v-if="scope.row.orderStatus == 80">回单</div>
  650. </template>
  651. </el-table-column>
  652. <el-table-column
  653. label="操作"
  654. align="center"
  655. class-name="small-padding fixed-width"
  656. width="200"
  657. >
  658. <template slot-scope="scope">
  659. <el-button
  660. size="mini"
  661. type="text"
  662. icon="el-icon-delete"
  663. @click.native.prevent="
  664. delscarsRow(scope.$index, vehicleList, scope.row)
  665. "
  666. :disabled="scope.row.billStatus == 6"
  667. >删除</el-button
  668. >
  669. <el-button
  670. size="mini"
  671. type="text"
  672. icon="el-icon-document-checked"
  673. @click.native.prevent="addscarsRow(scope.row)"
  674. :disabled="scope.row.billStatus == 6"
  675. >提交</el-button
  676. >
  677. <el-button
  678. size="mini"
  679. type="text"
  680. icon="el-icon-document-delete"
  681. @click.native.prevent="
  682. revokescarsRow(scope.$index, schedulingList, scope.row)
  683. "
  684. :disabled="true"
  685. >撤销</el-button
  686. >
  687. <el-button
  688. size="mini"
  689. type="text"
  690. icon="el-icon-document-delete"
  691. @click.native.prevent="changescarsRow(scope.row)"
  692. >变更</el-button
  693. >
  694. </template>
  695. </el-table-column>
  696. </el-table>
  697. </div>
  698. </el-collapse-item>
  699. <el-collapse-item v-if="userType == '00'">
  700. <template slot="title">
  701. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  702. ><span
  703. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  704. >收款信息</span
  705. >
  706. </i>
  707. </template>
  708. <div>
  709. <div
  710. style="
  711. display: flex;
  712. justify-content: space-between;
  713. margin: 10px 0;
  714. "
  715. >
  716. <div>
  717. <el-button
  718. type="primary"
  719. icon="el-icon-plus"
  720. size="mini"
  721. @click="addRow(DList)"
  722. :disabled="disabled"
  723. >添加</el-button
  724. >
  725. </div>
  726. </div>
  727. <el-table :data="DList">
  728. <el-table-column label="结算单位" align="center" prop="fcorpid">
  729. <template slot-scope="scope">
  730. <el-select
  731. v-model="scope.row.fcorpid"
  732. placeholder="结算单位"
  733. :clearable="true"
  734. filterable
  735. :disabled="disabled"
  736. >
  737. <el-option
  738. v-for="(dict, index) in fMblnoOptions"
  739. :key="index.fId"
  740. :label="dict.fName"
  741. :value="dict.fId"
  742. />
  743. </el-select>
  744. </template>
  745. </el-table-column>
  746. <el-table-column label="费用名称" align="center" prop="ffeeid">
  747. <template slot-scope="scope">
  748. <el-select
  749. v-model="scope.row.ffeeid"
  750. placeholder="费用名称"
  751. clearable
  752. filterable
  753. :disabled="disabled"
  754. >
  755. <el-option
  756. v-for="(dict, index) in fWbuOptions"
  757. :key="index.fId"
  758. :label="dict.fName"
  759. :value="dict.fId"
  760. />
  761. </el-select>
  762. </template>
  763. </el-table-column>
  764. <el-table-column
  765. label="计费单位"
  766. align="center"
  767. prop="ffeeunitid"
  768. >
  769. <template slot-scope="scope">
  770. <el-select
  771. v-model="scope.row.ffeeunitid"
  772. placeholder="计费单位"
  773. :disabled="disabled"
  774. >
  775. <el-option
  776. v-for="(dict, index) in ffeeunitidList"
  777. :key="index.dictValue"
  778. :label="dict.dictLabel"
  779. :value="dict.dictValue"
  780. />
  781. </el-select>
  782. </template>
  783. </el-table-column>
  784. <el-table-column label="计费数量" align="center" prop="fqty">
  785. <template slot-scope="scope">
  786. <el-input
  787. v-model="scope.row.fqty"
  788. placeholder="计费数量"
  789. v-input-limit="0"
  790. :disabled="disabled"
  791. />
  792. </template>
  793. </el-table-column>
  794. <el-table-column label="单价" align="center" prop="funitprice">
  795. <template slot-scope="scope">
  796. <el-input
  797. v-model="scope.row.funitprice"
  798. placeholder="单价"
  799. v-input-limit="2"
  800. :disabled="disabled"
  801. />
  802. </template>
  803. </el-table-column>
  804. <el-table-column label="币种" align="center" prop="fcurrency">
  805. <template slot-scope="scope">
  806. <el-input
  807. v-model="scope.row.fcurrency"
  808. placeholder="RMB"
  809. :disabled="true"
  810. />
  811. </template>
  812. </el-table-column>
  813. <el-table-column label="税率" align="center" prop="ftaxrate">
  814. <template slot-scope="scope">
  815. <el-input
  816. v-model="scope.row.ftaxrate"
  817. placeholder="税率"
  818. v-input-limit="2"
  819. :disabled="disabled"
  820. />
  821. </template>
  822. </el-table-column>
  823. <el-table-column label="金额" align="center" prop="famount">
  824. <template slot-scope="scope">
  825. <el-input
  826. v-model="scope.row.famount"
  827. placeholder="金额"
  828. v-input-limit="2"
  829. :disabled="disabled"
  830. />
  831. </template>
  832. </el-table-column>
  833. <el-table-column label="汇率" align="center" prop="fexrate">
  834. <template slot-scope="scope">
  835. <el-input
  836. v-model="scope.row.fexrate"
  837. placeholder="汇率"
  838. v-input-limit="2"
  839. :disabled="disabled"
  840. />
  841. </template>
  842. </el-table-column>
  843. <el-table-column label="备注" align="center" prop="remark">
  844. <template slot-scope="scope">
  845. <el-input
  846. v-model="scope.row.remark"
  847. placeholder="备注"
  848. :disabled="disabled"
  849. />
  850. </template>
  851. </el-table-column>
  852. <el-table-column
  853. label="操作"
  854. align="center"
  855. class-name="small-padding fixed-width"
  856. width="100"
  857. >
  858. <template slot-scope="scope">
  859. <el-button
  860. size="mini"
  861. type="text"
  862. icon="el-icon-delete"
  863. @click.native.prevent="deleteRow(scope.$index, DList)"
  864. :disabled="disabled"
  865. >删除</el-button
  866. >
  867. </template>
  868. </el-table-column>
  869. </el-table>
  870. </div>
  871. </el-collapse-item>
  872. <el-collapse-item v-if="userType == '00'">
  873. <template slot="title">
  874. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  875. ><span
  876. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  877. >付款信息</span
  878. >
  879. </i>
  880. </template>
  881. <div>
  882. <div
  883. style="
  884. display: flex;
  885. justify-content: space-between;
  886. margin: 10px 0;
  887. "
  888. >
  889. <div>
  890. <el-button
  891. type="primary"
  892. icon="el-icon-plus"
  893. size="mini"
  894. @click="addRow(CList)"
  895. :disabled="disabled"
  896. >添加</el-button
  897. >
  898. </div>
  899. </div>
  900. <el-table :data="CList">
  901. <el-table-column label="结算单位" align="center" prop="fcorpid">
  902. <template slot-scope="scope">
  903. <el-select
  904. v-model="scope.row.fcorpid"
  905. placeholder="结算单位"
  906. :clearable="true"
  907. filterable
  908. :disabled="disabled"
  909. >
  910. <el-option
  911. v-for="(dict, index) in fMblnoOptions"
  912. :key="index.fId"
  913. :label="dict.fName"
  914. :value="dict.fId"
  915. />
  916. </el-select>
  917. </template>
  918. </el-table-column>
  919. <el-table-column label="费用名称" align="center" prop="ffeeid">
  920. <template slot-scope="scope">
  921. <el-select
  922. v-model="scope.row.ffeeid"
  923. placeholder="费用名称"
  924. clearable
  925. filterable
  926. :disabled="disabled"
  927. >
  928. <el-option
  929. v-for="(dict, index) in fWbuOptions"
  930. :key="index.fId"
  931. :label="dict.fName"
  932. :value="dict.fId"
  933. />
  934. </el-select>
  935. </template>
  936. </el-table-column>
  937. <el-table-column
  938. label="计费单位"
  939. align="center"
  940. prop="ffeeunitid"
  941. >
  942. <template slot-scope="scope">
  943. <el-select
  944. v-model="scope.row.ffeeunitid"
  945. placeholder="计费单位"
  946. :disabled="disabled"
  947. >
  948. <el-option
  949. v-for="(dict, index) in ffeeunitidList"
  950. :key="index.dictValue"
  951. :label="dict.dictLabel"
  952. :value="dict.dictValue"
  953. />
  954. </el-select>
  955. </template>
  956. </el-table-column>
  957. <el-table-column label="计费数量" align="center" prop="fqty">
  958. <template slot-scope="scope">
  959. <el-input
  960. v-model="scope.row.fqty"
  961. placeholder="计费数量"
  962. v-input-limit="0"
  963. :disabled="disabled"
  964. />
  965. </template>
  966. </el-table-column>
  967. <el-table-column label="单价" align="center" prop="funitprice">
  968. <template slot-scope="scope">
  969. <el-input
  970. v-model="scope.row.funitprice"
  971. placeholder="单价"
  972. v-input-limit="2"
  973. :disabled="disabled"
  974. />
  975. </template>
  976. </el-table-column>
  977. <el-table-column label="币种" align="center" prop="fcurrency">
  978. <template slot-scope="scope">
  979. <el-input
  980. v-model="scope.row.fcurrency"
  981. placeholder="RMB"
  982. :disabled="true"
  983. />
  984. </template>
  985. </el-table-column>
  986. <el-table-column label="税率" align="center" prop="ftaxrate">
  987. <template slot-scope="scope">
  988. <el-input
  989. v-model="scope.row.ftaxrate"
  990. placeholder="税率"
  991. v-input-limit="2"
  992. :disabled="disabled"
  993. />
  994. </template>
  995. </el-table-column>
  996. <el-table-column label="金额" align="center" prop="famount">
  997. <template slot-scope="scope">
  998. <el-input
  999. v-model="scope.row.famount"
  1000. placeholder="金额"
  1001. v-input-limit="2"
  1002. :disabled="disabled"
  1003. />
  1004. </template>
  1005. </el-table-column>
  1006. <el-table-column label="汇率" align="center" prop="fexrate">
  1007. <template slot-scope="scope">
  1008. <el-input
  1009. v-model="scope.row.fexrate"
  1010. placeholder="汇率"
  1011. v-input-limit="2"
  1012. :disabled="disabled"
  1013. />
  1014. </template>
  1015. </el-table-column>
  1016. <el-table-column label="备注" align="center" prop="remark">
  1017. <template slot-scope="scope">
  1018. <el-input
  1019. v-model="scope.row.remark"
  1020. placeholder="备注"
  1021. :disabled="disabled"
  1022. />
  1023. </template>
  1024. </el-table-column>
  1025. <el-table-column
  1026. label="操作"
  1027. align="center"
  1028. class-name="small-padding fixed-width"
  1029. width="100"
  1030. >
  1031. <template slot-scope="scope">
  1032. <el-button
  1033. size="mini"
  1034. type="text"
  1035. icon="el-icon-delete"
  1036. @click.native.prevent="deleteRow(scope.$index, CList)"
  1037. :disabled="disabled"
  1038. >删除</el-button
  1039. >
  1040. </template>
  1041. </el-table-column>
  1042. </el-table>
  1043. </div>
  1044. </el-collapse-item>
  1045. <el-collapse-item>
  1046. <template slot="title">
  1047. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  1048. ><span
  1049. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  1050. >附件上传</span
  1051. >
  1052. </i>
  1053. </template>
  1054. <div>
  1055. <div
  1056. style="
  1057. display: flex;
  1058. justify-content: space-between;
  1059. margin: 10px 0;
  1060. "
  1061. >
  1062. <div>
  1063. <el-button
  1064. type="primary"
  1065. icon="el-icon-plus"
  1066. size="mini"
  1067. @click="addRelevt"
  1068. :disabled="disabled"
  1069. >添加</el-button
  1070. >
  1071. </div>
  1072. </div>
  1073. <el-table
  1074. :data="relevantAttachments"
  1075. tooltip-effect="dark"
  1076. border
  1077. stripe
  1078. style="width: 100%"
  1079. height="150"
  1080. >
  1081. <el-table-column label="序号" type="index" width="80">
  1082. </el-table-column>
  1083. <el-table-column
  1084. prop="attachName"
  1085. header-align="center"
  1086. align="center"
  1087. label="附件名称"
  1088. >
  1089. <template slot-scope="scope">
  1090. <el-input
  1091. v-model="scope.row.attachName"
  1092. placeholder="附件名称"
  1093. show-word-limit
  1094. />
  1095. </template>
  1096. </el-table-column>
  1097. <el-table-column
  1098. prop="opuserID "
  1099. header-align="center"
  1100. align="center"
  1101. label="上传人"
  1102. >
  1103. <template slot-scope="scope">
  1104. <el-input
  1105. v-model="scope.row.opuserID"
  1106. placeholder="上传人"
  1107. show-word-limit
  1108. />
  1109. </template>
  1110. </el-table-column>
  1111. <el-table-column
  1112. prop="opdata"
  1113. header-align="center"
  1114. align="center"
  1115. label="上传时间"
  1116. >
  1117. <template slot-scope="scope">
  1118. <el-date-picker
  1119. v-model="scope.row.opdata"
  1120. type="datetime"
  1121. disabled
  1122. placeholder="上传时间"
  1123. format="yyyy-MM-dd HH:mm"
  1124. value-format="timestamp"
  1125. ></el-date-picker>
  1126. </template>
  1127. </el-table-column>
  1128. <el-table-column
  1129. prop="attachUrl"
  1130. header-align="center"
  1131. align="center"
  1132. label="上传附件"
  1133. >
  1134. <template slot-scope="scope">
  1135. <uploadFile
  1136. @input="showFile"
  1137. v-model="scope.row.attachUrl"
  1138. />
  1139. </template>
  1140. </el-table-column>
  1141. <el-table-column
  1142. header-align="center"
  1143. align="center"
  1144. label="操作"
  1145. width="130PX"
  1146. >
  1147. <template slot-scope="scope">
  1148. <el-button
  1149. size="mini"
  1150. type="text"
  1151. icon="el-icon-delete"
  1152. @click.native.prevent="
  1153. deleteRow(scope.$index, relevantAttachments)
  1154. "
  1155. :disabled="disabled"
  1156. >删除</el-button
  1157. >
  1158. </template>
  1159. </el-table-column>
  1160. </el-table>
  1161. </div>
  1162. </el-collapse-item>
  1163. </el-collapse>
  1164. </el-form>
  1165. </span>
  1166. <span slot="footer" class="dialog-footer">
  1167. <el-button type="primary" @click="submitForm">提交 </el-button>
  1168. <!-- <el-button type="success" @click="submitFix">修改</el-button> -->
  1169. <!-- <el-button type="success" @click="submitAllowChanges">修 改</el-button> -->
  1170. <el-button type="info" @click="submitSave">保 存</el-button>
  1171. <!-- <el-button type="warning" @click="submitRetreat">撤 回</el-button> -->
  1172. <el-button @click="showDialog = false">取 消</el-button>
  1173. </span>
  1174. </el-dialog>
  1175. </template>
  1176. <script>
  1177. import {
  1178. addFtmsorderbills,
  1179. RetreatFtmsorderbills,
  1180. allowChangesFtmsorderbills,
  1181. updateFtmsorderbills,
  1182. } from "@/api/fleet/ftmsorderbills";
  1183. import {
  1184. singleaddFtmsorderbillscars,
  1185. revokeFtmsorderbillscars,
  1186. removeFtmsorderbillscars,
  1187. saveFtmsorderbillscars,
  1188. changeFtmsorderbillscars,
  1189. addFtmsorderbillscars,
  1190. } from "@/api/fleet/ftmsorderbillscars";
  1191. import { listFtmsorderbills } from "@/api/fleet/carManage";
  1192. import { listGoods } from "@/api/basicdata/goods";
  1193. import { listCorps } from "@/api/basicdata/corps";
  1194. import { listFees } from "@/api/basicdata/fees";
  1195. import UploadFile from "@/components/Uploadfile";
  1196. import Cookies from "js-cookie";
  1197. export default {
  1198. name: "plans",
  1199. props: {
  1200. addOrUpdateVisible: {
  1201. type: Boolean,
  1202. default: false,
  1203. },
  1204. title: {
  1205. type: String,
  1206. required: "",
  1207. },
  1208. form: Object,
  1209. disabled: {
  1210. type: Boolean,
  1211. default: false,
  1212. },
  1213. disabled2: {
  1214. type: Boolean,
  1215. default: false,
  1216. },
  1217. DList: {
  1218. type: Array,
  1219. default: [],
  1220. },
  1221. CList: {
  1222. type: Array,
  1223. default: [],
  1224. },
  1225. schedulingList: {
  1226. type: Array,
  1227. default: [],
  1228. },
  1229. vehicleList: {
  1230. type: Array,
  1231. default: [],
  1232. },
  1233. },
  1234. components: {
  1235. UploadFile,
  1236. },
  1237. data() {
  1238. return {
  1239. lbStatus: {},
  1240. dcList: [
  1241. {
  1242. value: "D",
  1243. label: "收款",
  1244. },
  1245. {
  1246. value: "C",
  1247. label: "付款",
  1248. },
  1249. ],
  1250. currencyList: [
  1251. {
  1252. value: "RMB",
  1253. label: "RMB",
  1254. },
  1255. ],
  1256. // 控制弹出框显示隐藏
  1257. showDialog: false,
  1258. // 表单校验
  1259. rules: {
  1260. corpId: [
  1261. { required: true, message: "请输入客户名称", trigger: "blur" },
  1262. ],
  1263. billType: [
  1264. { required: true, message: "请选择业务类型", trigger: "blur" },
  1265. ],
  1266. transType: [
  1267. { required: true, message: "请选择运输方式", trigger: "blur" },
  1268. ],
  1269. loadAddr: [
  1270. { required: true, message: "请输入提箱地点", trigger: "blur" },
  1271. ],
  1272. loadAttntel: [
  1273. {
  1274. pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
  1275. message: "请正确输入手机号",
  1276. trigger: "blur",
  1277. },
  1278. ],
  1279. mdLoadAttnTel: [
  1280. {
  1281. pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
  1282. message: "请正确输入手机号",
  1283. trigger: "blur",
  1284. },
  1285. ],
  1286. unLoadAttnTel: [
  1287. {
  1288. pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
  1289. message: "请正确输入手机号",
  1290. trigger: "blur",
  1291. },
  1292. ],
  1293. },
  1294. billTypeList: [],
  1295. transTypeList: [],
  1296. transPropList: [],
  1297. goodsLossTypeList: [],
  1298. relevantAttachments: [],
  1299. cntrIdList: [],
  1300. priceTypeList: [],
  1301. userType: null,
  1302. username: null,
  1303. collapses: [],
  1304. fMblnoOptions: [],
  1305. cntrId2List: [],
  1306. goodsOptions: [],
  1307. fWbuOptions: [],
  1308. ffeeunitidList: [],
  1309. carManages: [],
  1310. };
  1311. },
  1312. created() {
  1313. this.getDicts("data_billType").then((response) => {
  1314. this.billTypeList = response.data;
  1315. });
  1316. this.getDicts("data_transType").then((response) => {
  1317. this.transTypeList = response.data;
  1318. });
  1319. this.getDicts("data_transProp").then((response) => {
  1320. this.transPropList = response.data;
  1321. });
  1322. this.getDicts("data_goodsLossType").then((response) => {
  1323. this.goodsLossTypeList = response.data;
  1324. });
  1325. this.getDicts("data_cntrId").then((response) => {
  1326. response.data.map((e) => (e.noOption = false));
  1327. this.cntrIdList = response.data;
  1328. });
  1329. this.getDicts("data_priceType").then((response) => {
  1330. this.priceTypeList = response.data;
  1331. });
  1332. this.getDicts("data_ffeeunitid").then((response) => {
  1333. this.ffeeunitidList = response.data;
  1334. });
  1335. listCorps().then((response) => {
  1336. this.fMblnoOptions = response.rows;
  1337. });
  1338. listGoods().then((response) => {
  1339. this.goodsOptions = response.rows;
  1340. });
  1341. listFees().then((response) => {
  1342. this.fWbuOptions = response.rows;
  1343. });
  1344. listFtmsorderbills().then((response) => {
  1345. this.carManages = response.rows;
  1346. console.log(this.carManages);
  1347. });
  1348. this.userType = Cookies.get("userType");
  1349. this.username = Cookies.get("userName");
  1350. },
  1351. methods: {
  1352. //选中时赋值pid
  1353. checkPid(row) {
  1354. let arr = this.schedulingList;
  1355. let arr2 = arr.filter((e) => e.cntrId == row.cntrId);
  1356. row["pid"] = arr2[0].id;
  1357. },
  1358. noMorecntrId(e) {
  1359. this.cntrIdList.forEach((item) => (item.noOption = false));
  1360. let arrIds = e.map((item) => item.cntrId);
  1361. this.cntrIdList
  1362. .filter((item) => arrIds.indexOf(item.dictValue) > -1)
  1363. .forEach((item) => (item.noOption = true));
  1364. },
  1365. showSure(val) {
  1366. let pidList = val.filter((e) => e.pid != null);
  1367. let arr1 = pidList;
  1368. let arr1Ids = arr1.map((item) => item.cntrId);
  1369. arr1Ids = [...new Set(arr1Ids)];
  1370. let arr2 = this.cntrIdList;
  1371. this.cntrId2List = arr2.filter(
  1372. (item) => arr1Ids.indexOf(item.dictValue) > -1
  1373. );
  1374. },
  1375. // 新增附件上传
  1376. addRelevt() {
  1377. this.relevantAttachments.push({
  1378. attachUrl: null,
  1379. attachName: null,
  1380. opuserID: this.username,
  1381. opdata: Date.parse(new Date()),
  1382. });
  1383. },
  1384. // 添加行
  1385. addRow(tableData, event) {
  1386. var obj = {};
  1387. tableData.push(obj);
  1388. this.showSure(this.schedulingList);
  1389. },
  1390. //删除行
  1391. deleteRow(index, rows) {
  1392. rows.splice(index, 1);
  1393. },
  1394. deleteplansRow(index, rows, row) {
  1395. let arr = this.schedulingList;
  1396. let arr2 = arr.filter((e) => e.cntrId == row.cntrId && e.cntrId != null);
  1397. if (arr2.length != 0) {
  1398. this.msgSuccess("调度安排已插入此箱型数据,不能删除");
  1399. } else {
  1400. this.cntrIdList
  1401. .filter((item) => item.dictValue == row.cntrId)
  1402. .forEach((item) => (item.noOption = false));
  1403. rows.splice(index, 1);
  1404. }
  1405. },
  1406. // 上传成功返回数据
  1407. showFile(row) {
  1408. for (let list in this.relevantAttachments) {
  1409. this.$set(this.relevantAttachments[list], "attachUrl", row.url);
  1410. this.$set(this.relevantAttachments[list], "attachName", row.fileName);
  1411. }
  1412. },
  1413. // 弹出框关闭后触发
  1414. handleClose() {
  1415. // 子组件调用父组件方法,并传递参数
  1416. this.$emit("changeShow", "false");
  1417. this.cntrIdList.forEach((item) => (item.noOption = false));
  1418. this.collapses = [];
  1419. },
  1420. /** 提交按钮 */
  1421. submitForm() {
  1422. this.$refs["form"].validate((valid) => {
  1423. if (valid) {
  1424. this.DList.map((e) => {
  1425. return (e.fDc = "D");
  1426. });
  1427. this.DList.map((e) => {
  1428. return (e.fcurrency = "RMB");
  1429. });
  1430. this.CList.map((e) => {
  1431. return (e.fDc = "C");
  1432. });
  1433. this.CList.map((e) => {
  1434. return (e.fcurrency = "RMB");
  1435. });
  1436. this.vehicleList.map((e) => {
  1437. return (e.carcorPid = this.schedulingList[0].carcorPid);
  1438. });
  1439. let formData = new window.FormData();
  1440. formData.append("cars", JSON.stringify(this.vehicleList));
  1441. formData.append("attachs", JSON.stringify(this.relevantAttachments));
  1442. formData.append(
  1443. "fees",
  1444. JSON.stringify(this.DList.concat(this.CList))
  1445. );
  1446. formData.append("plans", JSON.stringify(this.schedulingList[0]));
  1447. addFtmsorderbillscars(formData).then((response) => {
  1448. this.msgSuccess("新增成功");
  1449. this.$parent.getList();
  1450. this.showDialog = false;
  1451. });
  1452. }
  1453. });
  1454. },
  1455. //修改
  1456. submitFix() {
  1457. // this.$refs["form"].validate((valid) => {
  1458. // if (valid) {
  1459. // if (this.form.id != null) {
  1460. // this.DList.map((e) => {
  1461. // return (e.fDc = "D");
  1462. // });
  1463. // this.DList.map((e) => {
  1464. // return (e.fcurrency = "RMB");
  1465. // });
  1466. // this.CList.map((e) => {
  1467. // return (e.fDc = "C");
  1468. // });
  1469. // this.CList.map((e) => {
  1470. // return (e.fcurrency = "RMB");
  1471. // });
  1472. // let formData = new window.FormData();
  1473. // formData.append("tmsorder", JSON.stringify(this.form));
  1474. // formData.append(
  1475. // "attachs",
  1476. // JSON.stringify(this.relevantAttachments)
  1477. // );
  1478. // formData.append(
  1479. // "fees",
  1480. // JSON.stringify(this.DList.concat(this.CList))
  1481. // );
  1482. // formData.append("plans", JSON.stringify(this.schedulingList));
  1483. // updateFtmsorderbills(formData).then((response) => {
  1484. // this.msgSuccess("修改成功");
  1485. // this.$parent.getList();
  1486. // this.showDialog = false;
  1487. // });
  1488. // }
  1489. // }
  1490. // });
  1491. },
  1492. //保存
  1493. submitSave() {
  1494. this.DList.map((e) => {
  1495. return (e.fDc = "D");
  1496. });
  1497. this.DList.map((e) => {
  1498. return (e.fcurrency = "RMB");
  1499. });
  1500. this.CList.map((e) => {
  1501. return (e.fDc = "C");
  1502. });
  1503. this.CList.map((e) => {
  1504. return (e.fcurrency = "RMB");
  1505. });
  1506. this.vehicleList.map((e) => {
  1507. return (e.carcorPid = this.schedulingList[0].carcorPid);
  1508. });
  1509. let formData = new window.FormData();
  1510. formData.append("cars", JSON.stringify(this.vehicleList));
  1511. formData.append("attachs", JSON.stringify(this.relevantAttachments));
  1512. formData.append("fees", JSON.stringify(this.DList.concat(this.CList)));
  1513. formData.append("plans", JSON.stringify(this.schedulingList[0]));
  1514. saveFtmsorderbillscars(formData).then((response) => {
  1515. if (response.code == 200) {
  1516. console.log(response);
  1517. this.msgSuccess("保存成功");
  1518. this.$parent.getList();
  1519. this.$parent.getSave(response);
  1520. }
  1521. });
  1522. },
  1523. //撤回
  1524. submitRetreat() {
  1525. const id = { id: this.form.id };
  1526. RetreatFtmsorderbills(id).then((response) => {
  1527. if (response.code == 200) {
  1528. this.msgSuccess("撤回成功");
  1529. this.$parent.getList();
  1530. this.$emit("fixDisabled", "false");
  1531. }
  1532. });
  1533. },
  1534. //修改
  1535. submitAllowChanges() {
  1536. this.$emit("fixDisabled", "false");
  1537. this.msgSuccess("允许修改");
  1538. // const id = this.form.id;
  1539. // allowChangesFtmsorderbills(id).then((response) => {
  1540. // if (response == false) {
  1541. // this.msgSuccess("不允许修改");
  1542. // } else {
  1543. // this.$emit("fixDisabled", "false");
  1544. // this.msgSuccess("允许修改");
  1545. // }
  1546. // });
  1547. },
  1548. //单条订单调度提交
  1549. addscarsRow(row) {
  1550. console.log(row);
  1551. if (row.id == null) {
  1552. this.$confirm("车辆存在未保存数据,是否保存?", "提示", {
  1553. confirmButtonText: "确定",
  1554. cancelButtonText: "取消",
  1555. type: "warning",
  1556. })
  1557. .then(() => {
  1558. this.submitSave();
  1559. if (row.billStatus != 6) {
  1560. this.msgSuccess("保存成功");
  1561. } else {
  1562. this.msgSuccess("请勿重复提交");
  1563. }
  1564. })
  1565. .catch(() => {
  1566. this.$message({
  1567. type: "info",
  1568. message: "已取消保存",
  1569. });
  1570. });
  1571. } else {
  1572. if (row.billStatus != 6) {
  1573. singleaddFtmsorderbillscars(row).then((response) => {
  1574. this.msgSuccess("成功提交");
  1575. if (response.code == 200) {
  1576. this.$set(row, "id", response.data.id);
  1577. this.$set(row, "billStatus", 6);
  1578. }
  1579. });
  1580. } else {
  1581. this.msgSuccess("请勿重复提交");
  1582. }
  1583. }
  1584. },
  1585. delscarsRow(index, rows, row) {
  1586. if (row.billStatus != 6 && row.id != null) {
  1587. removeFtmsorderbillscars(row).then((response) => {
  1588. if (response.code == 200) {
  1589. rows.splice(index, 1);
  1590. this.msgSuccess("成功删除");
  1591. }
  1592. });
  1593. } else {
  1594. rows.splice(index, 1);
  1595. }
  1596. },
  1597. revokescarsRow(index, rows, row) {
  1598. if (row.billStatus == 6) {
  1599. revokeFtmsorderbillscars(row).then((response) => {
  1600. if (response.code == 200) {
  1601. this.msgSuccess("成功撤回");
  1602. this.$set(row, "billStatus", 3);
  1603. }
  1604. });
  1605. } else {
  1606. this.msgSuccess("此条数据没有提交,不能申请撤回");
  1607. }
  1608. },
  1609. changescarsRow(row) {
  1610. if (row.billStatus != 5) {
  1611. this.msgSuccess("允许变更");
  1612. this.$set(row, "billStatus", 5);
  1613. } else {
  1614. this.msgSuccess("请勿重复变更变更");
  1615. }
  1616. },
  1617. },
  1618. watch: {
  1619. // 监听 addOrUpdateVisible 改变
  1620. addOrUpdateVisible(oldVal, newVal) {
  1621. this.showDialog = this.addOrUpdateVisible;
  1622. },
  1623. schedulingList(val) {
  1624. this.showSure(val);
  1625. },
  1626. },
  1627. };
  1628. </script>