AddOrUpdate.vue 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196
  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="110px">
  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
  20. size="mini"
  21. style="width: 100%"
  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
  38. size="mini"
  39. style="width: 100%"
  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
  56. size="mini"
  57. style="width: 100%"
  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="mblno">
  70. <el-input
  71. v-model="form.mblno"
  72. placeholder="请输入提单号"
  73. disabled
  74. size="mini"
  75. style="width: 100%"
  76. />
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="6">
  80. <el-form-item
  81. v-if="form.transType != 3"
  82. label="提箱地点"
  83. prop="loadAddr"
  84. >
  85. <el-input
  86. v-model="form.loadAddr"
  87. placeholder="请输入提箱地点"
  88. disabled
  89. size="mini"
  90. style="width: 100%"
  91. />
  92. </el-form-item>
  93. <el-form-item v-else label="装货地点" prop="loadAddr">
  94. <el-input
  95. v-model="form.loadAddr"
  96. placeholder="请输入装货地点"
  97. disabled
  98. size="mini"
  99. />
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="6">
  103. <el-form-item
  104. v-if="form.billType == 1 && form.transType != 3"
  105. label="卸货地点"
  106. prop="mdLoadAddr"
  107. >
  108. <el-input
  109. v-model="form.mdLoadAddr"
  110. placeholder="请输入装卸货地点"
  111. disabled
  112. size="mini"
  113. style="width: 100%"
  114. />
  115. </el-form-item>
  116. <el-form-item
  117. v-if="form.billType == 2 && form.transType != 3"
  118. label="装货地点"
  119. prop="mdLoadAddr"
  120. >
  121. <el-input
  122. v-model="form.mdLoadAddr"
  123. placeholder="请输入装货地点"
  124. disabled
  125. size="mini"
  126. style="width: 100%"
  127. />
  128. </el-form-item>
  129. </el-col>
  130. <el-col v-if="form.transType != 3" :span="6">
  131. <el-form-item label="卸箱地点" prop="unLoadAddr">
  132. <el-input
  133. v-model="form.unLoadAddr"
  134. placeholder="请输入卸箱地点"
  135. disabled
  136. size="mini"
  137. style="width: 100%"
  138. />
  139. </el-form-item>
  140. </el-col>
  141. <el-col v-else :span="6">
  142. <el-form-item label="卸货地点" prop="unLoadAddr">
  143. <el-input
  144. v-model="form.unLoadAddr"
  145. placeholder="请输入卸箱地点"
  146. disabled
  147. size="mini"
  148. style="width: 100%"
  149. />
  150. </el-form-item>
  151. </el-col>
  152. <el-col :span="6">
  153. <el-form-item label="装车时间" prop="loadDate">
  154. <el-date-picker
  155. clearable
  156. size="mini"
  157. style="width: 100%"
  158. v-model="form.loadDate"
  159. type="datetime"
  160. placeholder="请选择装车时间"
  161. disabled
  162. >
  163. </el-date-picker>
  164. </el-form-item>
  165. </el-col>
  166. <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
  167. <el-form-item label="装货联系人" prop="mdLoadAttn">
  168. <el-input
  169. v-model="form.mdLoadAttn"
  170. placeholder="请输入装卸货联系人"
  171. disabled
  172. size="mini"
  173. style="width: 100%"
  174. />
  175. </el-form-item>
  176. </el-col>
  177. <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
  178. <el-form-item label="装货联系电话" prop="mdLoadAttnTel">
  179. <el-input
  180. v-model="form.mdLoadAttnTel"
  181. placeholder="请输入装卸货联系电话"
  182. disabled
  183. v-input-limit="0"
  184. size="mini"
  185. style="width: 100%"
  186. />
  187. </el-form-item>
  188. </el-col>
  189. </el-row>
  190. <el-row v-show="detailsHidden">
  191. <el-col :span="6">
  192. <el-form-item label="运输性质" prop="transProp">
  193. <el-select
  194. v-model="form.transProp"
  195. placeholder="请选择运输方式"
  196. disabled
  197. size="mini"
  198. style="width: 100%"
  199. >
  200. <el-option
  201. v-for="(dict, index) in transPropList"
  202. :key="index.dictValue"
  203. :label="dict.dictLabel"
  204. :value="dict.dictValue"
  205. />
  206. </el-select>
  207. </el-form-item>
  208. </el-col>
  209. <el-col :span="6">
  210. <el-form-item label="货品名称" prop="goodsId">
  211. <el-select
  212. v-model="form.goodsId"
  213. placeholder="请输入货品名称"
  214. disabled
  215. clearable
  216. filterable
  217. size="mini"
  218. style="width: 100%"
  219. >
  220. <el-option
  221. v-for="(dict, index) in goodsOptions"
  222. :key="index.fId"
  223. :label="dict.fName"
  224. :value="dict.fId"
  225. />
  226. </el-select>
  227. </el-form-item>
  228. </el-col>
  229. <el-col :span="6">
  230. <el-form-item label="计划件数" prop="qtyPlan">
  231. <el-input
  232. v-model="form.qtyPlan"
  233. placeholder="请输入计划件数"
  234. disabled
  235. v-input-limit="2"
  236. size="mini"
  237. style="width: 100%"
  238. />
  239. </el-form-item>
  240. </el-col>
  241. <el-col :span="6">
  242. <el-form-item label="重量(吨)" prop="weightPlan">
  243. <el-input
  244. v-model="form.weightPlan"
  245. placeholder="请输入计划重量"
  246. disabled
  247. v-input-limit="2"
  248. size="mini"
  249. style="width: 100%"
  250. />
  251. </el-form-item>
  252. </el-col>
  253. <el-col :span="6">
  254. <el-form-item label="船名" prop="ysl">
  255. <el-input
  256. v-model="form.ysl"
  257. placeholder="请输入船名"
  258. disabled
  259. size="mini"
  260. style="width: 100%"
  261. />
  262. </el-form-item>
  263. </el-col>
  264. <el-col :span="6">
  265. <el-form-item label="航次" prop="voy">
  266. <el-input
  267. v-model="form.voy"
  268. placeholder="请输入航次"
  269. disabled
  270. size="mini"
  271. style="width: 100%"
  272. />
  273. </el-form-item>
  274. </el-col>
  275. <el-col :span="6">
  276. <el-form-item label="起运港" prop="polId">
  277. <el-select
  278. v-model="form.polId"
  279. placeholder="请输入起运港"
  280. :clearable="true"
  281. filterable
  282. disabled
  283. size="mini"
  284. style="width: 100%"
  285. >
  286. <el-option
  287. v-for="(dict, index) in polList"
  288. :key="index.fId"
  289. :label="dict.fName"
  290. :value="dict.fId"
  291. />
  292. </el-select>
  293. </el-form-item>
  294. </el-col>
  295. <el-col :span="6">
  296. <el-form-item label="目的港" prop="podId">
  297. <el-select
  298. v-model="form.podId"
  299. placeholder="请输入目的港"
  300. :clearable="true"
  301. filterable
  302. disabled
  303. size="mini"
  304. style="width: 100%"
  305. >
  306. <el-option
  307. v-for="(dict, index) in podList"
  308. :key="index.fId"
  309. :label="dict.fName"
  310. :value="dict.fId"
  311. />
  312. </el-select>
  313. </el-form-item>
  314. </el-col>
  315. <el-col :span="6">
  316. <el-form-item label="装车联系人" prop="loadAttn">
  317. <el-input
  318. v-model="form.loadAttn"
  319. placeholder="请输入装车联系人"
  320. disabled
  321. size="mini"
  322. style="width: 100%"
  323. />
  324. </el-form-item>
  325. </el-col>
  326. <el-col :span="6">
  327. <el-form-item label="装车联系电话" prop="loadAttntel">
  328. <el-input
  329. v-model="form.loadAttntel"
  330. placeholder="请输入装车联系电话"
  331. disabled
  332. v-input-limit="0"
  333. size="mini"
  334. style="width: 100%"
  335. />
  336. </el-form-item>
  337. </el-col>
  338. <el-col
  339. :span="6"
  340. v-if="
  341. (form.billType == 1 || form.billType == 2) && form.transType != 3
  342. "
  343. >
  344. <el-form-item label="装卸时间" prop="mdLoadDate">
  345. <el-date-picker
  346. clearable
  347. size="mini"
  348. style="width: 100%"
  349. v-model="form.mdLoadDate"
  350. type="datetime"
  351. placeholder="选择计划装卸货时间"
  352. disabled
  353. >
  354. </el-date-picker>
  355. </el-form-item>
  356. </el-col>
  357. <el-col :span="6">
  358. <el-form-item label="卸车时间" prop="unLoadDate">
  359. <el-date-picker
  360. clearable
  361. size="mini"
  362. style="width: 100%"
  363. v-model="form.unLoadDate"
  364. type="datetime"
  365. placeholder="选择计划卸车时间"
  366. disabled
  367. >
  368. </el-date-picker>
  369. </el-form-item>
  370. </el-col>
  371. <el-col :span="6">
  372. <el-form-item label="卸车联系人" prop="unLoadAttn">
  373. <el-input
  374. v-model="form.unLoadAttn"
  375. placeholder="请输入卸车联系人"
  376. disabled
  377. size="mini"
  378. style="width: 100%"
  379. />
  380. </el-form-item>
  381. </el-col>
  382. <el-col :span="6">
  383. <el-form-item label="联系电话" prop="unLoadAttnTel">
  384. <el-input
  385. v-model="form.unLoadAttnTel"
  386. placeholder="请输入卸车联系电话"
  387. disabled
  388. v-input-limit="0"
  389. size="mini"
  390. style="width:100%"
  391. />
  392. </el-form-item>
  393. </el-col>
  394. <el-col>
  395. <el-form-item label="线路描述" prop="routeDesc">
  396. <el-input
  397. type="textarea"
  398. :rows="2"
  399. v-model="form.routeDesc"
  400. placeholder="请输入线路描述"
  401. disabled
  402. size="mini"
  403. />
  404. </el-form-item>
  405. </el-col>
  406. </el-row>
  407. <el-row>
  408. <el-col>
  409. <el-form-item label="备注" prop="remarks">
  410. <el-input
  411. type="textarea"
  412. :rows="2"
  413. v-model="form.remarks"
  414. placeholder="请输入备注"
  415. disabled
  416. size="mini"
  417. />
  418. </el-form-item>
  419. </el-col>
  420. </el-row>
  421. <div
  422. style="display: flex; justify-content: flex-end; margin-bottom: 10px"
  423. >
  424. <el-button
  425. @click="
  426. detailsHidden ? (detailsHidden = false) : (detailsHidden = true)
  427. "
  428. >{{ detailsHidden ? "隐藏" : "更多" }}
  429. </el-button>
  430. </div>
  431. <el-collapse v-model="collapses2">
  432. <el-collapse-item v-if="userType == '00'" name="1">
  433. <template slot="title">
  434. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  435. ><span
  436. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  437. >调度安排</span
  438. >
  439. </i>
  440. </template>
  441. <div>
  442. <div
  443. style="
  444. display: flex;
  445. justify-content: space-between;
  446. margin: 10px 0;
  447. "
  448. >
  449. <div>
  450. <el-button
  451. type="primary"
  452. icon="el-icon-plus"
  453. size="mini"
  454. @click="addschedulingRow(schedulingList)"
  455. disabled
  456. >添加</el-button
  457. >
  458. </div>
  459. </div>
  460. <el-table :data="schedulingList">
  461. <el-table-column label="箱型" align="center" prop="cntrId">
  462. <template slot-scope="scope">
  463. <el-select
  464. v-model="scope.row.cntrId"
  465. placeholder="请选择箱型"
  466. disabled
  467. >
  468. <el-option
  469. v-for="(dict, index) in cntrIdList"
  470. :key="index.dictValue"
  471. :label="dict.dictLabel"
  472. :value="dict.dictValue"
  473. :disabled="dict.noOption"
  474. />
  475. </el-select>
  476. </template>
  477. </el-table-column>
  478. <el-table-column
  479. label="车队名称"
  480. align="center"
  481. prop="carcorPid"
  482. >
  483. <template slot-scope="scope">
  484. <el-select
  485. v-model="scope.row.carcorPid"
  486. placeholder="请输入车队名称"
  487. :clearable="true"
  488. filterable
  489. disabled
  490. >
  491. <el-option
  492. v-for="(dict, index) in companyList"
  493. :key="index.fId"
  494. :label="dict.fName"
  495. :value="dict.fId"
  496. />
  497. </el-select>
  498. </template>
  499. </el-table-column>
  500. <el-table-column
  501. label="调度安排货量"
  502. align="center"
  503. prop="cntrQty"
  504. disabled
  505. >
  506. <template slot-scope="scope">
  507. <el-input
  508. v-model="scope.row.cntrQty"
  509. placeholder="调度安排货量"
  510. v-input-limit="2"
  511. disabled
  512. />
  513. </template>
  514. </el-table-column>
  515. <el-table-column
  516. label="已派车货量"
  517. align="center"
  518. prop="carQty"
  519. >
  520. <template slot-scope="scope">
  521. <el-input
  522. v-model="scope.row.carQty"
  523. placeholder="已派车货量"
  524. :disabled="true"
  525. />
  526. </template>
  527. </el-table-column>
  528. <el-table-column
  529. label="应付运价"
  530. align="center"
  531. prop="freightPriceCr"
  532. >
  533. <template slot-scope="scope">
  534. <el-input
  535. v-model="scope.row.freightPriceCr"
  536. placeholder="应付运价"
  537. disabled
  538. />
  539. </template>
  540. </el-table-column>
  541. <el-table-column
  542. label="运输性质"
  543. align="center"
  544. prop="freightPriceCr"
  545. >
  546. <template slot-scope="scope">
  547. <el-select
  548. v-model="scope.row.transProp"
  549. placeholder="请选择运输性质"
  550. disabled
  551. size="mini"
  552. >
  553. <el-option
  554. v-for="(dict, index) in transPropList"
  555. :key="index.dictValue"
  556. :label="dict.dictLabel"
  557. :value="dict.dictValue"
  558. />
  559. </el-select>
  560. </template>
  561. </el-table-column>
  562. <el-table-column label="备注" align="center" prop="remarks">
  563. <template slot-scope="scope">
  564. <el-input
  565. v-model="scope.row.remarks"
  566. placeholder="备注"
  567. disabled
  568. />
  569. </template>
  570. </el-table-column>
  571. </el-table>
  572. </div>
  573. </el-collapse-item>
  574. <el-collapse-item name="2">
  575. <template slot="title">
  576. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  577. ><span
  578. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  579. >车辆安排</span
  580. >
  581. </i>
  582. </template>
  583. <div>
  584. <div
  585. style="
  586. display: flex;
  587. justify-content: space-between;
  588. margin: 10px 0;
  589. "
  590. >
  591. <div>
  592. <el-button
  593. type="primary"
  594. icon="el-icon-plus"
  595. size="mini"
  596. @click="addRow2(vehicleList)"
  597. :disabled="disabled"
  598. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  599. >添加</el-button
  600. >
  601. </div>
  602. </div>
  603. <el-table :data="vehicleList">
  604. <el-table-column
  605. label="箱型"
  606. align="center"
  607. prop="cntrId"
  608. width="120"
  609. >
  610. <template slot-scope="scope">
  611. <el-select
  612. v-model="scope.row.cntrId"
  613. placeholder="请选择箱型"
  614. disabled
  615. @change="checkPid(scope.row)"
  616. >
  617. <el-option
  618. v-for="(dict, index) in cntrIdList"
  619. :key="index.dictValue"
  620. :label="dict.dictLabel"
  621. :value="dict.dictValue"
  622. />
  623. </el-select>
  624. </template>
  625. </el-table-column>
  626. <el-table-column
  627. label="货量"
  628. align="center"
  629. prop="cntrQty"
  630. width="100"
  631. >
  632. <template slot-scope="scope">
  633. <el-input
  634. v-model="scope.row.cntrQty"
  635. v-input-limit="0"
  636. placeholder="货量"
  637. :disabled="
  638. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  639. "
  640. />
  641. </template>
  642. </el-table-column>
  643. <el-table-column
  644. label="箱号"
  645. align="center"
  646. prop="cntrNo"
  647. width="145"
  648. >
  649. <template slot-scope="scope">
  650. <el-input
  651. v-model="scope.row.cntrNo"
  652. placeholder="箱号"
  653. :disabled="
  654. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  655. "
  656. />
  657. </template>
  658. </el-table-column>
  659. <el-table-column
  660. label="车号"
  661. align="center"
  662. prop="carregNo"
  663. width="130"
  664. >
  665. <template slot-scope="scope">
  666. <el-select
  667. v-model="scope.row.carregNo"
  668. placeholder="车号"
  669. :disabled="
  670. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  671. "
  672. :clearable="true"
  673. filterable
  674. @change="carChange(scope.row)"
  675. >
  676. <el-option
  677. v-for="(dict, index) in carManages"
  678. :key="index"
  679. :label="dict.carNum"
  680. :value="dict.carNum"
  681. />
  682. </el-select>
  683. </template>
  684. </el-table-column>
  685. <el-table-column
  686. label="司机姓名"
  687. align="center"
  688. prop="driverName"
  689. width="100"
  690. >
  691. <template slot-scope="scope">
  692. <el-input
  693. v-model="scope.row.driverName"
  694. placeholder="司机姓名"
  695. :disabled="
  696. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  697. "
  698. />
  699. </template>
  700. </el-table-column>
  701. <el-table-column
  702. label="联系电话"
  703. align="center"
  704. prop="driverTel"
  705. width="145"
  706. >
  707. <template slot-scope="scope">
  708. <el-input
  709. v-model="scope.row.driverTel"
  710. placeholder="联系电话"
  711. v-input-limit="2"
  712. :disabled="
  713. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  714. "
  715. />
  716. </template>
  717. </el-table-column>
  718. <el-table-column
  719. label="应付运价"
  720. align="center"
  721. prop="freightPriceCr"
  722. >
  723. <template slot-scope="scope">
  724. <el-input
  725. v-model="scope.row.freightPriceCr"
  726. placeholder="应付运价"
  727. disabled
  728. />
  729. </template>
  730. </el-table-column>
  731. <el-table-column
  732. label="运单号"
  733. align="center"
  734. prop="orderNo"
  735. width="100"
  736. />
  737. <el-table-column
  738. label="单据类型"
  739. align="center"
  740. prop="billKind"
  741. width="100"
  742. >
  743. <template slot-scope="scope">
  744. <span v-if="scope.row.billKind === 'NN'">直单</span>
  745. <span v-if="scope.row.billKind === 'MM'">主单</span>
  746. <span v-if="scope.row.billKind === 'MH'">从单</span>
  747. </template>
  748. </el-table-column>
  749. <el-table-column
  750. label="主单号"
  751. align="center"
  752. prop="mBillNo"
  753. width="100"
  754. />
  755. <el-table-column label="备注" align="center" prop="remarks">
  756. <template slot-scope="scope">
  757. <el-input
  758. v-model="scope.row.remarks"
  759. placeholder="备注"
  760. :disabled="
  761. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  762. "
  763. />
  764. </template>
  765. </el-table-column>
  766. <el-table-column
  767. label="跟踪状态"
  768. align="center"
  769. class-name="small-padding fixed-width"
  770. width="100"
  771. prop="orderStatus"
  772. >
  773. <template slot-scope="scope">
  774. <div v-if="scope.row.billStatus == 1">新建</div>
  775. <div v-if="scope.row.billStatus == 2">已暂存</div>
  776. <div v-if="scope.row.billStatus == 3">已撤销</div>
  777. <div v-if="scope.row.billStatus >= 6">已提交</div>
  778. </template>
  779. </el-table-column>
  780. <el-table-column
  781. label="操作"
  782. align="center"
  783. class-name="small-padding fixed-width"
  784. width="240"
  785. fixed="right"
  786. >
  787. <template slot-scope="scope">
  788. <el-button
  789. size="mini"
  790. type="text"
  791. icon="el-icon-delete"
  792. @click.native.prevent="
  793. delscarsRow(scope.$index, vehicleList, scope.row)
  794. "
  795. :disabled="
  796. scope.row.billStatus == 6 || scope.row.billStatus == 5
  797. "
  798. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  799. >删除</el-button
  800. >
  801. <el-button
  802. size="mini"
  803. type="text"
  804. icon="el-icon-document-checked"
  805. @click.native.prevent="addscarsRow(scope.row)"
  806. :disabled="
  807. scope.row.billStatus >= 6 || scope.row.billStatus == 3
  808. "
  809. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  810. >提交</el-button
  811. >
  812. <el-button
  813. size="mini"
  814. type="text"
  815. icon="el-icon-document-delete"
  816. @click.native.prevent="
  817. revokescarsRow(scope.$index, vehicleList, scope.row)
  818. "
  819. :disabled="
  820. scope.row.billStatus < 6 || !scope.row.billStatus
  821. "
  822. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  823. >撤销</el-button
  824. >
  825. <el-button
  826. size="mini"
  827. type="text"
  828. icon="el-icon-document-delete"
  829. @click.native.prevent="changescarsRow(scope.row)"
  830. :disabled="scope.row.billStatus < 6 || !scope.row.billStatus"
  831. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  832. >变更</el-button>
  833. <!-- <el-button-->
  834. <!-- size="mini"-->
  835. <!-- type="text"-->
  836. <!-- icon="el-icon-document-checked"-->
  837. <!-- @click.native.prevent="selectStowage(scope.row)"-->
  838. <!-- v-if="schedulingList[0].transProp == '1' && scope.row.billStatus >= 6"-->
  839. <!-- :disabled="scope.row.billKind != 'NN'"-->
  840. <!-- v-hasPermi="['fleet:ftmsorderbillscars:edit']"-->
  841. <!-- >配载</el-button>-->
  842. <el-button
  843. size="mini"
  844. type="text"
  845. icon="el-icon-document-checked"
  846. v-if="scope.row.billKind === 'NN' && scope.row.billStatus >= 6"
  847. @click.native.prevent="selectStowage(scope.row)"
  848. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  849. >配载</el-button>
  850. <el-button
  851. size="mini"
  852. type="text"
  853. icon="el-icon-document-delete"
  854. @click.native.prevent="changeStowageRow(scope.row,scope)"
  855. v-if="scope.row.billKind === 'MM' && scope.row.billStatus >= 6"
  856. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  857. >撤销配载</el-button>
  858. </template>
  859. </el-table-column>
  860. </el-table>
  861. </div>
  862. </el-collapse-item>
  863. <el-collapse-item
  864. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  865. name="3"
  866. >
  867. <template slot="title">
  868. <i class="header-icon el-icon-circle-plus" style="font-size: 16px">
  869. <span style="font-size: 16px; font-weight: bolder; margin-left: 5px">收款信息</span>
  870. </i>
  871. </template>
  872. <div>
  873. <div style="
  874. display: flex;
  875. justify-content: space-between;
  876. margin: 10px 0;
  877. ">
  878. <div>
  879. <el-button
  880. type="primary"
  881. icon="el-icon-plus"
  882. size="mini"
  883. @click="addDListRow(DList)"
  884. :disabled="disabled"
  885. >添加</el-button>
  886. </div>
  887. </div>
  888. <el-table :data="DList">
  889. <el-table-column label="结算单位" align="center" prop="fCorpid">
  890. <template slot-scope="scope">
  891. <el-select
  892. v-model="scope.row.fCorpid"
  893. placeholder="结算单位"
  894. :clearable="true"
  895. filterable
  896. :disabled="disabled"
  897. >
  898. <el-option
  899. v-for="(dict, index) in fMblnoOptions"
  900. :key="index.fId"
  901. :label="dict.fName"
  902. :value="dict.fId"
  903. />
  904. </el-select>
  905. </template>
  906. </el-table-column>
  907. <el-table-column label="费用名称" align="center" prop="fFeeid">
  908. <template slot-scope="scope">
  909. <el-select
  910. v-model="scope.row.fFeeid"
  911. placeholder="费用名称"
  912. clearable
  913. filterable
  914. :disabled="disabled"
  915. >
  916. <el-option
  917. v-for="(dict, index) in fWbuOptions"
  918. :key="index.fId"
  919. :label="dict.fName"
  920. :value="dict.fId"
  921. />
  922. </el-select>
  923. </template>
  924. </el-table-column>
  925. <el-table-column
  926. label="计费单位"
  927. align="center"
  928. prop="fFeeunitid"
  929. >
  930. <template slot-scope="scope">
  931. <el-select
  932. v-model="scope.row.fFeeunitid"
  933. placeholder="计费单位"
  934. :disabled="disabled"
  935. >
  936. <el-option
  937. v-for="(dict, index) in ffeeunitidList"
  938. :key="index.dictValue"
  939. :label="dict.dictLabel"
  940. :value="dict.dictValue"
  941. />
  942. </el-select>
  943. </template>
  944. </el-table-column>
  945. <el-table-column label="计费数量" align="center" prop="fQty">
  946. <template slot-scope="scope">
  947. <el-input
  948. v-model="scope.row.fQty"
  949. placeholder="计费数量"
  950. v-input-limit="0"
  951. :disabled="disabled"
  952. @input="total(scope.row)"
  953. />
  954. </template>
  955. </el-table-column>
  956. <el-table-column label="单价" align="center" prop="fUnitprice">
  957. <template slot-scope="scope">
  958. <el-input
  959. v-model="scope.row.fUnitprice"
  960. placeholder="单价"
  961. v-input-limit="2"
  962. :disabled="disabled"
  963. @input="total(scope.row)"
  964. />
  965. </template>
  966. </el-table-column>
  967. <el-table-column label="币种" align="center" prop="fCurrency">
  968. <template slot-scope="scope">
  969. <el-input
  970. v-model="scope.row.fCurrency"
  971. placeholder="RMB"
  972. :disabled="true"
  973. />
  974. </template>
  975. </el-table-column>
  976. <el-table-column label="汇率" align="center" prop="fExrate">
  977. <template slot-scope="scope">
  978. <el-input
  979. v-model="scope.row.fExrate"
  980. placeholder="汇率"
  981. v-input-limit="2"
  982. :disabled="disabled"
  983. />
  984. </template>
  985. </el-table-column>
  986. <el-table-column label="金额" align="center" prop="fAmount">
  987. <template slot-scope="scope">
  988. <el-input
  989. v-model="scope.row.fAmount"
  990. placeholder="金额"
  991. v-input-limit="2"
  992. :disabled="true"
  993. />
  994. </template>
  995. </el-table-column>
  996. <el-table-column label="税率" align="center" prop="fTaxrate">
  997. <template slot-scope="scope">
  998. <el-input
  999. v-model="scope.row.fTaxrate"
  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="remarks">
  1007. <template slot-scope="scope">
  1008. <el-input
  1009. v-model="scope.row.remarks"
  1010. placeholder="备注"
  1011. :disabled="disabled"
  1012. />
  1013. </template>
  1014. </el-table-column>
  1015. <el-table-column
  1016. label="操作"
  1017. align="center"
  1018. class-name="small-padding fixed-width"
  1019. width="100"
  1020. >
  1021. <template slot-scope="scope">
  1022. <el-button
  1023. size="mini"
  1024. type="text"
  1025. icon="el-icon-delete"
  1026. @click.native.prevent="deleteRow(scope.$index, DList)"
  1027. :disabled="disabled"
  1028. >删除</el-button
  1029. >
  1030. </template>
  1031. </el-table-column>
  1032. </el-table>
  1033. </div>
  1034. </el-collapse-item>
  1035. <el-collapse-item
  1036. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  1037. name="4"
  1038. >
  1039. <template slot="title">
  1040. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  1041. ><span
  1042. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  1043. >付款信息</span
  1044. >
  1045. </i>
  1046. </template>
  1047. <div>
  1048. <div
  1049. style="
  1050. display: flex;
  1051. justify-content: space-between;
  1052. margin: 10px 0;
  1053. "
  1054. >
  1055. <div>
  1056. <el-button
  1057. type="primary"
  1058. icon="el-icon-plus"
  1059. size="mini"
  1060. @click="addDListRow(CList)"
  1061. :disabled="disabled"
  1062. >添加</el-button
  1063. >
  1064. </div>
  1065. </div>
  1066. <el-table :data="CList">
  1067. <el-table-column label="结算单位" align="center" prop="fCorpid">
  1068. <template slot-scope="scope">
  1069. <el-select
  1070. v-model="scope.row.fCorpid"
  1071. placeholder="结算单位"
  1072. :clearable="true"
  1073. filterable
  1074. :disabled="disabled"
  1075. >
  1076. <el-option
  1077. v-for="(dict, index) in fMblnoOptions"
  1078. :key="index.fId"
  1079. :label="dict.fName"
  1080. :value="dict.fId"
  1081. />
  1082. </el-select>
  1083. </template>
  1084. </el-table-column>
  1085. <el-table-column label="费用名称" align="center" prop="fFeeid">
  1086. <template slot-scope="scope">
  1087. <el-select
  1088. v-model="scope.row.fFeeid"
  1089. placeholder="费用名称"
  1090. clearable
  1091. filterable
  1092. :disabled="disabled"
  1093. >
  1094. <el-option
  1095. v-for="(dict, index) in fWbuOptions"
  1096. :key="index.fId"
  1097. :label="dict.fName"
  1098. :value="dict.fId"
  1099. />
  1100. </el-select>
  1101. </template>
  1102. </el-table-column>
  1103. <el-table-column
  1104. label="计费单位"
  1105. align="center"
  1106. prop="fFeeunitid"
  1107. >
  1108. <template slot-scope="scope">
  1109. <el-select
  1110. v-model="scope.row.fFeeunitid"
  1111. placeholder="计费单位"
  1112. :disabled="disabled"
  1113. >
  1114. <el-option
  1115. v-for="(dict, index) in ffeeunitidList"
  1116. :key="index.dictValue"
  1117. :label="dict.dictLabel"
  1118. :value="dict.dictValue"
  1119. />
  1120. </el-select>
  1121. </template>
  1122. </el-table-column>
  1123. <el-table-column label="计费数量" align="center" prop="fQty">
  1124. <template slot-scope="scope">
  1125. <el-input
  1126. v-model="scope.row.fQty"
  1127. placeholder="计费数量"
  1128. v-input-limit="0"
  1129. :disabled="disabled"
  1130. @input="total(scope.row)"
  1131. />
  1132. </template>
  1133. </el-table-column>
  1134. <el-table-column label="单价" align="center" prop="fUnitprice">
  1135. <template slot-scope="scope">
  1136. <el-input
  1137. v-model="scope.row.fUnitprice"
  1138. placeholder="单价"
  1139. v-input-limit="2"
  1140. :disabled="disabled"
  1141. @input="total(scope.row)"
  1142. />
  1143. </template>
  1144. </el-table-column>
  1145. <el-table-column label="币种" align="center" prop="fCurrency">
  1146. <template slot-scope="scope">
  1147. <el-input
  1148. v-model="scope.row.fCurrency"
  1149. placeholder="RMB"
  1150. :disabled="true"
  1151. />
  1152. </template>
  1153. </el-table-column>
  1154. <el-table-column label="汇率" align="center" prop="fExrate">
  1155. <template slot-scope="scope">
  1156. <el-input
  1157. v-model="scope.row.fExrate"
  1158. placeholder="汇率"
  1159. v-input-limit="2"
  1160. :disabled="disabled"
  1161. />
  1162. </template>
  1163. </el-table-column>
  1164. <el-table-column label="金额" align="center" prop="fAmount">
  1165. <template slot-scope="scope">
  1166. <el-input
  1167. v-model="scope.row.fAmount"
  1168. placeholder="金额"
  1169. v-input-limit="2"
  1170. :disabled="true"
  1171. />
  1172. </template>
  1173. </el-table-column>
  1174. <el-table-column label="税率" align="center" prop="fTaxrate">
  1175. <template slot-scope="scope">
  1176. <el-input
  1177. v-model="scope.row.fTaxrate"
  1178. placeholder="税率"
  1179. v-input-limit="2"
  1180. :disabled="disabled"
  1181. />
  1182. </template>
  1183. </el-table-column>
  1184. <el-table-column label="备注" align="center" prop="remarks">
  1185. <template slot-scope="scope">
  1186. <el-input
  1187. v-model="scope.row.remarks"
  1188. placeholder="备注"
  1189. :disabled="disabled"
  1190. />
  1191. </template>
  1192. </el-table-column>
  1193. <el-table-column
  1194. label="操作"
  1195. align="center"
  1196. class-name="small-padding fixed-width"
  1197. width="100"
  1198. >
  1199. <template slot-scope="scope">
  1200. <el-button
  1201. size="mini"
  1202. type="text"
  1203. icon="el-icon-delete"
  1204. @click.native.prevent="deleteRow(scope.$index, DList)"
  1205. :disabled="disabled"
  1206. >删除</el-button>
  1207. </template>
  1208. </el-table-column>
  1209. </el-table>
  1210. </div>
  1211. </el-collapse-item>
  1212. <el-collapse-item name="5">
  1213. <template slot="title">
  1214. <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
  1215. ><span
  1216. style="font-size: 16px; font-weight: bolder; margin-left: 5px"
  1217. >附件上传</span
  1218. >
  1219. </i>
  1220. </template>
  1221. <div>
  1222. <div
  1223. style="
  1224. display: flex;
  1225. justify-content: space-between;
  1226. margin: 10px 0;
  1227. "
  1228. >
  1229. <div>
  1230. <el-button
  1231. type="primary"
  1232. icon="el-icon-plus"
  1233. size="mini"
  1234. @click="addRelevt"
  1235. :disabled="disabled"
  1236. >添加</el-button
  1237. >
  1238. </div>
  1239. </div>
  1240. <el-table
  1241. :data="relevantAttachments"
  1242. tooltip-effect="dark"
  1243. border
  1244. stripe
  1245. style="width: 100%"
  1246. height="150"
  1247. >
  1248. <el-table-column label="序号" type="index" width="80">
  1249. </el-table-column>
  1250. <el-table-column
  1251. prop="attachName"
  1252. header-align="center"
  1253. align="center"
  1254. label="附件名称"
  1255. >
  1256. <template slot-scope="scope">
  1257. <el-input
  1258. v-model="scope.row.attachName"
  1259. placeholder="附件名称"
  1260. show-word-limit
  1261. :disabled="disabled"
  1262. />
  1263. </template>
  1264. </el-table-column>
  1265. <el-table-column
  1266. prop="createBy "
  1267. header-align="center"
  1268. align="center"
  1269. label="上传人"
  1270. >
  1271. <template slot-scope="scope">
  1272. <el-input
  1273. v-model="scope.row.createBy"
  1274. placeholder="上传人"
  1275. show-word-limit
  1276. :disabled="disabled"
  1277. />
  1278. </template>
  1279. </el-table-column>
  1280. <el-table-column
  1281. prop="createTime"
  1282. header-align="center"
  1283. align="center"
  1284. label="上传时间"
  1285. >
  1286. <template slot-scope="scope">
  1287. <el-date-picker
  1288. v-model="scope.row.createTime"
  1289. type="datetime"
  1290. disabled
  1291. placeholder="上传时间"
  1292. ></el-date-picker>
  1293. </template>
  1294. </el-table-column>
  1295. <el-table-column
  1296. prop="attachUrl"
  1297. header-align="center"
  1298. align="center"
  1299. label="上传附件"
  1300. >
  1301. <template slot-scope="scope">
  1302. <div style="display: flex; justify-content: center">
  1303. <el-upload
  1304. class="upload-demo"
  1305. :action="uploadImgUrl"
  1306. :on-success="
  1307. (res, file) => {
  1308. handleSucces(scope, res, file);
  1309. }
  1310. "
  1311. :headers="headers"
  1312. :disabled="disabled"
  1313. :show-file-list="false"
  1314. :limit="1"
  1315. >
  1316. <el-button size="small" type="text" :disabled="disabled"
  1317. >点击上传</el-button
  1318. >
  1319. </el-upload>
  1320. <el-button
  1321. size="small"
  1322. type="text"
  1323. @click="checkFile(scope)"
  1324. :disabled="disabled"
  1325. style="margin-left: 10px"
  1326. >查看</el-button
  1327. >
  1328. <el-button
  1329. size="small"
  1330. type="text"
  1331. :disabled="disabled"
  1332. @click="deleteFile(scope)"
  1333. >删除</el-button
  1334. >
  1335. </div>
  1336. </template>
  1337. </el-table-column>
  1338. <el-table-column
  1339. header-align="center"
  1340. align="center"
  1341. label="操作"
  1342. width="130PX"
  1343. >
  1344. <template slot-scope="scope">
  1345. <el-button
  1346. size="mini"
  1347. type="text"
  1348. icon="el-icon-delete"
  1349. @click.native.prevent="
  1350. deleteRow(scope.$index, relevantAttachments)
  1351. "
  1352. :disabled="disabled"
  1353. >删除</el-button
  1354. >
  1355. </template>
  1356. </el-table-column>
  1357. </el-table>
  1358. </div>
  1359. </el-collapse-item>
  1360. </el-collapse>
  1361. </el-form>
  1362. </span>
  1363. <span slot="footer" class="dialog-footer">
  1364. <el-button
  1365. type="primary"
  1366. @click="submitForm"
  1367. :disabled="disabled"
  1368. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  1369. >提 交</el-button
  1370. >
  1371. <!-- <el-button type="success" @click="submitFix">修改</el-button> -->
  1372. <!-- <el-button type="success" @click="submitAllowChanges">修 改</el-button> -->
  1373. <el-button
  1374. type="info"
  1375. @click="submitSave"
  1376. :disabled="disabled"
  1377. v-hasPermi="['fleet:ftmsorderbillscars:edit']"
  1378. >保 存</el-button
  1379. >
  1380. <!-- <el-button type="warning" @click="submitRetreat">撤 回</el-button> -->
  1381. <el-button @click="showDialog = false">取 消</el-button>
  1382. </span>
  1383. <el-dialog
  1384. width="70%"
  1385. title="配载表"
  1386. :close-on-click-modal="false"
  1387. :close-on-press-escape="false"
  1388. :visible.sync="stowageDialog"
  1389. append-to-body
  1390. >
  1391. <span>
  1392. <el-form label-width="80px" :model="formLabelAlign">
  1393. <el-row>
  1394. <el-col :span="8">
  1395. <el-form-item label="业务类型">
  1396. <el-select
  1397. v-model="formLabelAlign.billType"
  1398. placeholder="请选择业务类型"
  1399. :disabled="disabled"
  1400. size="mini"
  1401. style="width: 100%"
  1402. >
  1403. <el-option
  1404. v-for="(dict, index) in billTypeList"
  1405. :key="index.dictValue"
  1406. :label="dict.dictLabel"
  1407. :value="dict.dictValue"
  1408. />
  1409. </el-select>
  1410. </el-form-item>
  1411. </el-col>
  1412. <el-col :span="8">
  1413. <el-form-item label="运输方式">
  1414. <el-select
  1415. v-model="formLabelAlign.transType"
  1416. placeholder="请选择运输方式"
  1417. :disabled="disabled"
  1418. size="mini"
  1419. style="width: 100%"
  1420. >
  1421. <el-option
  1422. v-for="(dict, index) in transTypeList"
  1423. :key="index.dictValue"
  1424. :label="dict.dictLabel"
  1425. :value="dict.dictValue"
  1426. />
  1427. </el-select>
  1428. </el-form-item>
  1429. </el-col>
  1430. <el-col :span="8">
  1431. <el-form-item label="提单号">
  1432. <el-input v-model="formLabelAlign.mblno"></el-input>
  1433. </el-form-item>
  1434. </el-col>
  1435. </el-row>
  1436. <el-row>
  1437. <el-col :span="8">
  1438. <el-form-item label="提箱地点">
  1439. <el-input v-model="formLabelAlign.loadAddr"></el-input>
  1440. </el-form-item>
  1441. </el-col>
  1442. <el-col :span="8">
  1443. <el-form-item label="卸货地点">
  1444. <el-input v-model="formLabelAlign.mdLoadAddr"></el-input>
  1445. </el-form-item>
  1446. </el-col>
  1447. <el-col :span="8">
  1448. <el-form-item label="装车时间">
  1449. <el-date-picker
  1450. style="width: 100%;"
  1451. v-model="datatime"
  1452. type="daterange"
  1453. @change="dataTimeMmethod"
  1454. value-format="yyyy-MM-dd"
  1455. range-separator="至"
  1456. start-placeholder="开始日期"
  1457. end-placeholder="结束日期">
  1458. </el-date-picker>
  1459. </el-form-item>
  1460. </el-col>
  1461. </el-row>
  1462. </el-form>
  1463. <div style="margin: 10px auto">
  1464. <el-button type="primary" size="small" icon="el-icon-search" @click="queryStowage">搜索</el-button>
  1465. </div>
  1466. <el-table
  1467. :data="stowageList"
  1468. style="width: 100%"
  1469. @selection-change="handleSelectionChange"
  1470. ref="multipleTable"
  1471. @row-click="handleRowClick"
  1472. >
  1473. <!-- <el-table-column type="selection" width="55" :show-overflow-tooltip="true"/>-->
  1474. <el-table-column prop="carcorPid" label="客户名称" :show-overflow-tooltip="true"/>
  1475. <el-table-column prop="transType" label="运输方式" :show-overflow-tooltip="true"/>
  1476. <el-table-column prop="mblno" label="提单号" :show-overflow-tooltip="true"/>
  1477. <el-table-column prop="loadAddr" label="提箱地点" :show-overflow-tooltip="true"/>
  1478. <el-table-column prop="unLoadAddr" label="卸货地点" :show-overflow-tooltip="true"/>
  1479. <el-table-column prop="loadDate" :formatter="dateFormat" label="装车时间" :show-overflow-tooltip="true"/>
  1480. <el-table-column prop="cntrName" label="箱型" :show-overflow-tooltip="true"/>
  1481. <el-table-column prop="corpId" label="车队名称" :show-overflow-tooltip="true"/>
  1482. <el-table-column prop="planCntrQty" label="调度量" :show-overflow-tooltip="true"/>
  1483. <el-table-column prop="cntrQty" label="已派车" :show-overflow-tooltip="true"/>
  1484. <!-- <el-table-column prop="mblno" label="运输性质" :show-overflow-tooltip="true"/>-->
  1485. <el-table-column label="操作">
  1486. <template slot-scope="scope">
  1487. <el-button type="text" icon="el-icon-finished" @click="stowageForm(scope.row)">确认配载</el-button>
  1488. </template>
  1489. </el-table-column>
  1490. </el-table>
  1491. </span>
  1492. <span slot="footer" class="dialog-footer">
  1493. <el-button @click="stowageDialog = false">取 消</el-button>
  1494. </span>
  1495. </el-dialog>
  1496. </el-dialog>
  1497. </template>
  1498. <script>
  1499. import {
  1500. addFtmsorderbills,
  1501. RetreatFtmsorderbills,
  1502. allowChangesFtmsorderbills,
  1503. updateFtmsorderbills,
  1504. } from "@/api/fleet/ftmsorderbills";
  1505. import {
  1506. singleaddFtmsorderbillscars,
  1507. revokeFtmsorderbillscars,
  1508. removeFtmsorderbillscars,
  1509. saveFtmsorderbillscars,
  1510. changeFtmsorderbillscars,
  1511. addFtmsorderbillscars,
  1512. singleChangeFtmsorderbillscars,
  1513. selectStowage,
  1514. addStowage,
  1515. revokeStowage,
  1516. } from "@/api/fleet/ftmsorderbillscars";
  1517. import {getBasicInformation} from "@/api/kaihe/basicdata/container";
  1518. import {company} from "@/api/fleet/carManage";
  1519. import {listFtmsorderbillss} from "@/api/fleet/carManage";
  1520. import {driverList} from "@/api/fleet/driverMsg";
  1521. import {listGoods} from "@/api/basicdata/goods";
  1522. import {listCorps} from "@/api/basicdata/corps";
  1523. import {listFees} from "@/api/basicdata/fees";
  1524. import UploadFile from "@/components/Uploadfile";
  1525. import Cookies from "js-cookie";
  1526. import {getToken} from "@/utils/auth";
  1527. import moment from "moment";
  1528. export default {
  1529. name: "plans",
  1530. props: {
  1531. addOrUpdateVisible: {
  1532. type: Boolean,
  1533. default: false,
  1534. },
  1535. title: {
  1536. type: String,
  1537. required: "",
  1538. },
  1539. form: Object,
  1540. disabled: {
  1541. type: Boolean,
  1542. default: false,
  1543. },
  1544. DList: {
  1545. type: Array,
  1546. default: [],
  1547. },
  1548. CList: {
  1549. type: Array,
  1550. default: [],
  1551. },
  1552. schedulingList: {
  1553. type: Array,
  1554. default: [],
  1555. },
  1556. vehicleList: {
  1557. type: Array,
  1558. default: [],
  1559. },
  1560. collapses: {
  1561. type: Array,
  1562. default: [],
  1563. },
  1564. relevantAttachments: {
  1565. type: Array,
  1566. default: [],
  1567. },
  1568. },
  1569. components: {
  1570. UploadFile,
  1571. },
  1572. data() {
  1573. return {
  1574. datatime: '',
  1575. multipleSelection: [],
  1576. companyList: [],
  1577. formLabelAlign: {},
  1578. formList: {},
  1579. lbStatus: {},
  1580. dcList: [
  1581. {
  1582. value: "D",
  1583. label: "收款",
  1584. },
  1585. {
  1586. value: "C",
  1587. label: "付款",
  1588. },
  1589. ],
  1590. currencyList: [
  1591. {
  1592. value: "RMB",
  1593. label: "RMB",
  1594. },
  1595. ],
  1596. // 控制弹出框显示隐藏
  1597. showDialog: false,
  1598. // 表单校验
  1599. rules: {
  1600. corpId: [
  1601. {required: true, message: "请输入客户名称", trigger: "blur"},
  1602. ],
  1603. billType: [
  1604. {required: true, message: "请选择业务类型", trigger: "blur"},
  1605. ],
  1606. transType: [
  1607. {required: true, message: "请选择运输方式", trigger: "blur"},
  1608. ],
  1609. loadAddr: [
  1610. {required: true, message: "请输入提箱地点", trigger: "blur"},
  1611. ],
  1612. loadAttntel: [
  1613. {
  1614. pattern: /^((0\d{2,3}-\d{7,8})|(1[0123456789]\d{9}))$/,
  1615. message: "请正确输入手机号",
  1616. trigger: "blur",
  1617. },
  1618. ],
  1619. mdLoadAttnTel: [
  1620. {
  1621. pattern: /^((0\d{2,3}-\d{7,8})|(1[0123456789]\d{9}))$/,
  1622. message: "请正确输入手机号",
  1623. trigger: "blur",
  1624. },
  1625. ],
  1626. unLoadAttnTel: [
  1627. {
  1628. pattern: /^((0\d{2,3}-\d{7,8})|(1[0123456789]\d{9}))$/,
  1629. message: "请正确输入手机号",
  1630. trigger: "blur",
  1631. },
  1632. ],
  1633. },
  1634. billTypeList: [],
  1635. transTypeList: [],
  1636. transPropList: [],
  1637. goodsLossTypeList: [],
  1638. cntrIdList: [],
  1639. priceTypeList: [],
  1640. userType: null,
  1641. username: null,
  1642. fMblnoOptions: [],
  1643. goodsOptions: [],
  1644. fWbuOptions: [],
  1645. ffeeunitidList: [],
  1646. carManages: [],
  1647. stowageList: [],
  1648. stowageDialog: false,
  1649. disabled2: false,
  1650. polList: [],
  1651. podList: [],
  1652. collapses2: [],
  1653. stowageSelection: [],
  1654. uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
  1655. headers: {
  1656. Authorization: "Bearer " + getToken(),
  1657. },
  1658. addStowagData: "",
  1659. detailsHidden: false,
  1660. };
  1661. },
  1662. created() {
  1663. this.getDicts("data_billType").then((response) => {
  1664. this.billTypeList = response.data;
  1665. });
  1666. this.getDicts("data_transType").then((response) => {
  1667. this.transTypeList = response.data;
  1668. });
  1669. this.getDicts("data_transProp").then((response) => {
  1670. this.transPropList = response.data;
  1671. });
  1672. this.getDicts("data_goodsLossType").then((response) => {
  1673. this.goodsLossTypeList = response.data;
  1674. });
  1675. this.getDicts("data_cntrId").then((response) => {
  1676. response.data.map((e) => (e.noOption = false));
  1677. this.cntrIdList = response.data;
  1678. });
  1679. this.getDicts("data_priceType").then((response) => {
  1680. this.priceTypeList = response.data;
  1681. });
  1682. this.getDicts("data_ffeeunitid").then((response) => {
  1683. this.ffeeunitidList = response.data;
  1684. });
  1685. getBasicInformation({
  1686. fTypes: 1,
  1687. fStatus: "T",
  1688. }).then((response) => {
  1689. this.polList = response;
  1690. this.podList = response;
  1691. });
  1692. listCorps().then((response) => {
  1693. this.fMblnoOptions = response.rows;
  1694. });
  1695. listGoods().then((response) => {
  1696. this.goodsOptions = response.rows;
  1697. });
  1698. listFees().then((response) => {
  1699. this.fWbuOptions = response.rows;
  1700. });
  1701. listFtmsorderbillss().then((response) => {
  1702. this.carManages = response;
  1703. });
  1704. company({
  1705. fStatus: 0,
  1706. }).then((response) => {
  1707. this.companyList = response.rows;
  1708. });
  1709. this.userType = Cookies.get("userType");
  1710. this.username = Cookies.get("userName");
  1711. },
  1712. methods: {
  1713. dataTimeMmethod() {
  1714. this.formLabelAlign.loadDateBegin = this.datatime[0]
  1715. this.formLabelAlign.loadDateEnd = this.datatime[1]
  1716. },
  1717. dateFormat(row, column) {
  1718. let date = row[column.property]
  1719. if (date == undefined) return ''
  1720. return moment(date).format("YYYY-MM-DD HH:mm:ss")
  1721. },
  1722. // changeStowageRow(row) {
  1723. // revokeStowage(row).then((response) => {
  1724. // if (response.code == 200) {
  1725. // this.msgSuccess("配载撤销成功");
  1726. // response.data.map((e, index) => {
  1727. // this.$set(this.vehicleList, index, e);
  1728. // });
  1729. // }
  1730. // });
  1731. // },
  1732. changeStowageRow(row,scope) {
  1733. revokeStowage(row).then((response) => {
  1734. if (response.code == 200) {
  1735. this.msgSuccess("配载撤销成功");
  1736. scope.row.billKind = 'NN'
  1737. response.data.map((e, index) => {
  1738. this.$set(this.vehicleList, index, e);
  1739. });
  1740. }
  1741. });
  1742. },
  1743. handleSelectionChange(val) {
  1744. if (val.length > 1) {
  1745. this.$refs.multipleTable.clearSelection();
  1746. this.$refs.multipleTable.toggleRowSelection(val.pop());
  1747. } else {
  1748. this.addStowagData = val[0];
  1749. }
  1750. },
  1751. handleRowClick(row) {
  1752. this.$refs.multipleTable.toggleRowSelection(row);
  1753. },
  1754. carChange(row) {
  1755. let arr = [];
  1756. arr = this.carManages.filter((e) => e.carNum == row.carregNo);
  1757. this.$set(row, "driverName", arr[0].driverName);
  1758. this.$set(row, "driverTel", arr[0].driverTel);
  1759. this.$set(row, "driverUserId", arr[0].driverId);
  1760. },
  1761. //选中时赋值pid
  1762. checkPid(row) {
  1763. let arr = this.schedulingList;
  1764. let arr2 = arr.filter((e) => e.cntrId == row.cntrId);
  1765. row["pid"] = arr2[0].id;
  1766. },
  1767. noMorecntrId(e) {
  1768. this.cntrIdList.forEach((item) => (item.noOption = false));
  1769. let arrIds = e.map((item) => item.cntrId);
  1770. this.cntrIdList
  1771. .filter((item) => arrIds.indexOf(item.dictValue) > -1)
  1772. .forEach((item) => (item.noOption = true));
  1773. },
  1774. showSure(val) {
  1775. let pidList = val.filter((e) => e.pid != null);
  1776. let arr1 = pidList;
  1777. let arr1Ids = arr1.map((item) => item.cntrId);
  1778. arr1Ids = [...new Set(arr1Ids)];
  1779. let arr2 = this.cntrIdList;
  1780. this.cntrId2List = arr2.filter(
  1781. (item) => arr1Ids.indexOf(item.dictValue) > -1
  1782. );
  1783. },
  1784. // 新增附件上传
  1785. addRelevt() {
  1786. this.relevantAttachments.push({
  1787. attachUrl: null,
  1788. attachName: null,
  1789. createBy: this.username,
  1790. createTime: Date.parse(new Date()),
  1791. });
  1792. },
  1793. //附件删除
  1794. deleteFile(scope) {
  1795. this.relevantAttachments[scope.$index].attachName = "";
  1796. this.relevantAttachments[scope.$index].attachUrl = "";
  1797. if (this.relevantAttachments[scope.$index].attachUrl === "") {
  1798. this.$message.success("删除成功");
  1799. } else {
  1800. this.$message.error("未知错误,删除失败");
  1801. }
  1802. },
  1803. //附件查看
  1804. checkFile(scope) {
  1805. if (this.relevantAttachments[scope.$index].attachUrl) {
  1806. window.open(this.relevantAttachments[scope.$index].attachUrl);
  1807. } else {
  1808. this.$message.error("请上传附件");
  1809. }
  1810. },
  1811. //附件上传
  1812. handleSucces(scope, res, file) {
  1813. this.relevantAttachments[scope.$index].attachName = res.fileName;
  1814. this.relevantAttachments[scope.$index].attachUrl = res.url;
  1815. if (this.relevantAttachments[scope.$index].attachUrl === "") {
  1816. this.$message.error("上传失败");
  1817. } else {
  1818. this.$message.success("上传成功");
  1819. }
  1820. },
  1821. // 添加行
  1822. addRow(tableData, event) {
  1823. var obj = {};
  1824. tableData.push(obj);
  1825. this.showSure(this.schedulingList);
  1826. },
  1827. // 添加行
  1828. addRow2(tableData, event) {
  1829. tableData.push({
  1830. cntrId: this.schedulingList[0].cntrId,
  1831. pId: this.schedulingList[0].id,
  1832. carcorPid: this.schedulingList[0].carcorPid,
  1833. freightPriceDr: this.schedulingList[0].freightPriceDr,
  1834. freightPriceCr: this.schedulingList[0].freightPriceCr,
  1835. });
  1836. this.showSure(this.schedulingList);
  1837. listFtmsorderbillss({
  1838. fleetCompanyId: this.schedulingList[0].carcorPid,
  1839. }).then((response) => {
  1840. this.carManages = response;
  1841. });
  1842. },
  1843. //删除行
  1844. deleteRow(index, rows) {
  1845. rows.splice(index, 1);
  1846. },
  1847. deleteplansRow(index, rows, row) {
  1848. let arr = this.schedulingList;
  1849. let arr2 = arr.filter((e) => e.cntrId == row.cntrId && e.cntrId != null);
  1850. if (arr2.length != 0) {
  1851. this.$message.error("调度安排已插入此箱型数据,不能删除");
  1852. } else {
  1853. this.cntrIdList
  1854. .filter((item) => item.dictValue == row.cntrId)
  1855. .forEach((item) => (item.noOption = false));
  1856. rows.splice(index, 1);
  1857. }
  1858. },
  1859. addDListRow(tableData, event) {
  1860. var obj = {fcorpid: this.form.corpId, fcurrency: "RMB", fExrate: "1"};
  1861. tableData.push(obj);
  1862. },
  1863. // 上传成功返回数据
  1864. showFile(row) {
  1865. for (let list in this.relevantAttachments) {
  1866. this.$set(this.relevantAttachments[list], "attachUrl", row.url);
  1867. this.$set(this.relevantAttachments[list], "attachName", row.fileName);
  1868. }
  1869. },
  1870. // 弹出框关闭后触发
  1871. handleClose() {
  1872. // 子组件调用父组件方法,并传递参数
  1873. this.$emit("changeShow", "false");
  1874. this.cntrIdList.forEach((item) => (item.noOption = false));
  1875. },
  1876. /** 提交按钮 */
  1877. submitForm() {
  1878. this.$refs["form"].validate((valid) => {
  1879. if (valid) {
  1880. if (!this.vehicleList.length) {
  1881. return this.$message.error("车辆安排不能为空");
  1882. }
  1883. if (this.schedulingList[0].cntrQty != this.schedulingList[0].carQty) {
  1884. return this.$message.error("调度安排存在未安排的货量");
  1885. }
  1886. this.DList.map((e) => {
  1887. return (e.fDc = "D");
  1888. });
  1889. this.DList.map((e) => {
  1890. return (e.fcurrency = "RMB");
  1891. });
  1892. this.CList.map((e) => {
  1893. return (e.fDc = "C");
  1894. });
  1895. this.CList.map((e) => {
  1896. return (e.fcurrency = "RMB");
  1897. });
  1898. this.vehicleList.map((e) => {
  1899. return (e.carcorPid = this.schedulingList[0].carcorPid);
  1900. });
  1901. let num = 0;
  1902. this.vehicleList.map((e) => {
  1903. num += parseInt(e.cntrQty);
  1904. });
  1905. for (let li in this.vehicleList) {
  1906. if (
  1907. this.vehicleList[li].billStatus < 6 &&
  1908. this.vehicleList[li].billStatus != 3
  1909. ) {
  1910. return this.$message.error("车辆安排存在未提交的数据");
  1911. }
  1912. }
  1913. if (num > this.schedulingList[0].cntrQty) {
  1914. return this.$message.error("车辆安排货量已超过计划货量");
  1915. }
  1916. let arr2 = [];
  1917. let arr = this.vehicleList.filter((e) => e.billStatus == 6);
  1918. arr.map((a) => {
  1919. arr2.push(a.carregNo);
  1920. });
  1921. this.schedulingList[0]["carnolist"] = [...new Set(arr2)].join("/");
  1922. let formData = new window.FormData();
  1923. formData.append("cars", JSON.stringify(this.vehicleList));
  1924. formData.append("attachs", JSON.stringify(this.relevantAttachments));
  1925. formData.append(
  1926. "fees",
  1927. JSON.stringify(this.DList.concat(this.CList))
  1928. );
  1929. formData.append("plans", JSON.stringify(this.schedulingList[0]));
  1930. addFtmsorderbillscars(formData).then((response) => {
  1931. this.msgSuccess("提交成功");
  1932. this.$parent.getList();
  1933. this.showDialog = false;
  1934. });
  1935. }
  1936. });
  1937. },
  1938. //修改
  1939. submitFix() {
  1940. // this.$refs["form"].validate((valid) => {
  1941. // if (valid) {
  1942. // if (this.form.id != null) {
  1943. // this.DList.map((e) => {
  1944. // return (e.fDc = "D");
  1945. // });
  1946. // this.DList.map((e) => {
  1947. // return (e.fcurrency = "RMB");
  1948. // });
  1949. // this.CList.map((e) => {
  1950. // return (e.fDc = "C");
  1951. // });
  1952. // this.CList.map((e) => {
  1953. // return (e.fcurrency = "RMB");
  1954. // });
  1955. // let formData = new window.FormData();
  1956. // formData.append("tmsorder", JSON.stringify(this.form));
  1957. // formData.append(
  1958. // "attachs",
  1959. // JSON.stringify(this.relevantAttachments)
  1960. // );
  1961. // formData.append(
  1962. // "fees",
  1963. // JSON.stringify(this.DList.concat(this.CList))
  1964. // );
  1965. // formData.append("plans", JSON.stringify(this.schedulingList));
  1966. // updateFtmsorderbills(formData).then((response) => {
  1967. // this.msgSuccess("修改成功");
  1968. // this.$parent.getList();
  1969. // this.showDialog = false;
  1970. // });
  1971. // }
  1972. // }
  1973. // });
  1974. },
  1975. //保存
  1976. submitSave() {
  1977. this.DList.map((e) => {
  1978. return (e.fDc = "D");
  1979. });
  1980. this.DList.map((e) => {
  1981. return (e.fcurrency = "RMB");
  1982. });
  1983. this.CList.map((e) => {
  1984. return (e.fDc = "C");
  1985. });
  1986. this.CList.map((e) => {
  1987. return (e.fcurrency = "RMB");
  1988. });
  1989. this.vehicleList.map((e) => {
  1990. return (e.carcorPid = this.schedulingList[0].carcorPid);
  1991. });
  1992. let arr2 = [];
  1993. let arr = this.vehicleList.filter((e) => e.billStatus == 6);
  1994. arr.map((a) => {
  1995. arr2.push(a.carregNo);
  1996. });
  1997. this.schedulingList[0]["carnolist"] = [...new Set(arr2)].join("/");
  1998. let formData = new window.FormData();
  1999. formData.append("cars", JSON.stringify(this.vehicleList));
  2000. formData.append("attachs", JSON.stringify(this.relevantAttachments));
  2001. formData.append("fees", JSON.stringify(this.DList.concat(this.CList)));
  2002. formData.append("plans", JSON.stringify(this.schedulingList[0]));
  2003. saveFtmsorderbillscars(formData).then((response) => {
  2004. if (response.code == 200) {
  2005. this.msgSuccess("保存成功");
  2006. this.$parent.getList();
  2007. this.$parent.getSave(response);
  2008. }
  2009. });
  2010. },
  2011. //撤回
  2012. submitRetreat() {
  2013. const id = {id: this.form.id};
  2014. RetreatFtmsorderbills(id).then((response) => {
  2015. if (response.code == 200) {
  2016. this.msgSuccess("撤回成功");
  2017. this.$parent.getList();
  2018. this.$emit("fixDisabled", "false");
  2019. }
  2020. });
  2021. },
  2022. //修改
  2023. submitAllowChanges() {
  2024. // if (this.schedulingList.billStatus > 6) {
  2025. // this.$emit("fixDisabled", "false");
  2026. // this.msgSuccess("允许修改");
  2027. // }
  2028. // const id = this.form.id;
  2029. // allowChangesFtmsorderbills(id).then((response) => {
  2030. // if (response == false) {
  2031. // this.msgSuccess("不允许修改");
  2032. // } else {
  2033. // this.$emit("fixDisabled", "false");
  2034. // this.msgSuccess("允许修改");
  2035. // }
  2036. // });
  2037. },
  2038. //单条订单调度提交
  2039. addscarsRow(row) {
  2040. if (row.billStatus == 5) {
  2041. singleChangeFtmsorderbillscars(row).then((response) => {
  2042. if (response.code == 200) {
  2043. this.msgSuccess("成功提交");
  2044. this.$set(row, "billStatus", 6);
  2045. this.$set(
  2046. this.schedulingList[0],
  2047. "carQty",
  2048. response.data.plan.carQty
  2049. );
  2050. this.$set(row, "orderStatus", response.data.cars.orderStatus);
  2051. this.$set(row, "billKind", response.data.cars.billKind);
  2052. this.$set(row, "mBillNo", response.data.cars.mBillNo);
  2053. this.$set(row, "orderNo", response.data.cars.orderNo);
  2054. this.$set(row, "orgId", response.data.cars.orgId);
  2055. this.$set(row, "id", response.data.cars.id);
  2056. this.$set(row, "mblno", response.data.cars.mblno);
  2057. }
  2058. });
  2059. } else if (row.billStatus != 6) {
  2060. singleaddFtmsorderbillscars(row).then((response) => {
  2061. this.msgSuccess("成功提交");
  2062. if (response.code == 200) {
  2063. this.$set(row, "billStatus", 6);
  2064. this.$set(
  2065. this.schedulingList[0],
  2066. "carQty",
  2067. response.data.plan.carQty
  2068. );
  2069. this.$set(row, "orderStatus", response.data.cars.orderStatus);
  2070. this.$set(row, "billKind", response.data.cars.billKind);
  2071. this.$set(row, "mBillNo", response.data.cars.mBillNo);
  2072. this.$set(row, "orderNo", response.data.cars.orderNo);
  2073. this.$set(row, "orgId", response.data.cars.orgId);
  2074. this.$set(row, "id", response.data.cars.id);
  2075. this.$set(row, "mblno", response.data.cars.mblno);
  2076. }
  2077. });
  2078. } else {
  2079. this.$message.error("请勿重复提交");
  2080. }
  2081. },
  2082. delscarsRow(index, rows, row) {
  2083. if (row.billStatus != 6 && row.id != null) {
  2084. removeFtmsorderbillscars(row).then((response) => {
  2085. if (response.code == 200) {
  2086. rows.splice(index, 1);
  2087. this.msgSuccess("成功删除");
  2088. this.$set(
  2089. this.schedulingList[0],
  2090. "carQty",
  2091. response.data.plan.carQty
  2092. );
  2093. }
  2094. });
  2095. } else {
  2096. rows.splice(index, 1);
  2097. }
  2098. },
  2099. revokescarsRow(index, rows, row) {
  2100. if (row.billStatus == 6) {
  2101. revokeFtmsorderbillscars(row).then((response) => {
  2102. if (response.code == 200) {
  2103. this.msgSuccess("成功撤回");
  2104. this.$set(row, "billStatus", 3);
  2105. this.$set(row, "orderStatus", response.data.cars.orderStatus);
  2106. this.$set(row, "orgId", response.data.cars.orgId);
  2107. this.$set(row, "id", response.data.cars.id);
  2108. this.$set(
  2109. this.schedulingList[0],
  2110. "carQty",
  2111. response.data.plan.carQty
  2112. );
  2113. }
  2114. });
  2115. } else {
  2116. this.$message.error("此条数据没有提交,不能申请撤回");
  2117. }
  2118. },
  2119. queryStowage() {
  2120. selectStowage(this.formLabelAlign).then((response) => {
  2121. if (response.rows) {
  2122. this.stowageList = response.rows;
  2123. }
  2124. });
  2125. },
  2126. // 配载跳转
  2127. stowageForm(row) {
  2128. this.showDialog = false
  2129. this.stowageDialog = false
  2130. this.$emit('stowageInquiry', row,this.formList)
  2131. },
  2132. // 查询可配载数据
  2133. selectStowage(row) {
  2134. this.formList = row
  2135. // this.$set(this.formLabelAlign,'mblno',row.mblno)
  2136. this.$set(this.formLabelAlign,'sourceId',row.id)
  2137. selectStowage(row).then((response) => {
  2138. this.stowageDialog = true;
  2139. if (response.rows) {
  2140. this.stowageList = response.rows;
  2141. }
  2142. });
  2143. },
  2144. changescarsRow(row) {
  2145. if (row.billStatus == 6) {
  2146. changeFtmsorderbillscars(row.id).then((response) => {
  2147. if (response.code == 200) {
  2148. this.msgSuccess("允许变更");
  2149. this.$set(row, "billStatus", 5);
  2150. }
  2151. });
  2152. } else if (row.billStatus == 5) {
  2153. this.$message.error("请勿重复变更");
  2154. } else {
  2155. this.msgSuccess("允许变更");
  2156. this.$set(row, "billStatus", 5);
  2157. }
  2158. },
  2159. total(row) {
  2160. if (row.fQty && row.fUnitprice) {
  2161. this.$set(row, "fAmount", (row.fQty * row.fUnitprice).toFixed(2));
  2162. } else {
  2163. this.$set(row, "fAmount", 0);
  2164. }
  2165. },
  2166. },
  2167. watch: {
  2168. // 监听 addOrUpdateVisible 改变
  2169. addOrUpdateVisible(oldVal, newVal) {
  2170. this.showDialog = this.addOrUpdateVisible;
  2171. },
  2172. schedulingList(val) {
  2173. this.showSure(val);
  2174. },
  2175. collapses() {
  2176. this.collapses2 = this.collapses;
  2177. },
  2178. },
  2179. };
  2180. </script>