details.vue 26 KB

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