detailPage.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921
  1. <template>
  2. <div>
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <el-button
  6. type="danger"
  7. style="border: none;background: none;color: red"
  8. icon="el-icon-arrow-left"
  9. @click="backToList"
  10. >返回列表
  11. </el-button>
  12. </div>
  13. </div>
  14. <containerTitle
  15. title="起止地信息"
  16. style="margin-top: 50px"></containerTitle>
  17. <basic-container>
  18. <el-table
  19. ref="singleTable"
  20. :data="tableData"
  21. size="mini"
  22. :header-cell-style="{color:'#000',background:'#fafafa'}"
  23. style="width: 100%">
  24. <el-table-column
  25. property="date"
  26. align="center"
  27. width="40">
  28. <template slot-scope="scope">
  29. <span v-if="scope.$index == 0">
  30. <el-button type="primary" size="mini" circle>起</el-button>
  31. </span>
  32. <span v-else-if="scope.$index === tableData.length-1">
  33. <el-button type="success" size="mini" circle>止</el-button>
  34. </span>
  35. <span v-else>
  36. <el-button v-if="goodsForm.status === 1" type="warning" size="mini" circle>途</el-button>
  37. <el-tooltip v-else class="item" effect="dark" content="删除" placement="right">
  38. <el-button type="danger" icon="el-icon-delete" size="mini" circle
  39. @click="deleteAddress(scope)"></el-button>
  40. </el-tooltip>
  41. </span>
  42. </template>
  43. </el-table-column>
  44. <el-table-column
  45. type="index"
  46. label="序号"
  47. align="center"
  48. width="60">
  49. </el-table-column>
  50. <el-table-column
  51. property="corpName"
  52. label="发货工厂"
  53. align="center"
  54. show-overflow-tooltip
  55. width="280">
  56. </el-table-column>
  57. <el-table-column
  58. property="province"
  59. label="省市区"
  60. align="center"
  61. width="280">
  62. <template slot-scope="scope">
  63. <el-cascader
  64. size="small"
  65. style="width: 100%;"
  66. v-model="scope.row.region"
  67. disabled
  68. :props="treeOption"></el-cascader>
  69. </template>
  70. </el-table-column>
  71. <el-table-column
  72. property="address"
  73. align="center"
  74. show-overflow-tooltip
  75. label="详细地址">
  76. <!-- <template slot-scope="scope">-->
  77. <!-- <el-input v-model="scope.row.address" size="small" placeholder="请输入内容"></el-input>-->
  78. <!-- </template>-->
  79. </el-table-column>
  80. </el-table>
  81. </basic-container>
  82. <containerTitle title="箱信息"></containerTitle>
  83. <basic-container>
  84. <avue-crud
  85. :data="entrustList"
  86. ref="crudContact"
  87. :option="entrustOptionTwoT"
  88. @row-save="(row,done,loading)=>{rowSaveT(row,0,done,loading)}"
  89. @row-update="rowSaveWell">
  90. <!-- <template slot-scope="{type,size,row}" slot="menu">-->
  91. <!-- <el-button icon="el-icon-edit" :size="size" :type="type" @click="designate(row)">指派</el-button>-->
  92. <!-- </template>-->
  93. <template slot-scope="{row,index}" slot="menu">
  94. <el-button
  95. type="text"
  96. size="small"
  97. v-if="row.status===0"
  98. @click="rowSaveT(row,index)"
  99. >{{ row.$cellEdit ? '保 存' : '修 改' }}
  100. </el-button>
  101. <el-button
  102. size="small"
  103. type="text"
  104. @click="designate(row, index)"
  105. v-if="row.status === 0"
  106. >调 度
  107. </el-button>
  108. <el-button
  109. size="small"
  110. type="text"
  111. @click="cancelDesignate(row, index)"
  112. v-if="row.status===1"
  113. >取消调度
  114. </el-button>
  115. </template>
  116. </avue-crud>
  117. </basic-container>
  118. <containerTitle title="委托信息"></containerTitle>
  119. <basic-container>
  120. <avue-form :option="goodsOptionForm" v-model="goodsForm">
  121. <template slot-scope="scope" slot="corpId">
  122. <crop-select
  123. v-model="goodsForm.corpId"
  124. disabled
  125. ></crop-select>
  126. </template>
  127. <template slot-scope="scope" slot="agentId">
  128. <crop-select
  129. :disabled="goodsForm.status === 1"
  130. v-model="goodsForm.agentId"
  131. ></crop-select>
  132. </template>
  133. <template slot-scope="scope" slot="polId">
  134. <port-info
  135. v-model="goodsForm.polId"
  136. :disabled="goodsForm.status === 1"
  137. />
  138. </template>
  139. <template slot-scope="scope" slot="podId">
  140. <port-info
  141. v-model="goodsForm.polId"
  142. :disabled="goodsForm.status === 1"
  143. />
  144. </template>
  145. </avue-form>
  146. </basic-container>
  147. <span>
  148. <!-- <containerTitle title="费用明细"></containerTitle>-->
  149. <!-- <basic-container>-->
  150. <!-- <el-tabs v-model="activeIndex" @tab-click="handleSelect">-->
  151. <!-- <el-tab-pane label="应收" name="1"></el-tab-pane>-->
  152. <!-- <el-tab-pane label="应付" name="2"></el-tab-pane>-->
  153. <!-- </el-tabs>-->
  154. <!-- <avue-crud-->
  155. <!-- v-if="activeIndex === '1'"-->
  156. <!-- :data="collectionList"-->
  157. <!-- :option="collectionOption"-->
  158. <!-- ref="collection"-->
  159. <!-- @row-save="(row,done,loading)=>{rowSave(row,0,done,loading)}"-->
  160. <!-- @row-update="rowSave"-->
  161. <!-- @row-del="makeDel">-->
  162. <!-- <template slot-scope="{row}" slot="corpId">-->
  163. <!-- <crop-select-->
  164. <!-- v-if="row.$cellEdit"-->
  165. <!-- v-model="row.corpId"-->
  166. <!-- @getCorpData="(data)=>{getfleetId(data,row)}"-->
  167. <!-- ></crop-select>-->
  168. <!-- <span v-else>{{row.corpName}}</span>-->
  169. <!-- </template>-->
  170. <!-- <template slot-scope="{row}" slot="feeId">-->
  171. <!-- <breakdown-select-->
  172. <!-- v-if="row.$cellEdit"-->
  173. <!-- v-model="row.feeId"-->
  174. <!-- @selectValue="(value) => selectValue(value,row)"-->
  175. <!-- :configuration="breakConfiguration"-->
  176. <!-- >-->
  177. <!-- </breakdown-select>-->
  178. <!-- <span v-else>{{ row.feeName }}</span>-->
  179. <!-- </template>-->
  180. <!-- <template slot-scope="{row,index}" slot="menu">-->
  181. <!-- <el-button-->
  182. <!-- type="text"-->
  183. <!-- size="small"-->
  184. <!-- :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"-->
  185. <!-- @click="rowCell(row,index)"-->
  186. <!-- >{{row.$cellEdit?'保存':'编辑'}}</el-button>-->
  187. <!-- <el-button type="text"-->
  188. <!-- icon="el-icon-delete"-->
  189. <!-- size="small"-->
  190. <!-- @click="$refs.collection.rowDel(row,index)"-->
  191. <!-- >删除</el-button>-->
  192. <!-- </template>-->
  193. <!-- <template slot="menuLeft">-->
  194. <!-- <el-button type="primary" icon="el-icon-plus" @click="addRowCollection" size="small">录入明细</el-button>-->
  195. <!-- </template>-->
  196. <!-- </avue-crud>-->
  197. <!-- <avue-crud-->
  198. <!-- v-if="activeIndex === '2'"-->
  199. <!-- :data="paymentList"-->
  200. <!-- :option="paymentOption"-->
  201. <!-- ref="payment"-->
  202. <!-- @row-save="(row,done,loading)=>{rowSave(row,0,done,loading)}"-->
  203. <!-- @row-update="rowSave"-->
  204. <!-- @row-del="feeDel"-->
  205. <!-- >-->
  206. <!-- <template slot-scope="{row}" slot="corpId">-->
  207. <!-- <crop-select-->
  208. <!-- v-if="row.$cellEdit"-->
  209. <!-- v-model="row.corpId"-->
  210. <!-- @getCorpData="(data)=>{getfleetId(data,row)}"-->
  211. <!-- ></crop-select>-->
  212. <!-- <span v-else>{{row.corpName}}</span>-->
  213. <!-- </template>-->
  214. <!-- <template slot-scope="{row}" slot="feeId">-->
  215. <!-- <breakdown-select-->
  216. <!-- v-if="row.$cellEdit"-->
  217. <!-- v-model="row.feeId"-->
  218. <!-- @selectValue="(value) => selectValue(value,row)"-->
  219. <!-- :configuration="breakConfiguration"-->
  220. <!-- >-->
  221. <!-- </breakdown-select>-->
  222. <!-- <span v-else>{{ row.feeName }}</span>-->
  223. <!-- </template>-->
  224. <!-- <template slot-scope="{row,index}" slot="menu">-->
  225. <!-- <el-button-->
  226. <!-- type="text"-->
  227. <!-- size="small"-->
  228. <!-- :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"-->
  229. <!-- @click="paymentRowCell(row,index)"-->
  230. <!-- >{{row.$cellEdit?'保存':'编辑'}}</el-button>-->
  231. <!-- <el-button type="text"-->
  232. <!-- icon="el-icon-delete"-->
  233. <!-- size="small"-->
  234. <!-- @click="$refs.payment.rowDel(row,index)"-->
  235. <!-- >删除</el-button>-->
  236. <!-- </template>-->
  237. <!-- <template slot="menuLeft">-->
  238. <!-- <el-button type="primary" icon="el-icon-plus" @click="addRowPayment" size="small">录入明细</el-button>-->
  239. <!-- </template>-->
  240. <!-- </avue-crud>-->
  241. <!-- </basic-container>-->
  242. </span>
  243. <containerTitle title="上传附件"></containerTitle>
  244. <c-upload
  245. typeUpload="CD"
  246. :data="orderFilesList"
  247. :enumerationValue="76"
  248. ></c-upload>
  249. </div>
  250. </template>
  251. <script>
  252. import {getLazyTree} from "@/api/base/region";
  253. import {
  254. saveDelegationList,
  255. detailDelegationList,
  256. removeCollection,
  257. dispatchCollection,
  258. cancelDispatchCollection
  259. } from "@/api/landTransportation";
  260. export default {
  261. props: {
  262. id: {
  263. type: String
  264. }
  265. },
  266. data() {
  267. return {
  268. activeIndex: '1',
  269. goodsForm: {},
  270. orderFilesList: [],
  271. roleName: localStorage.getItem("roleName").split(',')[0],
  272. breakConfiguration: {
  273. multipleChoices: false,
  274. multiple: false,
  275. disabled: false,
  276. searchShow: true,
  277. collapseTags: false,
  278. clearable: true,
  279. placeholder: '请点击右边按钮选择',
  280. dicData: []
  281. },
  282. advantageProjectData: [],
  283. treeOption: {
  284. label: 'title',
  285. value: 'id',
  286. lazy: true,
  287. lazyLoad(node, resolve) {
  288. const parentId = node.level === 0 ? '00' : node.data.id;
  289. getLazyTree(parentId).then(res => {
  290. resolve(
  291. res.data.data.map(item => {
  292. return {
  293. ...item,
  294. leaf: !item.hasChildren
  295. };
  296. })
  297. );
  298. });
  299. }
  300. },
  301. tableData: [],
  302. entrustListT: [],
  303. entrustOptionTwoT: {
  304. align: 'center',
  305. menuAlign: 'center',
  306. index: true,
  307. cellBtn: false,
  308. addBtn: false,
  309. cancelBtn: false,
  310. editBtn: false,
  311. addRowBtn: false,
  312. delBtn: false,
  313. showSummary: true,
  314. // editBtn:false,
  315. summaryText: "合计",
  316. sumColumnList: [
  317. {
  318. name: 'landWeight',
  319. type: 'sum',
  320. decimals: 6
  321. }, {
  322. name: 'landAmountC',
  323. type: 'sum',
  324. decimals: 2
  325. }, {
  326. name: 'landAmountD',
  327. type: 'sum',
  328. decimals: 2
  329. }, {
  330. name: 'ctnQuantity',
  331. type: 'sum',
  332. decimals: 0
  333. }],
  334. column: [
  335. {
  336. label: '状态',
  337. width: 200,
  338. type: 'select',
  339. dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status",
  340. props: {
  341. label: "dictValue",
  342. value: "dictKey"
  343. },
  344. dataType: "string",
  345. prop: 'status'
  346. }, {
  347. label: '车队',
  348. width: 200,
  349. type: 'select',
  350. filterable:true,
  351. dicUrl: "/api/blade-client/corpsdesc/fleet-list",
  352. props: {
  353. label: "cname",
  354. value: "id"
  355. },
  356. cell: true,
  357. prop: 'fleetId'
  358. }, {
  359. label: '尺寸箱型',
  360. width: 100,
  361. slot: true,
  362. prop: 'ctnType'
  363. }, {
  364. label: '箱量',
  365. width: 50,
  366. prop: 'ctnQuantity'
  367. }, {
  368. label: '重量',
  369. width: 160,
  370. prop: 'landWeight',
  371. controls: false,
  372. precision: 6,
  373. type: 'number'
  374. }, {
  375. label: '车号',
  376. width: 150,
  377. prop: 'plateNo'
  378. }, {
  379. label: '司机',
  380. width: 115,
  381. prop: 'driverName'
  382. }, {
  383. label: '电话',
  384. width: 160,
  385. prop: 'tel'
  386. }, {
  387. label: '应收陆运费',
  388. prop: 'landAmountD'
  389. }, {
  390. label: '应付陆运费',
  391. cell: true,
  392. prop: 'landAmountC'
  393. }, {
  394. label: '委托备注',
  395. prop: 'remarks'
  396. }, {
  397. label: '车队备注',
  398. prop: 'fleetRemarks'
  399. }, {
  400. label: '司机备注',
  401. prop: 'driverRemarks'
  402. }
  403. ]
  404. },
  405. entrustList: [],
  406. goodsOptionForm: {
  407. menuBtn: false,
  408. disabled: true,
  409. span: 8,
  410. column: [{
  411. label: '客户名称',
  412. formslot: true,
  413. prop: 'corpId'
  414. }, {
  415. label: '所属公司',
  416. formslot: true,
  417. prop: 'belongCompany',
  418. rules: [{
  419. required: true,
  420. message: " ",
  421. trigger: "blur"
  422. }],
  423. }, {
  424. label: '订单号',
  425. prop: 'orderNo',
  426. disabled: true
  427. }, {
  428. label: '提单号',
  429. prop: 'billNo'
  430. }, {
  431. label: '场站',
  432. prop: 'station'
  433. }, {
  434. label: '到厂时间',
  435. type: "datetime",
  436. format: 'yyyy-MM-dd HH:mm:ss',
  437. valueFormat: 'yyyy-MM-dd HH:mm:ss',
  438. prop: 'arrivalTime'
  439. }, {
  440. label: '船名航次',
  441. prop: 'factory'
  442. }, {
  443. label: '货物名称',
  444. prop: 'goods'
  445. },{
  446. label: '订舱代理',
  447. prop: 'agentId'
  448. }, {
  449. label: '起运港',
  450. prop: 'polId'
  451. },{
  452. label: '目的港',
  453. prop: 'podId'
  454. },{
  455. label: '开船日期',
  456. prop: 'etd',
  457. type: 'date'
  458. },{
  459. label: '截关日期',
  460. prop: 'etc',
  461. type: 'date'
  462. },{
  463. label: '截单日期',
  464. prop: 'siCutoffDate',
  465. type: 'date'
  466. },{
  467. label: '备注',
  468. prop: 'remarks'
  469. }
  470. ]
  471. },
  472. entrustOptionTwo: {
  473. align: 'center',
  474. menuAlign: 'center',
  475. addBtnText: '录入箱信息',
  476. index: true,
  477. cellBtn: true,
  478. addBtn: false,
  479. addRowBtn: true,
  480. showSummary: true,
  481. summaryText: "合计",
  482. sumColumnList: [
  483. {
  484. name: 'landWeight',
  485. type: 'sum',
  486. decimals: 6
  487. }, {
  488. name: 'landAmountD',
  489. type: 'sum',
  490. decimals: 2
  491. }, {
  492. name: 'ctnQuantity',
  493. type: 'sum',
  494. decimals: 7
  495. }],
  496. column: [{
  497. label: '尺寸箱型',
  498. cell: true,
  499. prop: 'ctnType',
  500. type: 'select',
  501. width: 100,
  502. dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxType",
  503. props: {
  504. label: "dictValue",
  505. value: "dictKey"
  506. }
  507. }, {
  508. label: '箱量',
  509. cell: true,
  510. prop: 'ctnQuantity',
  511. controls: false,
  512. precision: 0,
  513. width: 100,
  514. type: 'number'
  515. }, {
  516. label: '总重量(吨)',
  517. cell: true,
  518. prop: 'landWeight',
  519. controls: false,
  520. width: 200,
  521. precision: 6,
  522. type: 'number'
  523. }, {
  524. label: '应收陆运费',
  525. cell: true,
  526. prop: 'landAmountD',
  527. controls: false,
  528. width: 200,
  529. precision: 2,
  530. type: 'number'
  531. }, {
  532. label: '备注',
  533. cell: true,
  534. prop: 'remarks'
  535. }
  536. ]
  537. },
  538. collectionList: [],
  539. collectionOption: {
  540. align: 'center',
  541. menuAlign: 'center',
  542. index: true,
  543. cancelBtn: false,
  544. editBtn: false,
  545. delBtn: false,
  546. cellBtn: false,
  547. addBtn: false,
  548. addRowBtn: false,
  549. showSummary: true,
  550. addBtnText: '录入明细',
  551. summaryText: "合计",
  552. sumColumnList: [{
  553. name: 'price',
  554. type: 'sum',
  555. decimals: 2
  556. }, {
  557. name: 'amount',
  558. type: 'sum',
  559. decimals: 2
  560. }, {
  561. name: 'quantity',
  562. type: 'sum',
  563. decimals: 1
  564. }],
  565. column: [{
  566. label: '客户名称',
  567. slot: true,
  568. prop: 'corpId'
  569. }, {
  570. label: '费用名称',
  571. slot: true,
  572. prop: 'feeId'
  573. }, {
  574. label: '计价单位',
  575. cell: true,
  576. prop: 'unit',
  577. type: "select",
  578. dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
  579. props: {
  580. label: "dictValue",
  581. value: "dictKey"
  582. }
  583. }, {
  584. label: '数量',
  585. cell: true,
  586. prop: 'quantity'
  587. }, {
  588. label: '单价',
  589. cell: true,
  590. prop: 'price'
  591. }, {
  592. label: '金额',
  593. cell: true,
  594. prop: 'amount'
  595. }, {
  596. label: '税率(默认6)',
  597. cell: true,
  598. prop: 'taxRate'
  599. }, {
  600. label: '币别',
  601. cell: true,
  602. prop: 'currency',
  603. type: "select",
  604. dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
  605. props: {
  606. label: "dictValue",
  607. value: "dictKey"
  608. },
  609. }
  610. ]
  611. },
  612. paymentList: [],
  613. paymentOption: {
  614. align: 'center',
  615. menuAlign: 'center',
  616. index: true,
  617. cancelBtn: false,
  618. editBtn: false,
  619. delBtn: false,
  620. cellBtn: false,
  621. addBtn: false,
  622. addRowBtn: false,
  623. showSummary: true,
  624. addBtnText: '录入明细',
  625. summaryText: "合计",
  626. sumColumnList: [{
  627. name: 'price',
  628. type: 'sum',
  629. decimals: 2
  630. }, {
  631. name: 'amount',
  632. type: 'sum',
  633. decimals: 2
  634. }, {
  635. name: 'quantity',
  636. type: 'sum',
  637. decimals: 1
  638. }],
  639. column: [{
  640. label: '客户名称',
  641. slot: true,
  642. prop: 'corpId'
  643. }, {
  644. label: '费用名称',
  645. slot: true,
  646. prop: 'feeId'
  647. }, {
  648. label: '计价单位',
  649. cell: true,
  650. prop: 'unit',
  651. type: "select",
  652. dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
  653. props: {
  654. label: "dictValue",
  655. value: "dictKey"
  656. }
  657. }, {
  658. label: '数量',
  659. cell: true,
  660. prop: 'quantity'
  661. }, {
  662. label: '单价',
  663. cell: true,
  664. prop: 'price'
  665. }, {
  666. label: '金额',
  667. cell: true,
  668. prop: 'amount'
  669. }, {
  670. label: '税率(默认6)',
  671. cell: true,
  672. prop: 'taxRate'
  673. }, {
  674. label: '币别(默认RMB)',
  675. cell: true,
  676. prop: 'currency',
  677. type: "select",
  678. dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
  679. props: {
  680. label: "dictValue",
  681. value: "dictKey"
  682. },
  683. }
  684. ]
  685. }
  686. };
  687. },
  688. created() {
  689. if (this.id) {
  690. detailDelegationList({id: this.id, kind: '2'}).then(res => {
  691. this.goodsForm = res.data.data
  692. this.tableData = res.data.data.orderAddressList
  693. this.entrustList = res.data.data.orderItemList
  694. this.goodsList = res.data.data.orderItemList
  695. if (res.data.data.orderFeeList.length > 0) {
  696. res.data.data.orderFeeList.forEach(item => {
  697. if (item.type == 1) {
  698. this.collectionList.push(item)
  699. } else {
  700. this.paymentList.push(item)
  701. }
  702. })
  703. }
  704. delete this.goodsForm.orderAddressList
  705. delete this.goodsForm.orderItemList
  706. delete this.goodsForm.orderFeeList
  707. this.tableData.forEach(item => {
  708. if (item.region) item.region = item.region.split(',')
  709. })
  710. })
  711. }
  712. },
  713. methods: {
  714. //刷新数据
  715. refreshData() {
  716. detailDelegationList({id: this.id, kind: '2'}).then(res => {
  717. this.goodsForm = res.data.data
  718. this.tableData = res.data.data.orderAddressList
  719. this.entrustList = res.data.data.orderItemList
  720. this.goodsList = res.data.data.orderItemList
  721. if (res.data.data.orderFeeList.length > 0) {
  722. res.data.data.orderFeeList.forEach(item => {
  723. if (item.type == 1) {
  724. this.collectionList.push(item)
  725. } else {
  726. this.paymentList.push(item)
  727. }
  728. })
  729. }
  730. delete this.goodsForm.orderAddressList
  731. delete this.goodsForm.orderItemList
  732. delete this.goodsForm.orderFeeList
  733. this.tableData.forEach(item => {
  734. if (item.region) item.region = item.region.split(',')
  735. })
  736. })
  737. },
  738. //切换收付费
  739. handleSelect(tab, event) {
  740. this.activeIndex = tab.name
  741. },
  742. //箱信息保存
  743. rowSaveT(row, index, done, loading) {
  744. this.$refs.crudContact.rowCell(row, index)
  745. },
  746. rowSaveWell(row, index, done, loading) {
  747. done()
  748. },
  749. //箱信息调度
  750. designate(row,index) {
  751. if (row.fleetId) {
  752. this.$confirm('是否确定调度', '提示', {
  753. confirmButtonText: '确定',
  754. cancelButtonText: '取消',
  755. type: 'warning'
  756. }).then(() => {
  757. dispatchCollection(row).then(res => {
  758. this.$message.success('操作成功');
  759. this.entrustList[index].status = res.data.data.status
  760. })
  761. }).catch(() => {
  762. this.$message({
  763. type: 'info',
  764. message: '已取消'
  765. });
  766. });
  767. } else {
  768. this.$message.warning('请选择车队');
  769. }
  770. },
  771. //取消调度
  772. cancelDesignate(row,index) {
  773. this.$confirm('是否确定取消调度', '提示', {
  774. confirmButtonText: '确定',
  775. cancelButtonText: '取消',
  776. type: 'warning'
  777. }).then(() => {
  778. cancelDispatchCollection({id: row.id}).then(res => {
  779. this.$message.success('操作成功');
  780. this.entrustList[index].status = res.data.data.status
  781. })
  782. }).catch(() => {
  783. this.$message({
  784. type: 'info',
  785. message: '已取消'
  786. });
  787. });
  788. },
  789. //箱信息选择车队
  790. getfleetIdT(data, row) {
  791. this.$set(row, 'fleetName', data.cname)
  792. },
  793. //地址新增
  794. addAddress() {
  795. this.tableData.splice(this.tableData.length - 1, 0, {leas: 1111})
  796. },
  797. //返回主列表
  798. backToList() {
  799. this.$emit('backToList')
  800. },
  801. //删除途径地址
  802. deleteAddress(scope) {
  803. this.tableData.splice(scope.$index, 1);
  804. },
  805. //箱信息保存
  806. rowSave(row, index, done, loading) {
  807. row.$cellEdit = false
  808. done()
  809. },
  810. rowCell(row, index) {
  811. this.$refs.collection.rowCell(row, index)
  812. },
  813. paymentRowCell(row, index) {
  814. this.$refs.payment.rowCell(row, index)
  815. },
  816. //箱信息移除
  817. rowDel(row, index) {
  818. this.$confirm('此操作将永久删除该单据, 是否继续?', '提示', {
  819. confirmButtonText: '确定',
  820. cancelButtonText: '取消',
  821. type: 'warning'
  822. }).then(() => {
  823. this.entrustList.splice(index, 1);
  824. }).catch(() => {
  825. this.$message({
  826. type: 'info',
  827. message: '已取消删除'
  828. });
  829. });
  830. },
  831. //保存
  832. editCustomer() {
  833. let data = JSON.parse(JSON.stringify(this.tableData))
  834. data.forEach(item => {
  835. if (item.region.length !== 0) item.region = item.region.join(',')
  836. })
  837. saveDelegationList({
  838. ...this.goodsForm,
  839. kind: '2',
  840. orderAddressList: data,
  841. orderItemList: this.entrustList,
  842. orderFeeList: this.collectionList.concat(this.paymentList)
  843. }).then(res => {
  844. this.$message.success('保存成功');
  845. })
  846. },
  847. //收费新增
  848. addRowCollection() {
  849. this.$refs.collection.rowCellAdd({
  850. currency: '1',
  851. type: '1',
  852. $cellEdit: true
  853. });
  854. },
  855. //付费新增
  856. addRowPayment() {
  857. this.$refs.payment.rowCellAdd({
  858. currency: '1',
  859. type: '2',
  860. $cellEdit: true
  861. });
  862. },
  863. //选择费用
  864. selectValue(value, row) {
  865. this.$set(row, 'feeName', value.cname)
  866. },
  867. //选择客户信息触发
  868. getfleetId(data, row) {
  869. this.$set(row, 'corpName', data.cname)
  870. },
  871. //收款信息移除
  872. makeDel(row, index) {
  873. this.$confirm('此操作将永久删除该单据, 是否继续?', '提示', {
  874. confirmButtonText: '确定',
  875. cancelButtonText: '取消',
  876. type: 'warning'
  877. }).then(() => {
  878. if (row.id) removeCollection(row.id)
  879. this.collectionList.splice(index, 1);
  880. }).catch(() => {
  881. this.$message({
  882. type: 'info',
  883. message: '已取消删除'
  884. });
  885. });
  886. },
  887. //付款信息移除
  888. feeDel(row, index) {
  889. this.$confirm('此操作将永久删除该单据, 是否继续?', '提示', {
  890. confirmButtonText: '确定',
  891. cancelButtonText: '取消',
  892. type: 'warning'
  893. }).then(() => {
  894. if (row.id) removeCollection(row.id)
  895. this.paymentList.splice(index, 1);
  896. }).catch(() => {
  897. this.$message({
  898. type: 'info',
  899. message: '已取消删除'
  900. });
  901. });
  902. },
  903. //自定义表头
  904. renderHeader(h) {
  905. return (
  906. <div>
  907. <el-tooltip className="item" effect="dark" content="增加途径地址" placement="top">
  908. <el-button type="primary" icon="el-icon-plus" size="mini" circle onClick={() => this.addAddress()}
  909. style="margin-right: 1.25rem;"></el-button>
  910. </el-tooltip>
  911. </div>
  912. )
  913. }
  914. }
  915. }
  916. </script>
  917. <style scoped>
  918. </style>