details.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never">
  4. <div class="page-title">
  5. <PageHeader title="出库单详情"> </PageHeader>
  6. </div>
  7. <div class="stepsStatus">
  8. <el-steps :active="active" align-center>
  9. <el-step title="创建"></el-step>
  10. <el-step title="待审核"></el-step>
  11. <el-step :title="stepsTitle" :status="stepsStatus"></el-step>
  12. </el-steps>
  13. </div>
  14. <div>
  15. <div class="content-detail">
  16. <header-title title="基本信息" size="16px"></header-title>
  17. <div class="mt20">
  18. <el-form label-width="120px">
  19. <el-col :span="8">
  20. <el-form-item label="出库单号:">
  21. <span>{{ infoData.bizNo }}</span>
  22. </el-form-item>
  23. </el-col>
  24. <el-col :span="8">
  25. <el-form-item label="出库物品类型:">
  26. <span>{{ handleAssetType(extInfo.assetType) }}</span>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :span="8">
  30. <el-form-item label="出库场景:">
  31. <span>{{ getSceneState(infoData.bizType) }}</span>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="8">
  35. <el-form-item label="关联订单:">
  36. <span>{{ extInfo.documentSource }}</span>
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="8">
  40. <el-form-item label="客户名称:">
  41. <span>{{ infoData.clientName }}</span>
  42. </el-form-item>
  43. <!-- </el-col>
  44. <el-col :span="8" v-if="infoData.bizType == 3">
  45. <el-form-item label="客户联系人:">
  46. <span>{{ infoData.clientUser }}</span>
  47. </el-form-item> </el-col><el-col :span="8" v-if="infoData.bizType == 3">
  48. <el-form-item label="客户电话:">
  49. <span>{{ infoData.clientPhone }}</span>
  50. </el-form-item> -->
  51. </el-col>
  52. <el-col :span="8">
  53. <el-form-item
  54. :label="infoData.bizType == 4 ? '领料单:' : '来源单据:'"
  55. >
  56. <span>{{ infoData.sourceBizNo }}</span>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="8">
  60. <el-form-item label="领料人联系方式:">
  61. <span>{{ infoData.fromUserPhone }}</span>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="8">
  65. <el-form-item label="出库时间:">
  66. <span>{{ infoData.storageTime||infoData.createTime }}</span>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="8">
  70. <el-form-item label="出库登记人:">
  71. <span>{{ extInfo?.createUserName }}</span>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="权属部门:">
  76. <span>{{ extInfo?.deptName }}</span>
  77. </el-form-item>
  78. </el-col>
  79. <!-- <el-col :span="8">
  80. <el-form-item label="创建时间">
  81. <span>{{ infoData.createTime }}</span>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="8">
  85. <el-form-item label="出库时间">
  86. <span>{{ infoData.createTime }}</span>
  87. </el-form-item>
  88. </el-col> -->
  89. <el-col :span="8">
  90. <el-form-item label="状态:">
  91. <span>{{ stepsTitle }}</span>
  92. </el-form-item>
  93. </el-col>
  94. <el-col :span="8">
  95. <el-form-item label="领料人部门:">
  96. <span>{{ extInfo.verifyDeptName }}</span>
  97. </el-form-item>
  98. </el-col>
  99. <el-col :span="8">
  100. <el-form-item label="领料人:">
  101. <span>{{ infoData.fromUser }}</span>
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="16">
  105. <el-form-item label="备注:">
  106. <span>{{ infoData.remark }}</span>
  107. </el-form-item>
  108. </el-col>
  109. </el-form>
  110. </div>
  111. </div>
  112. <div class="content-detail mt20">
  113. <header-title title="产品信息" size="16px"></header-title>
  114. <el-table
  115. ref="productListTable"
  116. :data="productList"
  117. border
  118. tooltip-effect="dark"
  119. :max-height="300"
  120. :header-cell-style="rowClass"
  121. >
  122. <el-table-column label="序号" type="index" width="50">
  123. </el-table-column>
  124. <el-table-column
  125. label="编码"
  126. prop="categoryCode"
  127. align="center"
  128. :show-overflow-tooltip="true"
  129. ></el-table-column>
  130. <el-table-column
  131. label="名称"
  132. align="center"
  133. prop="categoryName"
  134. :show-overflow-tooltip="true"
  135. ></el-table-column>
  136. <el-table-column
  137. v-if="clientEnvironmentId == 4"
  138. label="级别"
  139. prop="level"
  140. align="center"
  141. >
  142. </el-table-column>
  143. <el-table-column
  144. label="型号"
  145. align="center"
  146. prop="categoryModel"
  147. :show-overflow-tooltip="true"
  148. ></el-table-column>
  149. <el-table-column
  150. label="规格"
  151. align="center"
  152. prop="specification"
  153. :show-overflow-tooltip="true"
  154. ></el-table-column>
  155. <el-table-column
  156. label="牌号"
  157. align="center"
  158. prop="brandNum"
  159. :show-overflow-tooltip="true"
  160. ></el-table-column>
  161. <el-table-column
  162. v-for="(item, index) in newColumns"
  163. :label="item.label"
  164. :align="item.align"
  165. :prop="item.prop"
  166. :show-overflow-tooltip="item.showOverflowTooltip"
  167. ></el-table-column>
  168. <el-table-column
  169. label="批次号"
  170. prop="batchNo"
  171. align="center"
  172. :show-overflow-tooltip="true"
  173. >
  174. </el-table-column>
  175. <el-table-column
  176. label="包装数量"
  177. prop="packingQuantity"
  178. align="center"
  179. >
  180. </el-table-column>
  181. <el-table-column
  182. label="包装单位"
  183. align="center"
  184. width="120"
  185. prop="packingUnit"
  186. >
  187. </el-table-column>
  188. <el-table-column
  189. label="计量数量"
  190. prop="measureQuantity"
  191. width="100"
  192. align="center"
  193. >
  194. </el-table-column>
  195. <el-table-column label="计量单位" prop="measureUnit" align="center">
  196. </el-table-column>
  197. <el-table-column
  198. label="重量"
  199. prop="weight"
  200. align="center"
  201. :show-overflow-tooltip="true"
  202. >
  203. </el-table-column>
  204. <el-table-column
  205. label="重量单位"
  206. prop="weightUnit"
  207. align="center"
  208. :show-overflow-tooltip="true"
  209. >
  210. </el-table-column>
  211. <el-table-column label="机型" prop="modelKey" width="200">
  212. </el-table-column>
  213. <el-table-column label="颜色" prop="colorKey" width="200">
  214. </el-table-column>
  215. <el-table-column
  216. label="单价"
  217. prop="price"
  218. align="center"
  219. v-if="isPrice == 1"
  220. >
  221. <template slot-scope="{ row }">
  222. <template>
  223. {{ row.price ? row.price : '-' + '元' }}/{{ row.measureUnit }}
  224. </template>
  225. </template>
  226. </el-table-column>
  227. <el-table-column
  228. v-if="isPrice == 1"
  229. label="金额"
  230. align="center"
  231. prop="contentImage"
  232. :show-overflow-tooltip="true"
  233. >
  234. <template slot-scope="{ row, $index }">
  235. {{ row.totalMoney ? row.totalMoney : 0 }}
  236. </template>
  237. </el-table-column>
  238. <el-table-column
  239. v-if="clientEnvironmentId == 4"
  240. label="采购原因"
  241. align="center"
  242. prop="purpose"
  243. :show-overflow-tooltip="true"
  244. ></el-table-column>
  245. <el-table-column
  246. label="仓库"
  247. prop="warehouseName"
  248. :show-overflow-tooltip="true"
  249. >
  250. </el-table-column>
  251. </el-table>
  252. </div>
  253. <div class="mt20">
  254. <header-title :title="`包装明细`" size="16px"></header-title>
  255. <el-table
  256. ref="showPackingListTable"
  257. :data="showPackingList"
  258. tooltip-effect="dark"
  259. :max-height="300"
  260. border
  261. :row-class-name="tableRowClassName"
  262. :header-cell-style="rowClass"
  263. v-el-table-infinite-scroll="pickingHandleScroll"
  264. >
  265. <el-table-column label="序号" type="index" width="50">
  266. </el-table-column>
  267. <el-table-column
  268. label="编码"
  269. prop="categoryCode"
  270. :show-overflow-tooltip="true"
  271. ></el-table-column>
  272. <el-table-column
  273. label="名称"
  274. prop="categoryName"
  275. :show-overflow-tooltip="true"
  276. ></el-table-column>
  277. <el-table-column
  278. label="批次号"
  279. prop="batchNo"
  280. :show-overflow-tooltip="true"
  281. ></el-table-column>
  282. <el-table-column
  283. label="发货条码"
  284. prop="barcodes"
  285. :show-overflow-tooltip="true"
  286. ></el-table-column>
  287. <el-table-column
  288. label="包装编码"
  289. prop="packageNo"
  290. :show-overflow-tooltip="true"
  291. ></el-table-column>
  292. <el-table-column
  293. label="包装数量"
  294. prop="packingQuantity"
  295. :show-overflow-tooltip="true"
  296. ></el-table-column>
  297. <el-table-column
  298. label="包装单位"
  299. prop="packingUnit"
  300. :show-overflow-tooltip="true"
  301. ></el-table-column>
  302. <el-table-column
  303. label="计量数量"
  304. prop="measureQuantity"
  305. :show-overflow-tooltip="true"
  306. ></el-table-column>
  307. <el-table-column
  308. label="计量单位"
  309. prop="measureUnit"
  310. :show-overflow-tooltip="true"
  311. ></el-table-column>
  312. <el-table-column
  313. label="物料代号"
  314. prop="materielDesignation"
  315. :show-overflow-tooltip="true"
  316. >
  317. </el-table-column>
  318. <el-table-column
  319. label="客户代号"
  320. prop="clientCode"
  321. :show-overflow-tooltip="true"
  322. >
  323. </el-table-column>
  324. <el-table-column
  325. label="刻码"
  326. prop="engrave"
  327. :show-overflow-tooltip="true"
  328. >
  329. </el-table-column>
  330. <el-table-column
  331. label="重量"
  332. prop="weight"
  333. :show-overflow-tooltip="true"
  334. >
  335. </el-table-column>
  336. <el-table-column
  337. label="重量单位"
  338. prop="weightUnit"
  339. :show-overflow-tooltip="true"
  340. >
  341. </el-table-column>
  342. <el-table-column label="机型" prop="modelKey" width="200">
  343. </el-table-column>
  344. <el-table-column label="颜色" prop="colorKey" width="200">
  345. </el-table-column>
  346. <el-table-column
  347. label="质检结果"
  348. prop="result"
  349. :show-overflow-tooltip="true"
  350. >
  351. <template slot-scope="{ row }">
  352. <span>{{ qualityResults[row.result] }}</span>
  353. </template>
  354. </el-table-column>
  355. <el-table-column
  356. label="质检状态"
  357. prop="status"
  358. :show-overflow-tooltip="true"
  359. >
  360. <template slot-scope="{ row }">
  361. <span>{{ qualityStatus[row.status] }}</span>
  362. </template>
  363. </el-table-column>
  364. <el-table-column
  365. label="生产日期"
  366. prop="productionDate"
  367. :show-overflow-tooltip="true"
  368. >
  369. </el-table-column>
  370. <el-table-column
  371. label="采购日期"
  372. prop="purchaseDate"
  373. :show-overflow-tooltip="true"
  374. >
  375. </el-table-column>
  376. </el-table>
  377. </div>
  378. <div class="mt20">
  379. <header-title :title="`物料明细`" size="16px"> </header-title>
  380. <el-table
  381. ref="multipleTable"
  382. :data="showMaterialList"
  383. tooltip-effect="dark"
  384. :max-height="300"
  385. :row-class-name="tableRowClassName"
  386. :header-cell-style="rowClass"
  387. border
  388. style="width: 100%"
  389. stripe
  390. height="300px"
  391. v-el-table-infinite-scroll="materielHandleScroll"
  392. >
  393. <el-table-column label="序号" type="index" width="50">
  394. </el-table-column>
  395. <el-table-column
  396. label="编码"
  397. prop="categoryCode"
  398. :show-overflow-tooltip="true"
  399. ></el-table-column>
  400. <el-table-column
  401. label="名称"
  402. prop="categoryName"
  403. :show-overflow-tooltip="true"
  404. ></el-table-column>
  405. <el-table-column label="批次号" prop="batchNo"></el-table-column>
  406. <el-table-column
  407. label="物料编码"
  408. prop="materialCode"
  409. :show-overflow-tooltip="true"
  410. ></el-table-column>
  411. <el-table-column
  412. label="发货条码"
  413. prop="barcodes"
  414. :show-overflow-tooltip="true"
  415. ></el-table-column>
  416. <el-table-column
  417. label="计量数量"
  418. prop="measureQuantity"
  419. ></el-table-column>
  420. <el-table-column
  421. label="计量单位"
  422. prop="measureUnit"
  423. ></el-table-column>
  424. <el-table-column label="物料代号" prop="materielDesignation">
  425. </el-table-column>
  426. <el-table-column label="客户代号" prop="clientCode">
  427. </el-table-column>
  428. <el-table-column label="刻码" prop="engrave"> </el-table-column>
  429. <el-table-column width="100" label="重量" prop="weight">
  430. </el-table-column>
  431. <el-table-column label="重量单位" prop="weightUnit">
  432. </el-table-column>
  433. <el-table-column label="质检结果" prop="result" width="120">
  434. <template slot-scope="{ row }">
  435. <span>{{ qualityResults[row.result] }}</span>
  436. </template>
  437. </el-table-column>
  438. <el-table-column label="质检状态" prop="status" width="120">
  439. <template slot-scope="{ row }">
  440. <span>{{ qualityStatus[row.status] }}</span>
  441. </template>
  442. </el-table-column>
  443. </el-table>
  444. </div>
  445. </div>
  446. </el-card>
  447. </div>
  448. </template>
  449. <script>
  450. import elTableInfiniteScroll from 'el-table-infinite-scroll';
  451. import { getFile } from '@/api/system/file/index.js';
  452. import PageHeader from '@/components/PageHeader';
  453. import storageApi from '@/api/warehouseManagement';
  454. import { allCategoryLevel } from '@/api/classifyManage';
  455. import {
  456. useDictLabel,
  457. outputSceneState,
  458. qualityStatus,
  459. qualityResults
  460. } from '@/utils/dict/index';
  461. import { mapGetters, mapActions } from 'vuex';
  462. import { parameterGetByCode } from '@/api/sys/index.js';
  463. export default {
  464. components: { PageHeader },
  465. directives: {
  466. 'el-table-infinite-scroll': elTableInfiniteScroll
  467. },
  468. data() {
  469. return {
  470. newColumns: [], // 动态表头
  471. // qualityStatus: {
  472. // 0: '未质检',
  473. // 1: '已质检'
  474. // }, // 质检状态 0未检 1已检
  475. // qualityResults: {
  476. // 1: '合格',
  477. // 2: '不合格'
  478. // }, // 质检结果 1合格 2不合格
  479. qualityStatus,
  480. qualityResults,
  481. productList: [], // 产品列表
  482. showPackingList: [], // 展示的包装列表
  483. packingList: [], // 包装列表
  484. showMaterialList: [], // 展示物料列表
  485. materialList: [], // 物料列表
  486. extInfo: {}, // 扩展信息
  487. pageSize: 20,
  488. pickingPageNum: 1,
  489. materielPageNum: 1,
  490. codeList: [],
  491. infoData: {},
  492. stepsTitle: '已完成',
  493. stepsStatus: 'success',
  494. active: 0,
  495. isPrice: 1
  496. };
  497. },
  498. watch: {
  499. 'infoData.verifyStatus': {
  500. immediate: true,
  501. handler(val) {
  502. if (val == 0) {
  503. this.active = 1;
  504. this.stepsTitle = '未审核';
  505. this.stepsStatus = 'wait';
  506. } else if (val == 1) {
  507. this.active = 2;
  508. this.stepsTitle = '审核中';
  509. this.stepsStatus = 'process';
  510. } else if (val == 2) {
  511. this.active = 2;
  512. this.stepsTitle = '审核通过';
  513. this.stepsStatus = 'success';
  514. } else if (val == 3) {
  515. this.active = 2;
  516. this.stepsTitle = '驳回';
  517. this.stepsStatus = 'error';
  518. }
  519. }
  520. },
  521. packingList: {
  522. handler(newVal) {
  523. console.log('包装列表', newVal);
  524. console.log('当前包装列表加载页数', this.pickingPageNum);
  525. this.showPackingList = newVal.slice(
  526. 0,
  527. this.pageSize * (this.pickingPageNum > 0 ? this.pickingPageNum : 1)
  528. );
  529. },
  530. deep: true
  531. },
  532. materialList: {
  533. handler(newVal) {
  534. console.log('物料列表', newVal);
  535. console.log('当前物料列表加载页数', this.materielPageNum);
  536. this.showMaterialList = newVal.slice(
  537. 0,
  538. this.pageSize *
  539. (this.materielPageNum > 0 ? this.materielPageNum : 1)
  540. );
  541. },
  542. deep: true
  543. }
  544. },
  545. computed: {
  546. ...mapGetters(['getDictValue']),
  547. clientEnvironmentId() {
  548. return this.$store.state.user.info.clientEnvironmentId;
  549. }
  550. },
  551. created() {
  552. //仓库出入库是否显示金额(0:不显示 1:显示)
  553. parameterGetByCode({
  554. code: 'wms_price'
  555. }).then((res) => {
  556. this.isPrice = res.value;
  557. });
  558. this.getFieldModel();
  559. this.requestDict('类型用途');
  560. this.getAllCategoryType();
  561. this._getInfo();
  562. },
  563. methods: {
  564. // 获取动态表头
  565. getFieldModel() {
  566. storageApi.fieldModel({ fieldModel: 't_main_category' }).then((res) => {
  567. let newRes = res.map((m) => {
  568. return {
  569. prop: 'extField.' + m.prop,
  570. label: m.label,
  571. align: 'center',
  572. showOverflowTooltip: true
  573. };
  574. });
  575. this.newColumns = [...newRes];
  576. });
  577. },
  578. pickingHandleScroll() {
  579. console.log('---------pickingHandleScroll------------');
  580. if (this.showPackingList.length < this.packingList.length) {
  581. if (this.packingList.length > this.pageSize) {
  582. this.pickingPageNum += 1;
  583. }
  584. this.pickingFetchData();
  585. }
  586. },
  587. pickingFetchData() {
  588. const start = (this.pickingPageNum - 1) * this.pageSize;
  589. const end = start + this.pageSize;
  590. this.showPackingList = this.showPackingList.concat(
  591. this.packingList.slice(start, end)
  592. );
  593. },
  594. materielHandleScroll() {
  595. console.log('---------materielHandleScroll------------');
  596. if (this.showMaterialList.length < this.materialList.length) {
  597. if (this.materialList.length > this.pageSize) {
  598. this.materielPageNum += 1;
  599. }
  600. this.materielFetchData();
  601. }
  602. },
  603. materielFetchData() {
  604. const start = (this.materielPageNum - 1) * this.pageSize;
  605. const end = start + this.pageSize;
  606. this.showMaterialList = this.showMaterialList.concat(
  607. this.materialList.slice(start, end)
  608. );
  609. console.log(this.showMaterialList);
  610. },
  611. ...mapActions('dict', ['requestDict']),
  612. getSceneState: useDictLabel(outputSceneState),
  613. handleAssetType(r) {
  614. const code = this.codeList.find((item) => item.dictCode == r);
  615. return code?.dictValue;
  616. },
  617. tableRowClassName({ row, rowIndex }) {
  618. console.log(row);
  619. if (row.result == 2) {
  620. return 'warning-row';
  621. } else {
  622. return '';
  623. }
  624. },
  625. rowClass({ row, column, rowIndex, columnIndex }) {
  626. if (rowIndex === 1) {
  627. return {
  628. display: 'none',
  629. background: '#EEEEEE'
  630. };
  631. }
  632. return { background: '#0000' };
  633. },
  634. async getAllCategoryType() {
  635. const { data } = await allCategoryLevel();
  636. this.codeList = data.map((item) => {
  637. return { dictCode: item.id, dictValue: item.name };
  638. });
  639. },
  640. getDeptName() {
  641. if (this.extInfo.createUserId) {
  642. storageApi.getGroupById(this.extInfo.createUserId).then((res) => {
  643. this.extInfo.deptName = res?.groupName;
  644. });
  645. }
  646. },
  647. async _getInfo() {
  648. let res = null;
  649. if (this.$route.query.id) {
  650. res = await storageApi.getInboundDetailsById(this.$route.query.id);
  651. } else {
  652. res = await storageApi.getInboundDetailsByBizNo(
  653. this.$route.query.bizNo
  654. );
  655. }
  656. this.infoData = res;
  657. this.extInfo = res.extInfo;
  658. this.getDeptName();
  659. this.productList = res.outInDetailList.map(
  660. (productItem, productIndex) => {
  661. return {
  662. ...productItem,
  663. outInDetailRecordRequestList:
  664. productItem.outInDetailRecordRequestList.map((packingItem) => {
  665. return {
  666. ...packingItem,
  667. categoryName: productItem.categoryName,
  668. categoryCode: productItem.categoryCode,
  669. materialDetailList: packingItem.materialDetailList.map(
  670. (materialItem) => {
  671. return {
  672. ...materialItem,
  673. categoryName: productItem.categoryName,
  674. categoryCode: productItem.categoryCode
  675. };
  676. }
  677. )
  678. };
  679. })
  680. };
  681. }
  682. );
  683. // 获取包装维度数据
  684. const arr = [];
  685. for (const key in this.productList) {
  686. for (const k in this.productList[key].outInDetailRecordRequestList) {
  687. arr.push({
  688. ...this.productList[key].outInDetailRecordRequestList[k]
  689. });
  690. }
  691. }
  692. this.packingList = arr;
  693. // 获取物料维度数据
  694. let iArr = [];
  695. arr.forEach((item) => {
  696. item.materialDetailList.forEach((ele) => {
  697. iArr.push({ ...ele });
  698. });
  699. });
  700. this.materialList = iArr;
  701. console.log(this.packingList);
  702. console.log(this.materialList);
  703. this.pickingFetchData();
  704. this.materielFetchData();
  705. },
  706. download(row) {
  707. if (row.storePath) {
  708. getFile({ objectName: row.storePath }, row.name);
  709. }
  710. }
  711. }
  712. };
  713. </script>
  714. <style lang="scss" scoped>
  715. .stepsStatus {
  716. width: 40%;
  717. margin: 0 auto;
  718. }
  719. .p20 {
  720. padding: 20px;
  721. }
  722. .flex {
  723. display: flex;
  724. }
  725. .title {
  726. justify-content: space-between;
  727. border-bottom: 1px solid #ccc;
  728. padding-bottom: 5px;
  729. span {
  730. font-size: 16px;
  731. }
  732. .col {
  733. padding-left: 40px;
  734. font-size: 14px;
  735. color: #aaaaaa;
  736. }
  737. }
  738. .degree {
  739. margin-right: 10px;
  740. padding: 0px 15px;
  741. color: #fff;
  742. font-size: 13px;
  743. line-height: 23px;
  744. border-radius: 23px;
  745. display: flex;
  746. align-items: center;
  747. justify-content: space-between;
  748. span {
  749. width: 5px;
  750. height: 5px;
  751. border-radius: 100%;
  752. margin-right: 6px;
  753. background-color: #fff;
  754. }
  755. }
  756. .red {
  757. background-color: rgb(163, 0, 20);
  758. }
  759. .blue {
  760. background-color: #1989fa;
  761. }
  762. .createdInfo {
  763. justify-content: space-around;
  764. margin-top: 10px;
  765. font-size: 14px;
  766. .col {
  767. color: #6e6e6e;
  768. padding-right: 10px;
  769. }
  770. }
  771. .mt40 {
  772. margin-top: 40px;
  773. }
  774. .custSteps {
  775. margin-top: 20px;
  776. margin-left: 70px;
  777. .box {
  778. width: 158px;
  779. border: 1px solid #ccc;
  780. padding: 10px;
  781. flex-direction: row;
  782. flex-wrap: wrap;
  783. // justify-content: space-between;
  784. font-size: 12px;
  785. color: #9e9e9e;
  786. .x {
  787. width: 20px;
  788. height: 15px;
  789. margin-right: 5px;
  790. }
  791. .q {
  792. background-color: #d0e4d5;
  793. }
  794. .b {
  795. background-color: #1989fa;
  796. }
  797. .g {
  798. background-color: #157a2c;
  799. }
  800. .r {
  801. background-color: #a30014;
  802. }
  803. .a {
  804. align-items: center;
  805. margin-bottom: 10px;
  806. }
  807. .mr10 {
  808. margin-right: 10px;
  809. }
  810. .mb0 {
  811. margin-bottom: 0;
  812. }
  813. }
  814. .stepsInfo {
  815. // flex: 1;
  816. width: 483px;
  817. }
  818. }
  819. .mt20 {
  820. margin-top: 20px;
  821. }
  822. .content-detail {
  823. overflow: hidden;
  824. }
  825. .executor {
  826. font-size: 14px;
  827. .col {
  828. color: #6e6e6e;
  829. padding-right: 10px;
  830. }
  831. }
  832. .result {
  833. justify-content: space-around;
  834. }
  835. .mr20 {
  836. margin-right: 20px;
  837. }
  838. .details {
  839. font-size: 14px;
  840. margin-bottom: 10px;
  841. }
  842. .customSteps {
  843. margin-top: 40px;
  844. font-size: 14px;
  845. margin-left: 80px;
  846. .time {
  847. font-size: 12px;
  848. color: #6e6e6e;
  849. margin-right: 20px;
  850. position: relative;
  851. &::after {
  852. content: '';
  853. width: 1px;
  854. height: 100%;
  855. background-color: #157a2c;
  856. position: absolute;
  857. right: -26px;
  858. }
  859. }
  860. .flex:last-child {
  861. .time {
  862. &::after {
  863. display: none;
  864. }
  865. }
  866. }
  867. .round {
  868. margin-right: 20px;
  869. width: 10px;
  870. height: 10px;
  871. border-radius: 100%;
  872. background-color: #157a2c;
  873. position: relative;
  874. span {
  875. position: absolute;
  876. top: 50%;
  877. left: 50%;
  878. width: 4px;
  879. height: 4px;
  880. background-color: #fff;
  881. border-radius: 100%;
  882. transform: translate(-2px, -2px);
  883. }
  884. }
  885. .text {
  886. .info {
  887. margin-top: 10px;
  888. width: 955px;
  889. background-color: #f0f3f3;
  890. overflow: hidden;
  891. padding: 10px;
  892. margin-bottom: 10px;
  893. }
  894. }
  895. }
  896. </style>