details.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  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>
  8. <!-- <StatusStep :activeCode="infoData.verifyStatus" /> -->
  9. <div class="stepsStatus">
  10. <el-steps :active="active" align-center>
  11. <el-step title="创建"></el-step>
  12. <el-step title="待审核"></el-step>
  13. <el-step :title="stepsTitle" :status="stepsStatus"></el-step>
  14. </el-steps>
  15. </div>
  16. <div class="content-detail">
  17. <header-title title="基本信息" size="16px"></header-title>
  18. <div class="mt20">
  19. <el-form label-width="120px">
  20. <el-col :span="8">
  21. <el-form-item label="入库单:">
  22. <span>{{ infoData.bizNo }}</span>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="8">
  26. <el-form-item label="入库物品类型:">
  27. <span>{{ handleAssetType(extInfo.assetType) }}</span>
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="8">
  31. <el-form-item label="入库场景:">
  32. <span>{{ getSceneState(infoData.bizType) }}</span>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="8">
  36. <el-form-item label="销售订单:">
  37. <span>{{ extInfo.documentSource }}</span>
  38. </el-form-item>
  39. </el-col>
  40. <el-col :span="8">
  41. <el-form-item label="权属部门:">
  42. <span>{{ extInfo.deptName }}</span>
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="8">
  46. <el-form-item label="入库登记人:">
  47. <span>{{ extInfo.createUserName }}</span>
  48. </el-form-item>
  49. </el-col>
  50. <!-- <el-col :span="8">
  51. <el-form-item label="创建时间:">
  52. <span>{{ infoData.createTime }}</span>
  53. </el-form-item>
  54. </el-col> -->
  55. <el-col :span="8">
  56. <el-form-item label="入库时间:">
  57. <span>{{ infoData.createTime }}</span>
  58. </el-form-item>
  59. </el-col>
  60. <el-col :span="8">
  61. <el-form-item label="状态:">
  62. <span>{{ getAuditStatus(infoData.verifyStatus) }}</span>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="8">
  66. <el-form-item label="审核人:">
  67. <span>{{ infoData.verifyName }}</span>
  68. </el-form-item>
  69. </el-col>
  70. <el-col :span="8" v-if="infoData.bizType == 2">
  71. <el-form-item label="客户:">
  72. <span>{{ infoData.clientName }}</span>
  73. </el-form-item>
  74. </el-col>
  75. <!-- <el-col :span="8" v-if="infoData.bizType == 2">
  76. <el-form-item label="客户代码:">
  77. <span>{{ infoData.clientCode }}</span>
  78. </el-form-item>
  79. </el-col> -->
  80. <el-col :span="8" v-if="infoData.bizType == 2">
  81. <el-form-item label="供应商:">
  82. <span>{{ extInfo.supplierName }}</span>
  83. </el-form-item>
  84. </el-col>
  85. <!-- <el-col :span="8" v-if="infoData.bizType != 2">
  86. <el-form-item label="供应商代码:">
  87. <span>{{ extInfo.supplierCode }}</span>
  88. </el-form-item>
  89. </el-col> -->
  90. <el-col :span="8">
  91. <el-form-item label="送货人:">
  92. <span>{{ infoData.fromUser }}</span>
  93. </el-form-item>
  94. </el-col>
  95. <el-col :span="8">
  96. <el-form-item label="送货人联系方式:">
  97. <span>{{ extInfo.deliveryPhone }}</span>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="8">
  101. <el-form-item label="附件:">
  102. <!-- <el-link
  103. type="primary"
  104. v-for="(item, index) in infoData.contentImage"
  105. @click="contentImageDownload(item)"
  106. :key="item.name"
  107. >{{ item.name }}</el-link
  108. > -->
  109. </el-form-item>
  110. </el-col>
  111. <el-col :span="24">
  112. <el-form-item label="备注:">
  113. <span>{{ infoData.remark }}</span>
  114. </el-form-item>
  115. </el-col>
  116. </el-form>
  117. </div>
  118. </div>
  119. <div class="content-detail mt20">
  120. <header-title title="入库信息" size="16px"></header-title>
  121. <div class="mt20">
  122. <div class="mt10">
  123. <el-table
  124. ref="multipleTable"
  125. :data="warehousingMaterialList"
  126. tooltip-effect="dark"
  127. :key="infoData.assetType"
  128. style="width: 100%"
  129. stripe
  130. :header-cell-style="rowClass"
  131. >
  132. <el-table-column label="序号" type="index" width="50">
  133. </el-table-column>
  134. <el-table-column
  135. label="物品编码"
  136. prop="categoryCode"
  137. align="center"
  138. width="150"
  139. ></el-table-column>
  140. <el-table-column
  141. label="名称"
  142. align="center"
  143. width="170"
  144. prop="name"
  145. ></el-table-column>
  146. <el-table-column
  147. v-for="(item, index) in tableHeader"
  148. :key="index"
  149. align="center"
  150. :label="item.label"
  151. width="150"
  152. :prop="item.prop"
  153. >
  154. <template slot-scope="{ row }">
  155. <template v-if="item.formatter">{{
  156. item.formatter(row)
  157. }}</template>
  158. <template v-else>{{ row[item.prop] }}</template>
  159. </template>
  160. </el-table-column>
  161. <el-table-column
  162. label="批次号"
  163. prop="batchNo"
  164. width="150"
  165. align="center"
  166. >
  167. </el-table-column>
  168. <el-table-column
  169. label="最小包装单元"
  170. align="center"
  171. prop="minPackingCount"
  172. width="100"
  173. >
  174. <!-- <el-table-column label="" prop="measurementUnit" width="100">
  175. <template slot-scope="{ row, $index }">
  176. {{ row.minPackingCount }}
  177. </template>
  178. </el-table-column> -->
  179. <el-table-column
  180. label=""
  181. prop="measurementUnit"
  182. align="center"
  183. >
  184. <template slot-scope="{ row, $index }">
  185. {{ row.minPackingCount }} {{ handleRowUnit(row) }} /{{
  186. row.packingUnit
  187. }}
  188. </template>
  189. </el-table-column>
  190. </el-table-column>
  191. <el-table-column
  192. label="包装数量"
  193. prop="packingCount"
  194. width="150"
  195. align="center"
  196. >
  197. <template slot-scope="{ row, $index }">
  198. {{ row.packingCount }} {{ row.packingUnit }}
  199. </template>
  200. </el-table-column>
  201. <el-table-column
  202. label="总数"
  203. prop="count"
  204. width="150"
  205. align="center"
  206. >
  207. <template slot-scope="{ row, $index }">
  208. {{ row.count }}/{{ handleRowUnit(row) }}
  209. </template>
  210. </el-table-column>
  211. <el-table-column
  212. label="单价"
  213. prop="univalence"
  214. width="150"
  215. align="center"
  216. v-if="extInfo.assetType == 1"
  217. >
  218. <template slot-scope="{ row }">
  219. <template>
  220. {{ row.price + '元' }}/{{ row.weightUnit }}
  221. <!-- {{ { yuan: '元', wanyuan: '万元' }[row.univalenceUnit] }} -->
  222. </template>
  223. </template>
  224. </el-table-column>
  225. <el-table-column
  226. label="单价"
  227. prop="univalence"
  228. width="150"
  229. align="center"
  230. v-if="extInfo.assetType == 4"
  231. >
  232. <template slot-scope="{ row }">
  233. <template>
  234. {{ row.price + '元' }}/{{ row.measuringUnit }}
  235. <!-- {{ { yuan: '元', wanyuan: '万元' }[row.univalenceUnit] }} -->
  236. </template>
  237. </template>
  238. </el-table-column>
  239. <el-table-column
  240. label="金额"
  241. align="center"
  242. prop="contentImage"
  243. :show-overflow-tooltip="true"
  244. >
  245. <template slot-scope="{ row, $index }">
  246. <!-- // calcSum(
  247. // row.outInNum,
  248. // row.univalenceUnit,
  249. // row.univalence,
  250. // row
  251. // ) -->
  252. {{ row.totalMoney }}
  253. </template>
  254. </el-table-column>
  255. <el-table-column
  256. label="数量"
  257. prop="batchNo"
  258. width="150"
  259. align="center"
  260. v-if="extInfo.assetType == 1"
  261. >
  262. <template slot-scope="{ row, $index }">
  263. <template> {{ row.packingCount }} </template>
  264. </template>
  265. </el-table-column>
  266. <el-table-column
  267. label="数量"
  268. prop="batchNo"
  269. width="150"
  270. align="center"
  271. v-if="extInfo.assetType == 4"
  272. >
  273. <template slot-scope="{ row, $index }">
  274. <template>
  275. {{ row.packingCount }}
  276. </template>
  277. </template>
  278. </el-table-column>
  279. <el-table-column
  280. label="计量单位"
  281. prop="batchNo"
  282. width="150"
  283. align="center"
  284. v-if="extInfo.assetType == 1"
  285. >
  286. <template slot-scope="{ row, $index }">
  287. <template>
  288. {{ row.minPackUnit }}
  289. </template>
  290. </template>
  291. </el-table-column>
  292. <el-table-column
  293. label="计量单位"
  294. prop="batchNo"
  295. width="150"
  296. align="center"
  297. v-if="extInfo.assetType == 4"
  298. >
  299. <template slot-scope="{ row, $index }">
  300. <template>
  301. {{ row.measuringUnit }}
  302. </template>
  303. </template>
  304. </el-table-column>
  305. <el-table-column
  306. label="重量"
  307. align="center"
  308. prop="contentImage"
  309. :show-overflow-tooltip="true"
  310. v-if="extInfo.assetType == 1"
  311. >
  312. <template slot-scope="{ row, $index }">
  313. <!-- {{ weightTotal(row.outInNum, row.minPackingCount) }} -->
  314. </template>
  315. </el-table-column>
  316. <el-table-column
  317. label="重量"
  318. align="center"
  319. prop="contentImage"
  320. :show-overflow-tooltip="true"
  321. v-if="extInfo.assetType == 4"
  322. >
  323. <template slot-scope="{ row, $index }">
  324. <!-- {{
  325. deviceWeight(
  326. row.roughWeight,
  327. row.minPackingCount * row.outInNum
  328. )
  329. }} -->
  330. </template>
  331. </el-table-column>
  332. <el-table-column
  333. label="重量单位"
  334. align="center"
  335. prop="contentImage"
  336. :show-overflow-tooltip="true"
  337. >
  338. <template slot-scope="{ row, $index }">
  339. {{ row.weightUnit }}
  340. </template>
  341. </el-table-column>
  342. <el-table-column
  343. label="货位"
  344. prop="warehouseName"
  345. :show-overflow-tooltip="true"
  346. >
  347. <template slot-scope="{ row, $index }">
  348. {{ row.position }}
  349. </template>
  350. </el-table-column>
  351. </el-table>
  352. </div>
  353. </div>
  354. </div>
  355. <div class="mt20">
  356. <!-- =={{ getDictValue('类型用途', infoData.assetType) }} -->
  357. <header-title
  358. :title="`${handleAssetType(extInfo.assetType)}明细`"
  359. size="16px"
  360. ></header-title>
  361. <el-table
  362. ref="multipleTable"
  363. :data="detailList"
  364. tooltip-effect="dark"
  365. :header-cell-style="rowClass"
  366. style="width: 100%"
  367. stripe
  368. >
  369. <el-table-column label="序号" type="index" width="50">
  370. </el-table-column>
  371. <el-table-column
  372. :label="`${handleAssetType(extInfo.assetType)}编码`"
  373. prop="code"
  374. ></el-table-column>
  375. <el-table-column
  376. v-if="infoData.bizType == 2 || infoData.bizType == 1"
  377. label="物料代号"
  378. prop="materielCode"
  379. >
  380. <template slot-scope="{ row }">
  381. {{ row.materielCode }}
  382. </template>
  383. </el-table-column>
  384. <el-table-column
  385. v-if="infoData.bizType == 2 || infoData.bizType == 1"
  386. label="客户代号"
  387. prop="clientCode"
  388. >
  389. <template slot-scope="{ row }">
  390. {{ row.clientCode }}
  391. </template>
  392. </el-table-column>
  393. <el-table-column
  394. v-if="infoData.bizType == 2 || infoData.bizType == 1"
  395. label="重量"
  396. prop="weight"
  397. >
  398. <template slot-scope="{ row }">
  399. {{ row.weight }}
  400. </template>
  401. </el-table-column>
  402. <el-table-column
  403. v-if="infoData.bizType == 2 || infoData.bizType == 1"
  404. label="重量单位"
  405. prop="weightUtil"
  406. >
  407. <template slot-scope="{ row }">
  408. {{ row.weightUtil }}
  409. </template>
  410. </el-table-column>
  411. <el-table-column
  412. v-if="infoData.bizType == 1"
  413. label="刻码"
  414. prop="engrave"
  415. >
  416. <template slot-scope="{ row }">
  417. {{ row.engrave }}
  418. </template>
  419. </el-table-column>
  420. <el-table-column
  421. label="包装编码"
  422. prop="packageNo"
  423. ></el-table-column>
  424. <el-table-column label="批次号" prop="batchNo"></el-table-column>
  425. <el-table-column
  426. label="物品编码"
  427. prop="categoryCode"
  428. ></el-table-column>
  429. <el-table-column label="名称" prop="name"></el-table-column>
  430. <el-table-column label="最小包装单元" prop="modelType">
  431. <!-- <el-table-column label="" prop="minPackingCount" width="100">
  432. <template slot-scope="{ row, $index }">
  433. {{ row.minPackingCount }}
  434. </template>
  435. </el-table-column> -->
  436. <el-table-column label="" prop="measurementUnit">
  437. <template slot-scope="{ row, $index }">
  438. {{ row.minPackingCount }}{{ handleRowUnit(row) }} /{{
  439. row.packingUnit
  440. }}
  441. </template>
  442. </el-table-column>
  443. </el-table-column>
  444. <el-table-column label="日期" prop="createTime" width="200">
  445. <template slot="header" slot-scope="scope">
  446. {{ dateTypes == 1 ? '采购日期' : '生产日期' }}
  447. </template>
  448. <template slot-scope="{ row }">
  449. {{ row.createTime }}
  450. </template>
  451. </el-table-column>
  452. </el-table>
  453. </div>
  454. </div>
  455. </el-card>
  456. </div>
  457. </template>
  458. <script>
  459. // import { getInfo } from '@/api/stockManagement';
  460. import PageHeader from '@/components/PageHeader';
  461. import StatusStep from '@/components/StatusStep/common.vue';
  462. // import { fileSystemDownload } from '@/utils';
  463. import outin from '@/api/warehouseManagement/outin';
  464. import { getTreeByPid } from '@/api/classifyManage';
  465. import {
  466. materialType,
  467. warehousingType,
  468. useDict,
  469. useDictLabel,
  470. inputStatus,
  471. emergencyState,
  472. sceneState
  473. } from '@/utils/dict/index';
  474. import { auditStatus } from '@/utils/dict/common';
  475. // import { batchBarPrint } from '@/api/ledgerAssets/booksList';
  476. import { tableHeader } from '../common';
  477. import { mapGetters, mapActions } from 'vuex';
  478. export default {
  479. components: { StatusStep, PageHeader },
  480. data() {
  481. return {
  482. dateTypes: 1,
  483. detailList: [],
  484. extInfo: {},
  485. codeList: [],
  486. auditStatus,
  487. infoData: {},
  488. warehousingMaterialList: [],
  489. tableData2: [],
  490. activeName: 'a',
  491. num: 1,
  492. openWindows: false, //打印弹窗
  493. barCodeConfig: [],
  494. stepsTitle: '已完成',
  495. stepsStatus: 'success',
  496. active: 0,
  497. // 条码类型枚举
  498. codeTypeObj: {
  499. 生产设备: 'EQUIPMENT',
  500. 舟皿: '',
  501. 周转车: 'TURNOVER_CAR',
  502. 模具: 'MODE',
  503. 库位: 'STORE_LOCAL',
  504. 混合料: 'MIX_MATER',
  505. 混炼料: 'MIXING_MATER',
  506. 破碎料: 'CRUSH_MATER',
  507. 货架: 'GOODS_SHELF',
  508. 返回料: 'RETURN_MATER',
  509. 返工料: 'REWORK_MATER',
  510. 备品备件: 'SPARE_PART',
  511. 车削料: 'LATHE_MATER',
  512. 风管料: 'WIND_PIPE_MATER',
  513. 地面料: 'GROUND_MATER'
  514. }
  515. };
  516. },
  517. watch: {
  518. 'infoData.verifyStatus': {
  519. immediate: true,
  520. handler(val) {
  521. if (val == 0) {
  522. this.active = 1;
  523. this.stepsTitle = '已完成';
  524. this.stepsStatus = 'success';
  525. } else if (val == 1) {
  526. this.active = 3;
  527. this.stepsTitle = '已完成';
  528. this.stepsStatus = 'success';
  529. } else if (val == 2) {
  530. this.active = 3;
  531. this.stepsTitle = '已驳回';
  532. this.stepsStatus = 'error';
  533. }
  534. }
  535. }
  536. },
  537. computed: {
  538. ...mapGetters(['getDictValue']),
  539. curDateType() {
  540. if (this.materialCodeReqList) {
  541. return this.materialCodeReqList[0].manufactureTime
  542. ? 'manufactureTime'
  543. : 'procurementTime';
  544. }
  545. },
  546. tableHeader() {
  547. return tableHeader(this.infoData.assetType);
  548. },
  549. emergencyState() {
  550. return useDict(emergencyState)(this.infoData.emergencyState);
  551. }
  552. // 条码信息
  553. // materialCodeReqList() {
  554. // return this.warehousingMaterialList.warehouseLedgerDetails;
  555. // }
  556. },
  557. created() {
  558. this.requestDict('类型用途');
  559. this._getInfo();
  560. },
  561. methods: {
  562. ...mapActions('dict', ['requestDict']),
  563. getAuditStatus: useDictLabel(auditStatus),
  564. getMaterialType: useDictLabel(materialType),
  565. getInputStatus: useDictLabel(inputStatus),
  566. getSceneState: useDictLabel(sceneState),
  567. handleRowUnit(row) {
  568. if (this.extInfo.assetType == 1) {
  569. console.log(row);
  570. return row.weightUnit;
  571. } else if (this.extInfo.assetType == 4) {
  572. return row.measuringUnit;
  573. } else {
  574. return row.measuringUnit;
  575. }
  576. },
  577. handleAssetType(r) {
  578. const code = this.codeList.find((item) => item.dictCode == r);
  579. return code?.dictValue;
  580. },
  581. rowClass({ row, column, rowIndex, columnIndex }) {
  582. if (rowIndex === 1) {
  583. return {
  584. display: 'none',
  585. background: '#EEEEEE',
  586. border: 'none'
  587. };
  588. }
  589. return { background: '#EEEEEE', border: 'none' };
  590. },
  591. async _getInfo() {
  592. const res = await outin.getById(this.$route.query.id);
  593. console.log('===', res);
  594. if (res) {
  595. this.infoData = res;
  596. this.extInfo = res.extInfo;
  597. this.warehousingMaterialList = res.outInDetailVOList;
  598. const arr = [];
  599. for (const key in this.warehousingMaterialList) {
  600. for (const k in this.warehousingMaterialList[key]
  601. .outInDetailRecordVOList) {
  602. arr.push({
  603. ...this.warehousingMaterialList[key].outInDetailRecordVOList[k],
  604. weightUnit: this.warehousingMaterialList[key].weightUnit
  605. });
  606. }
  607. }
  608. this.dateTypes = arr[0].dateType;
  609. this.detailList = arr;
  610. }
  611. const { data } = await getTreeByPid(0);
  612. this.codeList = data.map((item) => {
  613. return { dictCode: item.id, dictValue: item.name };
  614. });
  615. },
  616. calcSum(a, b, c, row) {
  617. if (
  618. (Number.isNaN(+a) && a !== '') ||
  619. (Number.isNaN(+b) && b !== '') ||
  620. (Number.isNaN(+c) && c !== '')
  621. ) {
  622. return '';
  623. }
  624. return a * b * c + { yuan: '元', wanyuan: '万元' }[row.univalenceUnit];
  625. },
  626. contentImageDownload(item) {
  627. fileSystemDownload(item);
  628. },
  629. selectActive(num) {
  630. this.num = num;
  631. }
  632. }
  633. };
  634. </script>
  635. <style lang="scss" scoped>
  636. ::v-deep .page-title {
  637. border-bottom: none;
  638. }
  639. ::v-deep .page-title-div {
  640. width: 100%;
  641. }
  642. .stepsStatus {
  643. width: 40%;
  644. margin: 0 auto;
  645. }
  646. .el-form-item {
  647. margin-bottom: 10px;
  648. }
  649. .p20 {
  650. padding: 20px;
  651. }
  652. .flex {
  653. display: flex;
  654. }
  655. .title {
  656. justify-content: space-between;
  657. border-bottom: 1px solid #ccc;
  658. padding-bottom: 5px;
  659. span {
  660. font-size: 16px;
  661. }
  662. .col {
  663. padding-left: 40px;
  664. font-size: 14px;
  665. color: #aaaaaa;
  666. }
  667. }
  668. .degree {
  669. margin-right: 10px;
  670. padding: 0px 15px;
  671. color: #fff;
  672. font-size: 13px;
  673. line-height: 23px;
  674. border-radius: 23px;
  675. display: flex;
  676. align-items: center;
  677. justify-content: space-between;
  678. span {
  679. width: 5px;
  680. height: 5px;
  681. border-radius: 100%;
  682. margin-right: 6px;
  683. background-color: #fff;
  684. }
  685. }
  686. .red {
  687. background-color: rgb(163, 0, 20);
  688. }
  689. .blue {
  690. background-color: #1989fa;
  691. }
  692. .createdInfo {
  693. justify-content: space-around;
  694. margin-top: 10px;
  695. font-size: 14px;
  696. .col {
  697. color: #6e6e6e;
  698. padding-right: 10px;
  699. }
  700. }
  701. .mt40 {
  702. margin-top: 40px;
  703. }
  704. .custSteps {
  705. margin-top: 20px;
  706. margin-left: 70px;
  707. .box {
  708. width: 158px;
  709. border: 1px solid #ccc;
  710. padding: 10px;
  711. flex-direction: row;
  712. flex-wrap: wrap;
  713. // justify-content: space-between;
  714. font-size: 12px;
  715. color: #9e9e9e;
  716. .x {
  717. width: 20px;
  718. height: 15px;
  719. margin-right: 5px;
  720. }
  721. .q {
  722. background-color: #d0e4d5;
  723. }
  724. .b {
  725. background-color: #1989fa;
  726. }
  727. .g {
  728. background-color: #157a2c;
  729. }
  730. .r {
  731. background-color: #a30014;
  732. }
  733. .a {
  734. align-items: center;
  735. margin-bottom: 10px;
  736. }
  737. .mr10 {
  738. margin-right: 10px;
  739. }
  740. .mb0 {
  741. margin-bottom: 0;
  742. }
  743. }
  744. .stepsInfo {
  745. // flex: 1;
  746. width: 483px;
  747. }
  748. }
  749. .mt20 {
  750. margin-top: 20px;
  751. }
  752. .content-detail {
  753. overflow: hidden;
  754. }
  755. .executor {
  756. font-size: 14px;
  757. .col {
  758. color: #6e6e6e;
  759. padding-right: 10px;
  760. }
  761. }
  762. .result {
  763. justify-content: space-around;
  764. }
  765. .mr20 {
  766. margin-right: 20px;
  767. }
  768. .details {
  769. font-size: 14px;
  770. margin-bottom: 10px;
  771. }
  772. .customSteps {
  773. margin-top: 40px;
  774. font-size: 14px;
  775. margin-left: 80px;
  776. .time {
  777. font-size: 12px;
  778. color: #6e6e6e;
  779. margin-right: 20px;
  780. position: relative;
  781. &::after {
  782. content: '';
  783. width: 1px;
  784. height: 100%;
  785. background-color: #157a2c;
  786. position: absolute;
  787. right: -26px;
  788. }
  789. }
  790. .flex:last-child {
  791. .time {
  792. &::after {
  793. display: none;
  794. }
  795. }
  796. }
  797. .round {
  798. margin-right: 20px;
  799. width: 10px;
  800. height: 10px;
  801. border-radius: 100%;
  802. background-color: #157a2c;
  803. position: relative;
  804. span {
  805. position: absolute;
  806. top: 50%;
  807. left: 50%;
  808. width: 4px;
  809. height: 4px;
  810. background-color: #fff;
  811. border-radius: 100%;
  812. transform: translate(-2px, -2px);
  813. }
  814. }
  815. .text {
  816. .info {
  817. margin-top: 10px;
  818. width: 955px;
  819. background-color: #f0f3f3;
  820. overflow: hidden;
  821. padding: 10px;
  822. margin-bottom: 10px;
  823. }
  824. }
  825. }
  826. .switch_left li {
  827. border-right: 1px solid rgba(222, 222, 222, 1);
  828. border-left: 1px solid rgba(222, 222, 222, 1);
  829. }
  830. </style>