details.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never">
  4. <div class="page-title">
  5. <!-- <PageHeader title="出库单详情"> </PageHeader> -->
  6. </div>
  7. <!-- <StatusStep :activeCode="infoData.verifyStatus" /> -->
  8. <div class="stepsStatus">
  9. <el-steps :active="active" align-center>
  10. <el-step title="创建"></el-step>
  11. <el-step title="待审核"></el-step>
  12. <el-step :title="stepsTitle" :status="stepsStatus"></el-step>
  13. </el-steps>
  14. </div>
  15. <div>
  16. <div class="content-detail">
  17. <header-title title="基本信息" size="16px"></header-title>
  18. <div class="mt20">
  19. <el-form label-width="110px">
  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>{{
  28. infoData.bizType == 3
  29. ? '物品'
  30. : getDictValue('类型用途', infoData.assetType)
  31. }}</span>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="8">
  35. <el-form-item label="出库场景">
  36. <span>{{ getSceneState(infoData.bizType) }}</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.sourceBizNo }}</span>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="8">
  60. <el-form-item label="领料人">
  61. <span>{{ infoData.fromUser }}</span>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="8">
  65. <el-form-item label="领料人联系方式">
  66. <span>{{ infoData.fromUserPhone }}</span>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="8">
  70. <el-form-item label="出库登记人">
  71. <span>{{ infoData.extInfo?.createUserName }}</span>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="权属部门">
  76. <span>{{ infoData.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>{{ infoData.verifyDeptName }}</span>
  97. </el-form-item>
  98. </el-col>
  99. <el-col :span="8">
  100. <el-form-item label="审核人">
  101. <span>{{ infoData.verifyName }}</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. <div class="mt20">
  115. <div class="mt10">
  116. <el-table
  117. ref="multipleTable"
  118. :data="warehousingMaterialList"
  119. tooltip-effect="dark"
  120. style="width: 100%"
  121. stripe
  122. :header-cell-style="{ background: '#EEEEEE', border: 'none' }"
  123. >
  124. <el-table-column label="序号" type="index" width="50">
  125. </el-table-column>
  126. <el-table-column
  127. label="编码"
  128. prop="categoryCode"
  129. ></el-table-column>
  130. <el-table-column label="名称" prop="name"></el-table-column>
  131. <el-table-column
  132. v-for="(item, index) in tableHeader"
  133. :key="index"
  134. align="center"
  135. :label="item.label"
  136. :prop="item.prop"
  137. >
  138. <template slot-scope="{ row }">
  139. <template v-if="item.formatter">{{
  140. item.formatter(row)
  141. }}</template>
  142. <template v-else>{{ row[item.prop] }}</template>
  143. </template>
  144. </el-table-column>
  145. <el-table-column
  146. label="批次号"
  147. prop="batchNo"
  148. ></el-table-column>
  149. <el-table-column label="最小包装单元" width="120">
  150. <template slot-scope="{ row }">
  151. {{ row.minPackingCount }}{{ row.measuringUnit }}/{{
  152. row.packingUnit
  153. }}
  154. </template>
  155. </el-table-column>
  156. <el-table-column label="包装数量" prop="availableCountBase">
  157. <template slot-scope="{ row }">
  158. {{ row.packingCount }}{{ row.packingUnit }}
  159. </template>
  160. </el-table-column>
  161. <el-table-column
  162. label="计量数量"
  163. prop="count"
  164. ></el-table-column>
  165. <el-table-column
  166. label="计量单位"
  167. prop="measuringUnit"
  168. ></el-table-column>
  169. <el-table-column label="重量" prop="weight"></el-table-column>
  170. <el-table-column
  171. label="重量单位"
  172. prop="weightUnit"
  173. ></el-table-column>
  174. <el-table-column label="单价">
  175. <template slot-scope="{ row }">
  176. {{ row.price ? row.price : '-' }}元/{{ row.weightUnit }}
  177. </template>
  178. </el-table-column>
  179. <el-table-column
  180. label="金额"
  181. prop="totalMoney"
  182. ></el-table-column>
  183. <el-table-column
  184. label="领料部门"
  185. prop="position"
  186. ></el-table-column>
  187. </el-table>
  188. </div>
  189. </div>
  190. </div>
  191. <!-- ${
  192. infoData.bizType == 3
  193. ? '物品'
  194. : getDictValue('类型用途', infoData.assetType)
  195. }明细 -->
  196. <div class="mt20">
  197. <header-title :title="`出库包装明细`" size="16px"></header-title>
  198. <el-table
  199. ref="multipleTable"
  200. :data="materialCodeReqList"
  201. tooltip-effect="dark"
  202. style="width: 100%"
  203. stripe
  204. :header-cell-style="{ background: '#EEEEEE', border: 'none' }"
  205. >
  206. <el-table-column label="序号" type="index" width="50">
  207. </el-table-column>
  208. <!-- ${
  209. infoData.bizType == 3
  210. ? '物品'
  211. : getDictValue('类型用途', infoData.assetType)
  212. } -->
  213. <el-table-column
  214. :label="`编码`"
  215. prop="categoryCode"
  216. ></el-table-column>
  217. <el-table-column :label="`名称`" prop="name"></el-table-column>
  218. <el-table-column label="批次号" prop="batchNo"></el-table-column>
  219. <el-table-column
  220. label="包装编码"
  221. prop="code"
  222. width="80"
  223. ></el-table-column>
  224. <el-table-column label="包装数量" prop="packingCount" width="80">
  225. <template slot-scope="{ row }">
  226. {{ row.packingCount == 0 ? '0' : row.packingCount }}
  227. </template>
  228. </el-table-column>
  229. <el-table-column
  230. label="包装单位"
  231. prop="packingUnit"
  232. ></el-table-column>
  233. <el-table-column
  234. label="计量数量"
  235. prop="totalCount"
  236. ></el-table-column>
  237. <el-table-column
  238. label="计量单位"
  239. prop="measuringUnit"
  240. ></el-table-column>
  241. <!-- <el-table-column label="领料部门" prop=""></el-table-column> -->
  242. <el-table-column
  243. v-if="infoData.bizType == 2 || infoData.bizType == 1"
  244. label="物料代号"
  245. prop="materielCode"
  246. >
  247. <template slot-scope="{ row }">
  248. {{ row.materielCode }}
  249. </template>
  250. </el-table-column>
  251. <el-table-column
  252. v-if="infoData.bizType == 2 || infoData.bizType == 1"
  253. label="客户代号"
  254. prop="clientCode"
  255. >
  256. <template slot-scope="{ row }">
  257. {{ row.clientCode }}
  258. </template>
  259. </el-table-column>
  260. <!-- v-if="infoData.bizType == 1" -->
  261. <el-table-column label="刻码" prop="engrave">
  262. <template slot-scope="{ row }">
  263. {{ row.engrave }}
  264. </template>
  265. </el-table-column>
  266. <el-table-column label="重量" prop="weight">
  267. <template slot-scope="{ row }">
  268. {{ row.weight }}
  269. </template>
  270. </el-table-column>
  271. <el-table-column label="重量单位" prop="weightUtil">
  272. <template slot-scope="{ row }">
  273. {{ row.weightUtil }}
  274. </template>
  275. </el-table-column>
  276. <el-table-column label="日期" prop="createTime" width="200">
  277. <template slot="header" slot-scope="scope">
  278. <!-- {{ dateTypes != 1 ? '采购日期' : '生产日期' }} -->
  279. 采购日期
  280. </template>
  281. <template slot-scope="{ row }">
  282. {{ row.createTime }}
  283. </template>
  284. </el-table-column>
  285. <el-table-column label="领料部门" prop="">
  286. <template slot-scope="{ row }">
  287. {{ row.position }}
  288. </template>
  289. </el-table-column>
  290. <!-- <el-table-column label="转消耗" prop="">
  291. <template slot-scope="{ row }">
  292. <el-checkbox
  293. disabled
  294. v-model="row.isTransferAsset"
  295. ></el-checkbox>
  296. </template>
  297. </el-table-column> -->
  298. </el-table>
  299. </div>
  300. <div class="mt20">
  301. <header-title :title="`出库物料明细`" size="16px"></header-title>
  302. <el-table
  303. ref="multipleTable1"
  304. :data="metaList"
  305. tooltip-effect="dark"
  306. style="width: 100%"
  307. stripe
  308. :header-cell-style="{ background: '#EEEEEE', border: 'none' }"
  309. >
  310. <el-table-column label="序号" type="index" width="50">
  311. </el-table-column>
  312. <el-table-column label="编码" prop="assetCode"> </el-table-column>
  313. <el-table-column label="名称" prop="assetName"> </el-table-column>
  314. <el-table-column label="批次号" prop="batchNo"> </el-table-column>
  315. <el-table-column label="物料编码" prop="no"> </el-table-column>
  316. <el-table-column label="计量数量" prop="">
  317. <template slot-scope="{ row }">1</template>
  318. </el-table-column>
  319. <el-table-column label="计量单位" prop="measuringUnit">
  320. </el-table-column>
  321. <el-table-column label="物料代号" prop="meterielCode">
  322. </el-table-column>
  323. <el-table-column label="客户代号" prop="clientCode">
  324. </el-table-column>
  325. <el-table-column label="刻码" prop="engrave"> </el-table-column>
  326. <el-table-column label="重量" prop="weight"> </el-table-column>
  327. <el-table-column label="重量单位" prop="weightUnit">
  328. </el-table-column>
  329. </el-table>
  330. </div>
  331. </div>
  332. </el-card>
  333. </div>
  334. </template>
  335. <script>
  336. import StatusStep from '@/components/StatusStep/common.vue';
  337. // import { getInfo } from '@/api/stockManagement/outgoingManagement' '@/components/PageHeader'
  338. // import PageHeader from '@/components/PageHeader';
  339. import { tableHeader } from '../common';
  340. import { mapGetters, mapActions } from 'vuex';
  341. import outin from '@/api/warehouseManagement/outin';
  342. import warehouseDefinition from '@/api/warehouseManagement/warehouseDefinition';
  343. import {
  344. materialType,
  345. warehousingType,
  346. useDict,
  347. useDictLabel,
  348. inputStatus,
  349. outputSceneState,
  350. auditStatus
  351. } from '@/utils/dict/index';
  352. import { getUser } from '@/api/system/user';
  353. export default {
  354. components: { StatusStep },
  355. data() {
  356. return {
  357. metaList: [],
  358. infoData: {},
  359. warehousingMaterialList: [],
  360. materialCodeReqList: [],
  361. tableData2: [],
  362. fromUserList: [],
  363. activeName: 'a',
  364. num: 1,
  365. stepsList: [
  366. { status: 'Done', nodeName: '创建' },
  367. { status: 'Done', nodeName: '暂存', time: '2023-01-06' },
  368. { status: 'Done', nodeName: '收货中' },
  369. { status: 'Processing', nodeName: '已收货' }
  370. ],
  371. list: [
  372. {
  373. name: '紧急',
  374. color: 'red'
  375. },
  376. {
  377. name: '重要',
  378. color: 'blue'
  379. },
  380. {
  381. name: '已催办',
  382. color: 'red'
  383. }
  384. ],
  385. stepsTitle: '已完成',
  386. stepsStatus: 'success',
  387. active: 0
  388. };
  389. },
  390. watch: {
  391. 'infoData.verifyStatus': {
  392. immediate: true,
  393. handler(val) {
  394. if (val == 0) {
  395. this.active = 1;
  396. this.stepsTitle = '未审核';
  397. this.stepsStatus = 'wait';
  398. } else if (val == 1) {
  399. this.active = 2;
  400. this.stepsTitle = '审核中';
  401. this.stepsStatus = 'process';
  402. } else if (val == 2) {
  403. this.active = 2;
  404. this.stepsTitle = '审核通过';
  405. this.stepsStatus = 'success';
  406. } else if (val == 3) {
  407. this.active = 2;
  408. this.stepsTitle = '驳回';
  409. this.stepsStatus = 'error';
  410. }
  411. }
  412. }
  413. },
  414. computed: {
  415. ...mapGetters(['getDictValue']),
  416. tableHeader() {
  417. return tableHeader(this.infoData?.extInfo?.assetType);
  418. }
  419. },
  420. created() {
  421. this.getUser();
  422. this._getInfo();
  423. this.requestDict('类型用途');
  424. },
  425. methods: {
  426. getUserName(id) {
  427. let obj = this.fromUserList.find((x) => x.id == id);
  428. return obj && obj.name;
  429. },
  430. async getUser() {
  431. let res22 = await warehouseDefinition.getUserPage({
  432. groupId: 1,
  433. size: 9999,
  434. page: 1
  435. });
  436. this.fromUserList = res22.list;
  437. },
  438. // close() {
  439. // finishPageTab(); // 关闭当前页签
  440. // },
  441. ...mapActions('dict', ['requestDict']),
  442. getMaterialType: useDictLabel(materialType),
  443. getInputStatus: useDictLabel(inputStatus),
  444. getWarehousingType: useDictLabel(warehousingType),
  445. getSceneState: useDictLabel(outputSceneState),
  446. getAuditStatus: useDictLabel(auditStatus),
  447. async _getInfo() {
  448. const res = await outin.getById(this.$route.query.id);
  449. console.log(res);
  450. this.infoData = {
  451. ...res,
  452. assetType: res.extInfo.assetType,
  453. fromUserPhone: res.fromUserPhone,
  454. verifyDeptName: res.extInfo.verifyDeptName
  455. };
  456. if (res) {
  457. // this.warehousingMaterialList = res.warehouseLedgerInfos.map(
  458. // (item) => {
  459. // item.selfSum = (item.warehouseLedgerDetails || []).reduce(
  460. // (sum, pre) => {
  461. // if (item.isUnpack) {
  462. // return ++sum;
  463. // }
  464. // return sum + pre.measurementUnit;
  465. // },
  466. // 0
  467. // );
  468. // return item;
  469. // }
  470. // );
  471. this.warehousingMaterialList = res.outInDetailVOList;
  472. // this.materialCodeReqList =
  473. // res.warehouseLedgerInfos.warehouseLedgerDetails;
  474. let arr = [];
  475. for (const key in res.outInDetailVOList) {
  476. for (const k in res.outInDetailVOList[key]
  477. .outInDetailRecordVOList) {
  478. arr.push({
  479. ...res.outInDetailVOList[key].outInDetailRecordVOList[k]
  480. });
  481. }
  482. }
  483. this.materialCodeReqList = arr;
  484. let arrs = [];
  485. for (const key in res.outInDetailVOList) {
  486. for (const j in res.outInDetailVOList[key]
  487. .outInDetailRecordVOList) {
  488. for (const k in res.outInDetailVOList[key]
  489. .outInDetailRecordVOList[j]
  490. .outInDetailRecordMaterialDetailVOList) {
  491. arrs.push({
  492. ...res.outInDetailVOList[key].outInDetailRecordVOList[j]
  493. .outInDetailRecordMaterialDetailVOList[k]
  494. });
  495. }
  496. }
  497. }
  498. this.metaList = arrs;
  499. // console.log('qwqwqw', arr);
  500. // res.warehouseLedgerInfos.ledgers;
  501. // .map((i) =>
  502. // (i.outInDetailRecordVOList || []).map((item) => ({
  503. // ...item,
  504. // isUnpack: i.isUnpack
  505. // }))
  506. // )
  507. // .flat();
  508. }
  509. },
  510. // 时间差计算
  511. difference(beginTime, endTime) {
  512. var dateBegin = new Date(beginTime);
  513. var dateEnd = new Date(endTime);
  514. var dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数
  515. var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
  516. var leave1 = dateDiff % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
  517. var hours = Math.floor(leave1 / (3600 * 1000)); //计算出小时数
  518. //计算相差分钟数
  519. var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
  520. var minutes = Math.floor(leave2 / (60 * 1000)); //计算相差分钟数
  521. //计算相差秒数
  522. var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
  523. var seconds = Math.round(leave3 / 1000);
  524. if (dayDiff == -1) {
  525. dayDiff = 0;
  526. hours = 0;
  527. minutes = 0;
  528. }
  529. return dayDiff + '天' + hours + '小时' + minutes + '分钟';
  530. }
  531. }
  532. };
  533. </script>
  534. <style lang="scss" scoped>
  535. .stepsStatus {
  536. width: 40%;
  537. margin: 0 auto;
  538. }
  539. .p20 {
  540. padding: 20px;
  541. }
  542. .flex {
  543. display: flex;
  544. }
  545. .title {
  546. justify-content: space-between;
  547. border-bottom: 1px solid #ccc;
  548. padding-bottom: 5px;
  549. span {
  550. font-size: 16px;
  551. }
  552. .col {
  553. padding-left: 40px;
  554. font-size: 14px;
  555. color: #aaaaaa;
  556. }
  557. }
  558. .degree {
  559. margin-right: 10px;
  560. padding: 0px 15px;
  561. color: #fff;
  562. font-size: 13px;
  563. line-height: 23px;
  564. border-radius: 23px;
  565. display: flex;
  566. align-items: center;
  567. justify-content: space-between;
  568. span {
  569. width: 5px;
  570. height: 5px;
  571. border-radius: 100%;
  572. margin-right: 6px;
  573. background-color: #fff;
  574. }
  575. }
  576. .red {
  577. background-color: rgb(163, 0, 20);
  578. }
  579. .blue {
  580. background-color: #1989fa;
  581. }
  582. .createdInfo {
  583. justify-content: space-around;
  584. margin-top: 10px;
  585. font-size: 14px;
  586. .col {
  587. color: #6e6e6e;
  588. padding-right: 10px;
  589. }
  590. }
  591. .mt40 {
  592. margin-top: 40px;
  593. }
  594. .custSteps {
  595. margin-top: 20px;
  596. margin-left: 70px;
  597. .box {
  598. width: 158px;
  599. border: 1px solid #ccc;
  600. padding: 10px;
  601. flex-direction: row;
  602. flex-wrap: wrap;
  603. // justify-content: space-between;
  604. font-size: 12px;
  605. color: #9e9e9e;
  606. .x {
  607. width: 20px;
  608. height: 15px;
  609. margin-right: 5px;
  610. }
  611. .q {
  612. background-color: #d0e4d5;
  613. }
  614. .b {
  615. background-color: #1989fa;
  616. }
  617. .g {
  618. background-color: #157a2c;
  619. }
  620. .r {
  621. background-color: #a30014;
  622. }
  623. .a {
  624. align-items: center;
  625. margin-bottom: 10px;
  626. }
  627. .mr10 {
  628. margin-right: 10px;
  629. }
  630. .mb0 {
  631. margin-bottom: 0;
  632. }
  633. }
  634. .stepsInfo {
  635. // flex: 1;
  636. width: 483px;
  637. }
  638. }
  639. .mt20 {
  640. margin-top: 20px;
  641. }
  642. .content-detail {
  643. overflow: hidden;
  644. }
  645. .executor {
  646. font-size: 14px;
  647. .col {
  648. color: #6e6e6e;
  649. padding-right: 10px;
  650. }
  651. }
  652. .result {
  653. justify-content: space-around;
  654. }
  655. .mr20 {
  656. margin-right: 20px;
  657. }
  658. .details {
  659. font-size: 14px;
  660. margin-bottom: 10px;
  661. }
  662. .customSteps {
  663. margin-top: 40px;
  664. font-size: 14px;
  665. margin-left: 80px;
  666. .time {
  667. font-size: 12px;
  668. color: #6e6e6e;
  669. margin-right: 20px;
  670. position: relative;
  671. &::after {
  672. content: '';
  673. width: 1px;
  674. height: 100%;
  675. background-color: #157a2c;
  676. position: absolute;
  677. right: -26px;
  678. }
  679. }
  680. .flex:last-child {
  681. .time {
  682. &::after {
  683. display: none;
  684. }
  685. }
  686. }
  687. .round {
  688. margin-right: 20px;
  689. width: 10px;
  690. height: 10px;
  691. border-radius: 100%;
  692. background-color: #157a2c;
  693. position: relative;
  694. span {
  695. position: absolute;
  696. top: 50%;
  697. left: 50%;
  698. width: 4px;
  699. height: 4px;
  700. background-color: #fff;
  701. border-radius: 100%;
  702. transform: translate(-2px, -2px);
  703. }
  704. }
  705. .text {
  706. .info {
  707. margin-top: 10px;
  708. width: 955px;
  709. background-color: #f0f3f3;
  710. overflow: hidden;
  711. padding: 10px;
  712. margin-bottom: 10px;
  713. }
  714. }
  715. }
  716. </style>