approvalPage.vue 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623
  1. <template>
  2. <div class="approvalPage">
  3. <div class="title-box">
  4. <p>化学品申购</p>
  5. <p class="reset-button-one button-p" @click="backPage">返回</p>
  6. <!--已拒绝/已撤销时显示-->
  7. <p class="inquire-button-one button-p" @click="backPage">编辑</p>
  8. </div>
  9. <div class="page-max-box scrollbar-box">
  10. <div class="text-box-one">
  11. <p>编号:</p>
  12. <p>{{dataInfo.applyNum}}</p>
  13. <p>申购人:{{dataInfo.applyUserName}}</p>
  14. <p :class="dataInfo.approvalStatus==0?'colorA':(dataInfo.approvalStatus==1?'colorB':(dataInfo.approvalStatus==2?'colorC':(dataInfo.approvalStatus==3?'colorD':'')))"
  15. >{{dataInfo.approvalStatus==0?'审批中':(dataInfo.approvalStatus==1?'已通过':(dataInfo.approvalStatus==2?'已拒绝':(dataInfo.approvalStatus==3?'已撤销':'')))}}</p>
  16. </div>
  17. <div class="text-box-two">
  18. <p>申购原因:</p>
  19. <p>{{dataInfo.applyReason}}</p>
  20. </div>
  21. <div class="text-box-one">
  22. <p>实验室:</p>
  23. <p style="flex:1;">{{dataInfo.subName}}</p>
  24. </div>
  25. <div class="text-box-three">
  26. <p class="el-icon-info"></p>
  27. <p>勾选的化学品为已同意申购</p>
  28. </div>
  29. <!--学生-->
  30. <div class="table-title-box-one">
  31. <img src="@/assets/ZDimages/medicUniversity-3_1/icon_sp_wxz.png">
  32. <!--<img src="@/assets/ZDimages/medicUniversity-3_1/icon_ytg_xz.png">-->
  33. <p>全选</p>
  34. <p>化学品名</p>
  35. <p>化学品柜</p>
  36. <p>位置</p>
  37. <p>申购人剩余可存放量</p>
  38. <p>本次申购量</p>
  39. </div>
  40. <div class="table-list-box-one" v-for="(item,index) in dataInfo.actHxpapplyDetailList" :key="index">
  41. <img src="@/assets/ZDimages/medicUniversity-3_1/icon_sp_wxz.png">
  42. <!--<img src="@/assets/ZDimages/medicUniversity-3_1/icon_ytg_xz.png">-->
  43. <p></p>
  44. <p>{{item.chemicalName}}</p>
  45. <el-tooltip class="item" effect="dark" :content="item.cabinetName" placement="top">
  46. <p>{{item.cabinetName}}</p>
  47. </el-tooltip>
  48. <el-tooltip class="item" effect="dark" :content="item.posi" placement="top">
  49. <p>{{item.posi}}</p>
  50. </el-tooltip>
  51. <p>10g</p>
  52. <p>1000g</p>
  53. </div>
  54. <!--管理-->
  55. <div class="table-title-box-two">
  56. <img src="@/assets/ZDimages/medicUniversity-3_1/icon_sp_wxz.png">
  57. <!--<img src="@/assets/ZDimages/medicUniversity-3_1/icon_ytg_xz.png">-->
  58. <p>全选</p>
  59. <p>化学品名</p>
  60. <p>化学品柜</p>
  61. <p>位置</p>
  62. <p>学院库存</p>
  63. <p>实验室库存</p>
  64. <p>化学品库存</p>
  65. <p>申购人剩余可存放量</p>
  66. <p>本次申购量</p>
  67. <p>操作</p>
  68. </div>
  69. <div class="table-list-box-two" v-for="(item,index) in dataInfo.actHxpapplyDetailList" :key="index">
  70. <img src="@/assets/ZDimages/medicUniversity-3_1/icon_sp_wxz.png">
  71. <!--<img src="@/assets/ZDimages/medicUniversity-3_1/icon_ytg_xz.png">-->
  72. <p></p>
  73. <p>{{item.chemicalName}}</p>
  74. <el-tooltip class="item" effect="dark" :content="item.cabinetName" placement="top">
  75. <p>{{item.cabinetName}}</p>
  76. </el-tooltip>
  77. <el-tooltip class="item" effect="dark" :content="item.posi" placement="top">
  78. <p>{{item.posi}}</p>
  79. </el-tooltip>
  80. <p>10g</p>
  81. <p>10g</p>
  82. <p>10g</p>
  83. <p>10g</p>
  84. <p>1000g</p>
  85. <p>化学品</p>
  86. <p>化学品详情</p>
  87. </div>
  88. <p class="approval-title-p">审批流程</p>
  89. <!--审批流程-->
  90. <div class="approval-list-max-box">
  91. <div class="approval-for-box">
  92. <div class="left-max-box">
  93. <div class="left-top-box">
  94. <img src="">
  95. <!--<img src="">-->
  96. <div class="left-top-text-box">
  97. <p>发起申请</p>
  98. <p>练英雄</p>
  99. </div>
  100. </div>
  101. <p class="left-bottom-p"></p>
  102. <img class="left-position-img" src="@/assets/ZDimages/medicUniversity-3_1/icon_cgsq_ytg.png">
  103. <img class="left-position-img" src="@/assets/ZDimages/medicUniversity-3_1/icon_cgsq_yjj.png">
  104. </div>
  105. <div class="right-max-box">
  106. <div class="right-for-name-box">
  107. <img src="https://img0.baidu.com/it/u=1034508305,2958640538&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500">
  108. <p>李达渊</p>
  109. <img src="@/assets/ZDimages/medicUniversity-3_1/icon_bz_1.png">
  110. <!--<img src="@/assets/ZDimages/medicUniversity-3_1/icon_bz_2.png">-->
  111. <img src="@/assets/ZDimages/medicUniversity-3_1/icon_cgsq_ytg.png">
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. <div class="bottom-button-box">
  117. <p class="add-button-two-90">拒绝</p>
  118. <p class="inquire-button-one">同意</p>
  119. </div>
  120. </div>
  121. <el-dialog title="化学品详情" :visible.sync="infoDialogType" v-if="infoDialogType" width="900px" append-to-body class="approvalPage-info-dialog-box">
  122. <div class="approvalPage-info-dialog-text-big-box">
  123. <div class="approvalPage-info-dialog-box-text-box">
  124. <p>化学品名:</p>
  125. <p>甲醇</p>
  126. </div>
  127. <div class="approvalPage-info-dialog-box-text-box">
  128. <p>化学品ID:</p>
  129. <p>12345678</p>
  130. </div>
  131. </div>
  132. <div class="approvalPage-info-dialog-text-big-box">
  133. <div class="approvalPage-info-dialog-box-text-box">
  134. <p>CAS:</p>
  135. <p>1-35-64664</p>
  136. </div>
  137. <div class="approvalPage-info-dialog-box-text-box">
  138. <p>别名:</p>
  139. <p>无</p>
  140. </div>
  141. </div>
  142. <div class="approvalPage-info-dialog-text-big-box">
  143. <div class="approvalPage-info-dialog-box-text-box">
  144. <p>分类:</p>
  145. <p>危险化学品</p>
  146. </div>
  147. <div class="approvalPage-info-dialog-box-text-box">
  148. <p>属性:</p>
  149. <p>易制毒、易腐蚀</p>
  150. </div>
  151. </div>
  152. <div class="approvalPage-info-dialog-text-big-box">
  153. <div class="approvalPage-info-dialog-box-text-box">
  154. <p>纯度:</p>
  155. <p>无</p>
  156. </div>
  157. <div class="approvalPage-info-dialog-box-text-box">
  158. <p>形态:</p>
  159. <p>液体(g)</p>
  160. </div>
  161. </div>
  162. <div slot="footer" class="dialog-footer">
  163. <el-button type="primary">确 定</el-button>
  164. </div>
  165. </el-dialog>
  166. </div>
  167. </template>
  168. <script>
  169. import { hxpapplyAudit } from "@/api/medicUniversity-3_1/index";
  170. export default {
  171. name: "approvalPage",
  172. props:{
  173. approvalPagePropsData:{},
  174. },
  175. data(){
  176. return{
  177. //详情展示弹窗开关
  178. infoDialogType:false,
  179. dataInfo:{},
  180. }
  181. },
  182. created() {
  183. },
  184. mounted(){
  185. this.hxpapplyAudit();
  186. },
  187. methods: {
  188. //获取审批详情
  189. hxpapplyAudit(){
  190. hxpapplyAudit(this.approvalPagePropsData.id).then(response => {
  191. this.$set(this,'dataInfo',response.data);
  192. });
  193. },
  194. //返回
  195. backPage(){
  196. this.$parent.pageToggle(1);
  197. },
  198. }
  199. }
  200. </script>
  201. <style scoped lang="scss">
  202. .approvalPage{
  203. flex:1;
  204. display: flex;
  205. flex-direction: column;
  206. overflow: hidden;
  207. p{
  208. margin:0;
  209. padding:0;
  210. }
  211. .title-box{
  212. display: flex;
  213. height:90px;
  214. border-bottom: 1px solid #D8D8D8;
  215. p:nth-child(1){
  216. flex:1;
  217. font-size:16px;
  218. line-height:90px;
  219. margin-left:18px;
  220. color:#0045AF;
  221. }
  222. .button-p{
  223. margin:25px 25px 0 0;
  224. }
  225. }
  226. .page-max-box{
  227. flex:1;
  228. display: flex;
  229. flex-direction: column;
  230. padding:20px 80px;
  231. .text-box-one{
  232. display: flex;
  233. margin-bottom:10px;
  234. font-size:16px;
  235. p{
  236. color:#333;
  237. line-height:50px;
  238. }
  239. p:nth-child(1){
  240. width:85px;
  241. text-align: right;
  242. }
  243. p:nth-child(2){
  244. width:205px;
  245. padding-left:10px;
  246. }
  247. p:nth-child(3){
  248. flex:1;
  249. }
  250. p:nth-child(4){
  251. }
  252. .colorA{
  253. color:#FF8C00;
  254. }
  255. .colorB{
  256. color:#25C402;
  257. }
  258. .colorC{
  259. color:#FA5151;
  260. }
  261. .colorD{
  262. color:#666666;
  263. }
  264. }
  265. .text-box-two{
  266. display: flex;
  267. margin-bottom:10px;
  268. font-size:16px;
  269. p{
  270. color:#333;
  271. line-height:50px;
  272. }
  273. p:nth-child(1){
  274. width:85px;
  275. text-align: right;
  276. }
  277. p:nth-child(2){
  278. padding-left:10px;
  279. flex:1;
  280. background: #F5F5F5;
  281. border-radius:4px;
  282. }
  283. }
  284. .text-box-three{
  285. display: flex;
  286. font-size:14px;
  287. p:nth-child(1){
  288. font-size:14px;
  289. width:14px;
  290. height:14px;
  291. margin:14px 11px 14px 14px;
  292. text-align: center;
  293. color:#ffb400;
  294. border-radius:50%;
  295. }
  296. p:nth-child(2){
  297. flex:1;
  298. line-height:42px;
  299. }
  300. }
  301. .table-title-box-one{
  302. display: flex;
  303. background: #f5f5f5;
  304. img:nth-child(1){
  305. width:16px;
  306. height:16px;
  307. margin:17px 17px 0 29px;
  308. }
  309. p{
  310. line-height: 50px;
  311. font-size:16px;
  312. }
  313. p:nth-child(2){
  314. width:130px;
  315. }
  316. p:nth-child(3){
  317. width:184px;
  318. }
  319. p:nth-child(4){
  320. width:299px;
  321. }
  322. p:nth-child(5){
  323. width:288px;
  324. }
  325. p:nth-child(6){
  326. flex:1;
  327. }
  328. p:nth-child(7){
  329. width:145px;
  330. }
  331. }
  332. .table-list-box-one{
  333. display: flex;
  334. img:nth-child(1){
  335. width:16px;
  336. height:16px;
  337. margin:13px 17px 0 29px;
  338. }
  339. p{
  340. line-height: 42px;
  341. font-size:14px;
  342. }
  343. p:nth-child(2){
  344. width:130px;
  345. }
  346. p:nth-child(3){
  347. width:184px;
  348. }
  349. p:nth-child(4){
  350. width:299px;
  351. padding-right:20px;
  352. display:block;
  353. overflow:hidden;
  354. text-overflow:ellipsis;
  355. white-space:nowrap;
  356. }
  357. p:nth-child(5){
  358. width:288px;
  359. padding-right:20px;
  360. display:block;
  361. overflow:hidden;
  362. text-overflow:ellipsis;
  363. white-space:nowrap;
  364. }
  365. p:nth-child(6){
  366. flex:1;
  367. }
  368. p:nth-child(7){
  369. width:145px;
  370. color: #0045AF;
  371. }
  372. }
  373. .table-title-box-two{
  374. display: flex;
  375. background: #f5f5f5;
  376. img:nth-child(1){
  377. width:16px;
  378. height:16px;
  379. margin:17px 17px 0 18px;
  380. }
  381. p{
  382. line-height: 50px;
  383. font-size:16px;
  384. }
  385. p:nth-child(2){
  386. width:72px;
  387. }
  388. p:nth-child(3){
  389. width:113px;
  390. }
  391. p:nth-child(4){
  392. width:121px;
  393. }
  394. p:nth-child(5){
  395. width:165px;
  396. }
  397. p:nth-child(6){
  398. width:121px;
  399. }
  400. p:nth-child(7){
  401. width:136px;
  402. }
  403. p:nth-child(8){
  404. width:132px;
  405. }
  406. p:nth-child(9){
  407. width:169px;
  408. }
  409. p:nth-child(10){
  410. flex:1;
  411. }
  412. p:nth-child(11){
  413. width:145px;
  414. margin-left:55px;
  415. }
  416. }
  417. .table-list-box-two{
  418. display: flex;
  419. img:nth-child(1){
  420. width:16px;
  421. height:16px;
  422. margin:17px 17px 0 18px;
  423. }
  424. p{
  425. line-height: 50px;
  426. font-size:14px;
  427. }
  428. p:nth-child(2){
  429. width:72px;
  430. }
  431. p:nth-child(3){
  432. width:113px;
  433. }
  434. p:nth-child(4){
  435. width:121px;
  436. padding-right:20px;
  437. display:block;
  438. overflow:hidden;
  439. text-overflow:ellipsis;
  440. white-space:nowrap;
  441. }
  442. p:nth-child(5){
  443. width:165px;
  444. padding-right:20px;
  445. display:block;
  446. overflow:hidden;
  447. text-overflow:ellipsis;
  448. white-space:nowrap;
  449. }
  450. p:nth-child(6){
  451. width:121px;
  452. }
  453. p:nth-child(7){
  454. width:136px;
  455. }
  456. p:nth-child(8){
  457. width:132px;
  458. }
  459. p:nth-child(9){
  460. width:169px;
  461. }
  462. p:nth-child(10){
  463. flex:1;
  464. }
  465. p:nth-child(11){
  466. width:80px;
  467. height:28px;
  468. line-height:28px;
  469. margin-right:14px;
  470. color:#0045af;
  471. border:1px solid #0045af;
  472. border-radius:4px;
  473. text-align: center;
  474. margin-top:7px;
  475. cursor: pointer;
  476. }
  477. p:nth-child(12){
  478. width:100px;
  479. height:28px;
  480. line-height:28px;
  481. color:#0045af;
  482. border:1px solid #0045af;
  483. border-radius:4px;
  484. text-align: center;
  485. margin-top:7px;
  486. cursor: pointer;
  487. }
  488. }
  489. .approval-title-p{
  490. font-size:16px;
  491. background: #f5f5f5;
  492. line-height: 50px;
  493. margin-bottom:23px;
  494. }
  495. .approval-list-max-box{
  496. .approval-for-box{
  497. display: flex;
  498. .left-max-box{
  499. display: flex;
  500. flex-direction: column;
  501. width:219px;
  502. position: relative;
  503. .left-top-box{
  504. display: flex;
  505. img{
  506. width:60px;
  507. height:60px;
  508. border-radius:4px;
  509. margin-right:30px;
  510. }
  511. .left-top-text-box{
  512. p{
  513. line-height:30px;
  514. font-size:14px;
  515. color:#333;
  516. }
  517. }
  518. }
  519. .left-bottom-p{
  520. width:2px;
  521. flex:1;
  522. background: #e0e0e0;
  523. margin-left:29px;
  524. }
  525. .left-position-img{
  526. width:20px;
  527. height:20px;
  528. position: absolute;
  529. top:50px;
  530. left:50px;
  531. }
  532. }
  533. .right-max-box{
  534. flex:1;
  535. min-height:108px;
  536. border:1px solid #e0e0e0;
  537. margin-bottom:27px;
  538. padding:19px 14px 0;
  539. .right-for-name-box{
  540. display: flex;
  541. position: relative;
  542. img:nth-child(1){
  543. width:40px;
  544. height:40px;
  545. border-radius:4px;
  546. margin-right:8px;
  547. }
  548. p:nth-child(2){
  549. line-height:44px;
  550. font-size:14px;
  551. }
  552. img:nth-child(3){
  553. width:12px;
  554. height:10px;
  555. margin:16px 17px 0 13px;
  556. }
  557. img:nth-child(4){
  558. width:20px;
  559. height:20px;
  560. position: absolute;
  561. top:30px;
  562. left:30px;
  563. }
  564. }
  565. }
  566. .right-max-end{
  567. margin-bottom:0;
  568. }
  569. }
  570. }
  571. .bottom-button-box{
  572. display: flex;
  573. width:217px;
  574. margin:30px auto;
  575. p{
  576. width:100px;
  577. }
  578. p:nth-child(1){
  579. margin-right:17px;
  580. }
  581. }
  582. }
  583. }
  584. </style>
  585. <style lang="scss">
  586. .approvalPage-info-dialog-box{
  587. p{
  588. margin:0;
  589. }
  590. .approvalPage-info-dialog-text-big-box{
  591. display: flex;
  592. .approvalPage-info-dialog-box-text-box:nth-child(1){
  593. margin-right:100px;
  594. margin-left:20px;
  595. }
  596. .approvalPage-info-dialog-box-text-box{
  597. width:357px;
  598. display: flex;
  599. p{
  600. line-height:50px;
  601. color:#333;
  602. font-size:16px;
  603. }
  604. p:nth-child(1){
  605. width:80px;
  606. text-align: right;
  607. }
  608. p:nth-child(2){
  609. flex:1;
  610. text-align: right;
  611. }
  612. }
  613. }
  614. .el-dialog__footer{
  615. text-align:center;
  616. }
  617. }
  618. </style>