index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. <template>
  2. <div>
  3. <basic-container v-if="key>0">
  4. <avue-crud
  5. :data="goodsList"
  6. :option="goodsOptionCrud"
  7. :table-loading="loading"
  8. :page.sync="page"
  9. ref="crud"
  10. @on-load="onLoad"
  11. @resetColumn="resetColumn"
  12. @saveColumn="saveColumn"
  13. @search-change="searchChange"
  14. @search-criteria-switch="searchCriteriaSwitch"
  15. @row-save="(row,done,loading)=>{rowSave(row,0,done,loading)}"
  16. @row-update="rowSave">
  17. <template slot="menuLeft">
  18. <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
  19. </template>
  20. <template slot-scope="{row}" slot="fleetId">
  21. <span>{{ row.fleetName }}</span>
  22. </template>
  23. <template slot="billNo" slot-scope="{row,index}">
  24. <span class="el-button--text" style="cursor: pointer" @click.stop="celJump(row,index)">{{ row.billNo }}</span>
  25. </template>
  26. <template slot="corpName" slot-scope="{row,index}">
  27. <span class="el-button--text" style="cursor: pointer"
  28. @click.stop="celJump(row,index)">{{ row.corpName }}</span>
  29. </template>
  30. <template slot="orderNo" slot-scope="{row,index}">
  31. <span class="el-button--text" style="cursor: pointer"
  32. @click.stop="celJump(row,index)">{{ row.orderNo }}</span>
  33. </template>
  34. <template slot-scope="{row}" slot="fleetIdSearch">
  35. <crop-select
  36. v-model="row.fleetId"
  37. corpType="CD"
  38. ></crop-select>
  39. </template>
  40. <template slot-scope="{row,index}" slot="menu">
  41. <el-button
  42. size="small"
  43. type="text"
  44. @click="incidentalConfirm(row)"
  45. >{{row.confirmStatus == 0?'杂费确认':'杂费取消'}}
  46. </el-button>
  47. </template>
  48. <template slot="addressDetail" slot-scope="{ row,index}">
  49. <el-tooltip class="item" effect="dark" placement="top">
  50. <div v-html="ToBreak(row.addressDetail)" slot="content"></div>
  51. <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.addressDetail }}</div>
  52. </el-tooltip>
  53. </template>
  54. <template slot="extraAmountItemC" slot-scope="{ row,index}">
  55. <el-tooltip class="item" effect="dark" placement="top">
  56. <div v-html="ToBreak(row.extraAmountItemC)" slot="content"></div>
  57. <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.extraAmountItemC }}</div>
  58. </el-tooltip>
  59. </template>
  60. <template slot="extraAmountItemD" slot-scope="{ row,index}">
  61. <el-tooltip class="item" effect="dark" placement="top">
  62. <div v-html="ToBreak(row.extraAmountItemD)" slot="content"></div>
  63. <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.extraAmountItemD }}</div>
  64. </el-tooltip>
  65. </template>
  66. </avue-crud>
  67. <el-dialog
  68. title="杂费明细"
  69. :visible.sync="incidentalType"
  70. append-to-body
  71. width="50%">
  72. <avue-crud
  73. :data="collectionList"
  74. :option="collectionOption"
  75. ref="collection"
  76. @resetColumn="resetColumnCollection"
  77. @saveColumn="saveColumnCollection"
  78. @row-save="(row,done,loading)=>{rowSave(row,0,done,loading)}"
  79. @row-update="rowSave">
  80. <template slot-scope="{row,index}" slot="menu">
  81. <!-- <el-button-->
  82. <!-- type="text"-->
  83. <!-- size="small"-->
  84. <!-- :disabled="goodsForm.status === 1"-->
  85. <!-- :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"-->
  86. <!-- @click="rowCell(row,index)"-->
  87. <!-- >{{ row.$cellEdit ? '保存' : '编辑' }}-->
  88. <!-- </el-button>-->
  89. <!-- <el-button type="text"-->
  90. <!-- icon="el-icon-delete"-->
  91. <!-- size="small"-->
  92. <!-- :disabled="goodsForm.status === 1"-->
  93. <!-- @click="$refs.collection.rowDel(row,index)"-->
  94. <!-- >删除-->
  95. <!-- </el-button>-->
  96. <el-button
  97. size="small"
  98. type="text"
  99. icon="el-icon-s-order"
  100. @click="annexOpen(row, index)"
  101. >附 件
  102. </el-button>
  103. </template>
  104. <template slot="menuLeft">
  105. <!-- <el-button-->
  106. <!-- type="primary"-->
  107. <!-- icon="el-icon-plus"-->
  108. <!-- :disabled="goodsForm.status !== 0"-->
  109. <!-- @click="addRowCollection"-->
  110. <!-- size="small">录入明细</el-button>-->
  111. </template>
  112. </avue-crud>
  113. <span slot="footer" class="dialog-footer">
  114. <el-button @click="incidentalType = false" size="small">取 消</el-button>
  115. <el-button type="primary" size="small" v-if="collectionList.length>0" @click="incidentalClick">{{confirmStatus == 0?'杂费确认':'杂费取消'}}</el-button>
  116. </span>
  117. </el-dialog>
  118. <el-dialog
  119. title="附件"
  120. :visible.sync="enclosure"
  121. append-to-body
  122. width="70%">
  123. <c-upload
  124. typeUpload="GZ"
  125. :basic="true"
  126. disabled
  127. deleteUrl="/api/blade-client/common-file/remove"
  128. :data="orderList"
  129. :enumerationValue="76"
  130. ></c-upload>
  131. <span slot="footer" class="dialog-footer">
  132. <el-button @click="enclosure = false" size="small">取 消</el-button>
  133. </span>
  134. </el-dialog>
  135. </basic-container>
  136. </div>
  137. </template>
  138. <script>
  139. import {
  140. acceptanceCollection,
  141. acceptanceDispatchCollection,
  142. confirmCompletion,
  143. fleetList,
  144. motorcadeDriver,
  145. fleetDriverSave,
  146. getAttachment,
  147. saveAttached,
  148. incidental,
  149. getFee,
  150. incidentalConfirm,
  151. cancelConfirm, standingBookCollection
  152. } from "@/api/landTransportation";
  153. import {getToken} from "@/util/auth";
  154. export default {
  155. name: "index",
  156. data() {
  157. return {
  158. key: 0,
  159. form: {},
  160. enclosure:false,
  161. orderList: [],
  162. collectionOptionBackup: {
  163. align: 'center',
  164. menuAlign: 'center',
  165. refreshBtn: false,
  166. index: true,
  167. // menu:false,
  168. cancelBtn: false,
  169. editBtn: false,
  170. delBtn: false,
  171. cellBtn: false,
  172. addBtn: false,
  173. addRowBtn: false,
  174. showSummary: true,
  175. addBtnText: '录入明细',
  176. summaryText: "合计",
  177. sumColumnList: [{
  178. name: 'price',
  179. type: 'sum',
  180. decimals: 2
  181. }, {
  182. name: 'amount',
  183. type: 'sum',
  184. decimals: 2
  185. }, {
  186. name: 'quantity',
  187. type: 'sum',
  188. decimals: 0
  189. }],
  190. column: [
  191. {
  192. label: '费用名称',
  193. slot: true,
  194. width: 160,
  195. prop: 'feeName'
  196. }, {
  197. label: '金额',
  198. cell: true,
  199. prop: 'amount'
  200. }, {
  201. label: '车号',
  202. prop: 'plateNo'
  203. }, {
  204. label: '备注',
  205. prop: 'remarks'
  206. }
  207. ]
  208. },
  209. collectionOption: {},
  210. collectionList:[],
  211. dialogVisible: false,
  212. loading: false,
  213. incidentalType: false,
  214. confirmStatus:0,
  215. activeName: '',
  216. page: {
  217. pageSize: 10,
  218. currentPage: 1,
  219. total: 0,
  220. pageSizes: [10, 50, 100, 200, 300]
  221. },
  222. roleName: localStorage.getItem("roleName").split(','),
  223. goodsList: [],
  224. goodsOptionCrud: {},
  225. optionList: {
  226. stripe: true,
  227. index: true,
  228. addBtn: false,
  229. delBtn: false,
  230. cellBtn: false,
  231. cancelBtn: false,
  232. editBtn: false,
  233. addRowBtn: false,
  234. refreshBtn: false,
  235. searchIcon: true,
  236. searchIndex: 2,
  237. searchSpan: 8,
  238. menu: true,
  239. searchMenuPosition: "right",
  240. searchMenuSpan: 6,
  241. align: 'center',
  242. height: "auto",
  243. showSummary: true,
  244. summaryText: "合计",
  245. sumColumnList: [
  246. {
  247. name: 'landWeight',
  248. type: 'sum',
  249. decimals: 2
  250. }, {
  251. name: 'landAmountC',
  252. type: 'sum',
  253. decimals: 2
  254. }, {
  255. name: 'ctnQuantity',
  256. type: 'count'
  257. }, {
  258. name: 'oneFeeC',
  259. type: 'sum',
  260. decimals: 2
  261. }, {
  262. name: 'twoFeeC',
  263. type: 'sum',
  264. decimals: 2
  265. }, {
  266. name: 'threeFeeC',
  267. type: 'sum',
  268. decimals: 2
  269. }, {
  270. name: 'fourFeeC',
  271. type: 'sum',
  272. decimals: 2
  273. }, {
  274. name: 'fiveFeeC',
  275. type: 'sum',
  276. decimals: 2
  277. }, {
  278. name: 'oneFeeD',
  279. type: 'sum',
  280. decimals: 2
  281. }, {
  282. name: 'twoFeeD',
  283. type: 'sum',
  284. decimals: 2
  285. }, {
  286. name: 'threeFeeD',
  287. type: 'sum',
  288. decimals: 2
  289. }, {
  290. name: 'fourFeeD',
  291. type: 'sum',
  292. decimals: 2
  293. }, {
  294. name: 'fiveFeeD',
  295. type: 'sum',
  296. decimals: 2
  297. }, {
  298. name: 'profit',
  299. type: 'sum',
  300. decimals: 2
  301. }],
  302. column: [{
  303. label: '客户名称',
  304. prop: 'corpShortName',
  305. overHidden: true,
  306. index: 1,
  307. width: 140,
  308. search: true,
  309. }, {
  310. label: '货运日期',
  311. prop: 'arrivalTime',
  312. overHidden: true,
  313. type: "date",
  314. searchRange: true,
  315. defaultTime: ['00:00:00', '23:59:59'],
  316. format: "yyyy-MM-dd HH:mm",
  317. valueFormat: "yyyy-MM-dd HH:mm:ss",
  318. index: 2,
  319. width: 150,
  320. search: true,
  321. }, {
  322. label: '业务员',
  323. prop: 'salesmanName',
  324. index: 3,
  325. width: 140,
  326. }, {
  327. label: '货运地点',
  328. index: 4,
  329. width: 160,
  330. search: true,
  331. prop: 'addressDetail'
  332. }
  333. // ,{
  334. // label: '订单号',
  335. // prop: 'orderNo',
  336. // overHidden: true,
  337. // index: 1,
  338. // width: 140,
  339. // search: true,
  340. // }
  341. , {
  342. label: '票据号',
  343. prop: 'receiptNo',
  344. overHidden: true,
  345. index: 5,
  346. width: 140,
  347. search: true,
  348. }, {
  349. label: '提单号',
  350. width: 100,
  351. index: 6,
  352. search: true,
  353. overHidden: true,
  354. prop: 'billNo'
  355. }, {
  356. label: '场站',
  357. prop: 'station',
  358. overHidden: true,
  359. index: 7,
  360. width: 140,
  361. search: true,
  362. }, {
  363. label: '箱型箱量',
  364. width: 100,
  365. index: 8,
  366. overHidden: true,
  367. prop: 'ctnDetail'
  368. }, {
  369. label: '车队',
  370. width: 200,
  371. search: true,
  372. index: 9,
  373. overHidden: true,
  374. prop: 'fleetId'
  375. }, {
  376. label: '车号',
  377. width: 150,
  378. prop: 'plateNo',
  379. overHidden: true,
  380. index: 10,
  381. search: true
  382. }, {
  383. label: '应收运费',
  384. overHidden: true,
  385. index: 11,
  386. prop: 'landAmountD'
  387. }, {
  388. label: '应收杂费',
  389. overHidden: true,
  390. index: 12,
  391. prop: 'extraAmountD'
  392. }, {
  393. label: '备注',
  394. overHidden: true,
  395. index: 13,
  396. prop: 'remarks'
  397. }, {
  398. label: '应收杂费明细',
  399. width: 100,
  400. index: 17,
  401. prop: 'extraAmountItemD'
  402. }]
  403. },
  404. totalData: {}
  405. }
  406. },
  407. async created() {
  408. this.goodsOptionCrud = await this.getColumnData(this.getColumnName(88.1), this.optionList);
  409. this.collectionOption = await this.getColumnData(this.getColumnName(88.2), this.collectionOptionBackup);
  410. this.roleName.forEach(item =>{
  411. if (item == '客户'){
  412. return this.goodsOptionCrud.menu = true
  413. }else if (item == '平台') {
  414. this.goodsOptionCrud.menu = false
  415. for (let item of this.goodsOptionCrud.column){
  416. if (item.prop === 'landAmountC') return
  417. }
  418. return this.goodsOptionCrud.column.push( {
  419. label: '应付运费',
  420. overHidden: true,
  421. index: 14,
  422. prop: 'landAmountC'
  423. }, {
  424. label: '应付杂费',
  425. overHidden: true,
  426. index: 15,
  427. prop: 'extraAmountC'
  428. }, {
  429. label: '利润',
  430. width: 100,
  431. precision: 2,
  432. index: 16,
  433. type: 'number',
  434. prop: 'profit'
  435. }, {
  436. label: '应付杂费明细',
  437. width: 100,
  438. index: 18,
  439. prop: 'extraAmountItemC'
  440. })
  441. }else {
  442. return this.goodsOptionCrud.menu = false;
  443. }
  444. })
  445. this.key++
  446. let i = 0;
  447. this.goodsOptionCrud.column.forEach(item => {
  448. if (item.search) i++
  449. })
  450. if (i % 3 !== 0) {
  451. const num = 3 - Number(i % 3)
  452. this.goodsOptionCrud.searchMenuSpan = num * 8;
  453. this.goodsOptionCrud.searchMenuPosition = "right";
  454. }
  455. },
  456. methods: {
  457. //导出
  458. outExport() {
  459. this.$confirm('是否导出数据明细?', '提示', {
  460. confirmButtonText: '确定',
  461. cancelButtonText: '取消',
  462. type: 'warning'
  463. }).then(() => {
  464. window.open(
  465. `/api/blade-land/order/acct-export?${this.website.tokenHeader}=${getToken()}`
  466. );
  467. }).catch(() => {
  468. this.$message({
  469. type: 'info',
  470. message: '已取消' //
  471. });
  472. })
  473. },
  474. //自定义列保存
  475. async saveColumnCollection() {
  476. /**
  477. * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
  478. * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
  479. * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
  480. */
  481. const inSave = await this.saveColumnData(this.getColumnName(88.2), this.collectionOption);
  482. if (inSave) {
  483. this.$message.success("保存成功");
  484. //关闭窗口
  485. this.$refs.collection.$refs.dialogColumn.columnBox = false;
  486. }
  487. },
  488. //自定义列重置
  489. async resetColumnCollection() {
  490. this.collectionOption = this.collectionOptionBackup;
  491. const inSave = await this.delColumnData(this.getColumnName(88.2), this.collectionOptionBackup);
  492. if (inSave) {
  493. this.$message.success("重置成功");
  494. this.$refs.collection.$refs.dialogColumn.columnBox = false;
  495. }
  496. },
  497. //自定义列保存
  498. async saveColumn() {
  499. /**
  500. * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
  501. * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
  502. * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
  503. */
  504. const inSave = await this.saveColumnData(this.getColumnName(88.1), this.goodsOptionCrud);
  505. if (inSave) {
  506. this.$message.success("保存成功");
  507. //关闭窗口
  508. this.$refs.crud.$refs.dialogColumn.columnBox = false;
  509. }
  510. },
  511. //自定义列重置
  512. async resetColumn() {
  513. this.goodsOptionCrud = this.optionList;
  514. const inSave = await this.delColumnData(this.getColumnName(88.1), this.optionList);
  515. if (inSave) {
  516. this.$message.success("重置成功");
  517. this.$refs.crud.$refs.dialogColumn.columnBox = false;
  518. }
  519. this.roleName.forEach(item =>{
  520. if (item == '客户'){
  521. return this.goodsOptionCrud.menu = true
  522. }else if (item == '平台') {
  523. this.goodsOptionCrud.menu = false
  524. for (let item of this.goodsOptionCrud.column){
  525. if (item.prop === 'landAmountC') return false
  526. }
  527. return this.goodsOptionCrud.column.push( {
  528. label: '应付运费',
  529. overHidden: true,
  530. index: 14,
  531. prop: 'landAmountC'
  532. }, {
  533. label: '应付杂费',
  534. overHidden: true,
  535. index: 15,
  536. prop: 'extraAmountC'
  537. }, {
  538. label: '利润',
  539. width: 100,
  540. precision: 2,
  541. index: 16,
  542. type: 'number',
  543. prop: 'profit'
  544. }, {
  545. label: '应付杂费明细',
  546. width: 100,
  547. index: 18,
  548. prop: 'extraAmountItemC'
  549. })
  550. }else {
  551. return this.goodsOptionCrud.menu = false
  552. }
  553. })
  554. },
  555. //行跳转
  556. celJump(row, index) {
  557. this.$router.push({
  558. path: '/landTransportation/dispatchingCars/index',
  559. query: {orderId: row.orderId},
  560. });
  561. },
  562. // 获得高度
  563. searchCriteriaSwitch(type) {
  564. if (type) {
  565. this.goodsOptionCrud.height = this.goodsOptionCrud.height - 90
  566. } else {
  567. this.goodsOptionCrud.height = this.goodsOptionCrud.height + 90
  568. }
  569. this.$refs.crud.getTableHeight()
  570. },
  571. //箱信息保存
  572. rowSave(row, index, done, loading) {
  573. done()
  574. },
  575. //箱信息选择车队
  576. getfleetIdT(data, row) {
  577. this.$set(row, 'fleetName', data.cname)
  578. },
  579. //搜索
  580. searchChange(params, done) {
  581. this.onLoad(this.page, params)
  582. done();
  583. },
  584. //切换订单状态
  585. handleClick(tab) {
  586. this.activeName = tab
  587. this.onLoad(this.page)
  588. },
  589. //查询
  590. onLoad(page, params) {
  591. motorcadeDriver(4).then(res => {
  592. this.totalData = res.data.data
  593. })
  594. let queryParams = {
  595. size: page.pageSize,
  596. current: page.currentPage,
  597. tag: '0',
  598. ...params
  599. }
  600. if (queryParams.arrivalTime) {
  601. queryParams.beginArrivalTime = params.arrivalTime[0]
  602. queryParams.endArrivalTime = params.arrivalTime[1]
  603. delete queryParams.arrivalTime
  604. }
  605. this.loading = true;
  606. standingBookCollection(queryParams).then(res => {
  607. this.goodsList = res.data.data.records
  608. this.page.total = res.data.data.total
  609. this.goodsOptionCrud.height = window.innerHeight - 245;
  610. }).finally(() => {
  611. this.loading = false;
  612. })
  613. },
  614. //箱信息保存
  615. rowSaveT(row, index, done, loading) {
  616. if (row.$cellEdit) {
  617. fleetDriverSave(row).then(res => {
  618. this.$message.success("保存成功");
  619. })
  620. }
  621. this.$refs.crud.rowCell(row, index)
  622. },
  623. //箱信息派车
  624. designate(row) {
  625. this.$confirm('是否确定受理', '提示', {
  626. confirmButtonText: '确定',
  627. cancelButtonText: '取消',
  628. type: 'warning'
  629. }).then(() => {
  630. acceptanceCollection(row).then(res => {
  631. this.$message.success('操作成功');
  632. this.onLoad(this.page)
  633. })
  634. }).catch(() => {
  635. this.$message({
  636. type: 'info',
  637. message: '已取消'
  638. });
  639. });
  640. },
  641. //取消派车
  642. cancelDesignate(row) {
  643. this.$confirm('是否确定取消受理', '提示', {
  644. confirmButtonText: '确定',
  645. cancelButtonText: '取消',
  646. type: 'warning'
  647. }).then(() => {
  648. acceptanceDispatchCollection({id: row.id}).then(res => {
  649. this.$message.success('操作成功');
  650. this.onLoad(this.page)
  651. })
  652. }).catch(() => {
  653. this.$message({
  654. type: 'info',
  655. message: '已取消'
  656. });
  657. });
  658. },
  659. confirmCompletion(row) {
  660. this.$confirm('是否确定完工', '提示', {
  661. confirmButtonText: '确定',
  662. cancelButtonText: '取消',
  663. type: 'warning'
  664. }).then(() => {
  665. confirmCompletion({id: row.id}).then(res => {
  666. this.$message.success('操作成功');
  667. this.onLoad(this.page)
  668. })
  669. }).catch(() => {
  670. this.$message({
  671. type: 'info',
  672. message: '已取消'
  673. });
  674. });
  675. },
  676. //打开附件
  677. annexOpen(row, index){
  678. this.enclosure = true
  679. this.formAnnex = row
  680. getFee({id:row.id}).then(res=>{
  681. this.orderList = res.data.data
  682. })
  683. },
  684. //保存
  685. saveAnnex() {
  686. saveAttached({
  687. id: this.form.id,
  688. fileList: this.orderList
  689. }).then(res => {
  690. this.annexOpen(this.form)
  691. })
  692. },
  693. ToBreak(val) {
  694. if (val) return val.replace(/\n/g, '<br/>')
  695. },
  696. incidentalConfirm(row){
  697. incidental({
  698. orderId:row.orderId,
  699. plateNo:row.plateNo,
  700. type:'1'
  701. }).then(res=>{
  702. this.collectionList = res.data.data
  703. this.incidentalType = true
  704. this.confirmStatus = row.confirmStatus
  705. })
  706. },
  707. incidentalClick(){
  708. let id = []
  709. this.collectionList.forEach(item => id.push(item.id))
  710. if (this.confirmStatus == 0){
  711. incidentalConfirm({ids:id.join(',')}).then(res=>{
  712. this.$message.success("确认成功");
  713. })
  714. }else {
  715. cancelConfirm({ids:id.join(',')}).then(res=>{
  716. this.$message.success("取消成功");
  717. })
  718. }
  719. this.incidentalType = false
  720. }
  721. }
  722. }
  723. </script>
  724. <style lang="scss" scoped>
  725. .home-container {
  726. padding: 0px 5px 5px 5px;
  727. box-sizing: border-box;
  728. height: 100%;
  729. ::v-deep .el-card__body {
  730. padding: 10px 15px;
  731. font-size: 14px;
  732. }
  733. &__card {
  734. width: 100%;
  735. height: 100%;
  736. }
  737. .title {
  738. display: flex;
  739. justify-content: space-between;
  740. .right {
  741. display: flex;
  742. align-items: center;
  743. &_but {
  744. margin-right: 10px;
  745. border: 1px solid #409eff;
  746. width: 80px;
  747. border-radius: 3px;
  748. display: flex;
  749. &_left {
  750. width: 40px;
  751. text-align: center;
  752. color: #409eff;
  753. cursor: pointer;
  754. }
  755. &_right {
  756. width: 40px;
  757. text-align: center;
  758. color: #409eff;
  759. cursor: pointer;
  760. }
  761. &_active {
  762. color: #fff;
  763. background-color: #409eff;
  764. }
  765. }
  766. }
  767. }
  768. }
  769. .content {
  770. display: flex;
  771. justify-content: center;
  772. align-items: center;
  773. height: 6vh;
  774. width: 80vw;
  775. .divider {
  776. display: block;
  777. height: 0px;
  778. width: 100%;
  779. border-top: 1px dashed #dcdfe6;
  780. }
  781. &-item {
  782. margin-left: 1vw;
  783. .card {
  784. width: 130px;
  785. display: flex;
  786. align-items: center;
  787. &-title {
  788. width: 40px;
  789. height: 40px;
  790. text-align: center;
  791. border-radius: 50%;
  792. font-size: 20px;
  793. font-weight: 600;
  794. display: flex;
  795. justify-content: center;
  796. align-items: center;
  797. span {
  798. line-height: 20px;
  799. }
  800. }
  801. &-title1 {
  802. color: #037fe1;
  803. background-color: rgba(3, 127, 225, 0.15);
  804. }
  805. &-title2 {
  806. color: #ffa21e;
  807. background-color: rgba(255, 162, 30, 0.15);
  808. }
  809. &-title3 {
  810. color: #fb5b60;
  811. background-color: rgba(251, 91, 96, 0.15);
  812. }
  813. &-title4 {
  814. color: #42bc6f;
  815. background-color: rgba(66, 188, 111, 0.15);
  816. }
  817. &-title5 {
  818. color: #14cde1;
  819. background-color: rgba(52, 149, 161, 0.15);
  820. }
  821. &-title6 {
  822. color: rgba(4, 66, 31, 0.63);
  823. background-color: rgba(66, 188, 111, 0.15);
  824. }
  825. &-content {
  826. padding-left: 1vw;
  827. display: flex;
  828. flex-direction: column;
  829. &-num {
  830. font-size: 20px;
  831. font-weight: 600;
  832. }
  833. &-text {
  834. color: #909399;
  835. }
  836. }
  837. }
  838. }
  839. }
  840. </style>