infoPage.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. <template>
  2. <div class="infoPage">
  3. <div class="title-box">
  4. <p>使用详情</p>
  5. <p class="reset-button-one" @click="backPage"><i class="el-icon-arrow-left"></i>返回</p>
  6. </div>
  7. <div class="infoPage-max-box">
  8. <div class="infoPage-left-box scrollbar-box">
  9. <div class="infoPage-left-text-box-one">
  10. <div>
  11. <p>化学品名称:</p>
  12. <p>{{infoData.chemicalName}}</p>
  13. </div>
  14. <div>
  15. <p>化学品编号:</p>
  16. <p>{{infoData.joinNum}}</p>
  17. </div>
  18. </div>
  19. <div class="infoPage-left-text-box-one">
  20. <div>
  21. <p>CAS:</p>
  22. <p>{{infoData.casNum}}</p>
  23. </div>
  24. <div>
  25. <p>别名:</p>
  26. <p>{{infoData.anotherName}}</p>
  27. </div>
  28. </div>
  29. <div class="infoPage-left-text-box-one">
  30. <div>
  31. <p>化学品分类:</p>
  32. <p>{{infoData.classifyName}}</p>
  33. </div>
  34. <div>
  35. <p>纯度:</p>
  36. <p>{{infoData.purity}}</p>
  37. </div>
  38. </div>
  39. <div class="infoPage-left-text-box-two">
  40. <p>形态:</p>
  41. <p>{{infoData.chemicalShapeName}}</p>
  42. </div>
  43. <div class="infoPage-left-text-box-two">
  44. <p>属性:</p>
  45. <p>{{infoData.classifyAttribute}}</p>
  46. </div>
  47. <div class="infoPage-left-text-box-one">
  48. <div>
  49. <p>标签类型:</p>
  50. <p>{{infoData.labelType == 1?'RFID':(infoData.labelType == 2?'二维码':'')}}</p>
  51. </div>
  52. <div>
  53. <p>标签编号:</p>
  54. <p>{{infoData.tagCode}}</p>
  55. </div>
  56. </div>
  57. <div class="infoPage-left-text-box-one">
  58. <div>
  59. <p>容量规格:</p>
  60. <p>{{infoData.chemicalAmountUnit}}</p>
  61. </div>
  62. <div>
  63. <p>容器规格:</p>
  64. <p>{{infoData.tareUnit}}</p>
  65. </div>
  66. </div>
  67. <div class="infoPage-left-text-box-one">
  68. <div>
  69. <p>过期时间:</p>
  70. <p>{{infoData.expirationTime}} 丨 30天前提醒</p>
  71. </div>
  72. <div>
  73. <p>领用时效:</p>
  74. <p>{{infoData.collectHour&&infoData.collectMinute?infoData.collectHour+'小时'+infoData.collectMinute+'分钟':(
  75. !infoData.collectHour&&infoData.collectMinute?infoData.collectMinute+'分钟':(
  76. infoData.collectHour&&!infoData.collectMinute?infoData.collectHour+'小时':''))}}</p>
  77. </div>
  78. </div>
  79. <div class="infoPage-left-text-box-two">
  80. <p>化学品柜:</p>
  81. <p>{{infoData.cabinetName}}</p>
  82. </div>
  83. <div class="infoPage-left-text-box-two">
  84. <p>所在位置:</p>
  85. <p>{{infoData.posi}}</p>
  86. </div>
  87. </div>
  88. <div class="infoPage-right-box scrollbar-box">
  89. <p class="infoPage-right-title">当前使用状态:{{infoData.useStatus}}</p>
  90. <div class="infoPage-right-data-box" v-if="infoData.outDetail">
  91. <div class="title-button-max-box">
  92. <p></p>
  93. <p>领用</p>
  94. <p>{{infoData.collectTime}}</p>
  95. <p class="inquire-button-one" @click="lockVideo(1)">操作视频</p>
  96. <p class="inquire-button-one" @click="lockVideo(3)">开关锁视频</p>
  97. </div>
  98. <div class="table-title-box-one">
  99. <p>领用时库存净重</p>
  100. <p>损耗量</p>
  101. <p>领用净重</p>
  102. <p>双人验证</p>
  103. <p>称重方式</p>
  104. </div>
  105. <div class="table-list-box-one">
  106. <p>{{infoData.outDetail.stockSuttle}}</p>
  107. <p>{{infoData.outDetail.lossAmount}}</p>
  108. <p>{{infoData.outDetail.collectSuttle}}</p>
  109. <p>{{infoData.outDetail.outUsers}}</p>
  110. <p>{{infoData.outDetail.outType==1?'称重':(infoData.outDetail.outType==2?'录入':'')}}</p>
  111. </div>
  112. </div>
  113. <div class="infoPage-right-data-box" v-if="infoData.returnDetail">
  114. <div class="title-button-max-box">
  115. <p></p>
  116. <p>归还</p>
  117. <p>{{infoData.returnTime}}</p>
  118. <p class="inquire-button-one" @click="lockVideo(2)">操作视频</p>
  119. <p class="inquire-button-one" @click="lockVideo(4)">开关锁视频</p>
  120. </div>
  121. <div class="table-title-box-two">
  122. <p>本次使用量</p>
  123. <p>剩余库存净重</p>
  124. <p>双人验证</p>
  125. <p>称重方式</p>
  126. </div>
  127. <div class="table-list-box-two">
  128. <p>{{infoData.returnDetail.useStockNum}}</p>
  129. <p>{{infoData.returnDetail.returnSuttle}}</p>
  130. <p>{{infoData.returnDetail.backUsers}}</p>
  131. <p>{{infoData.returnDetail.returnType==1?'称重':(infoData.returnDetail.returnType==2?'录入':'')}}</p>
  132. </div>
  133. </div>
  134. </div>
  135. </div>
  136. <el-dialog :title="videoTitle" :visible.sync="videoType" v-if="videoType"
  137. width="840px" append-to-body id="operationRecord-dialog-box">
  138. <video style="width:800px;height:450px;" controls="" autoplay="" name="media" :poster="videoCover">
  139. <source :src="videoData.url" type="video/mp4">
  140. </video>
  141. </el-dialog>
  142. </div>
  143. </template>
  144. <script>
  145. export default {
  146. name: "infoPage",
  147. props:{
  148. infoData:{},
  149. },
  150. data(){
  151. return {
  152. videoCover:process.env.VUE_APP_BASE_API + localStorage.getItem('videoCover'),
  153. videoType:false,
  154. videoData:{},
  155. videoTitle:"",
  156. }
  157. },
  158. created() {
  159. },
  160. mounted(){
  161. },
  162. methods: {
  163. //视频按钮
  164. lockVideo(type){
  165. let obj = {};
  166. if (type == 1){
  167. //领用操作视频
  168. if(!this.infoData.outDetail.outVideo){
  169. this.msgError('操作视频异常无法观看');
  170. return
  171. }
  172. this.$set(this,'videoTitle','操作视频');
  173. obj.url = window.location.href.split('://')[0]+'://' + process.env.VUE_APP_BASE_API + "/admin/" + this.infoData.outDetail.outVideo;
  174. } else if(type == 2){
  175. //归还操作视频
  176. if(!this.infoData.returnDetail.returnVideo){
  177. this.msgError('操作视频异常无法观看');
  178. return
  179. }
  180. this.$set(this,'videoTitle','操作视频');
  181. obj.url = window.location.href.split('://')[0]+'://' + process.env.VUE_APP_BASE_API + "/admin/" + this.infoData.returnDetail.returnVideo;
  182. } else if(type == 3){
  183. //领用开关锁视频
  184. if(!this.infoData.outDetail.outLockVideo){
  185. this.msgError('开关锁视频异常无法观看');
  186. return
  187. }
  188. this.$set(this,'videoTitle','开关锁视频');
  189. obj.url = window.location.href.split('://')[0]+'://' + process.env.VUE_APP_BASE_API + "/admin/" + this.infoData.outDetail.outLockVideo;
  190. } else if(type == 4){
  191. //归还开关锁视频
  192. if(!this.infoData.returnDetail.returnLockVideo){
  193. this.msgError('开关锁视频异常无法观看');
  194. return
  195. }
  196. this.$set(this,'videoTitle','开关锁视频');
  197. obj.url = window.location.href.split('://')[0]+'://' + process.env.VUE_APP_BASE_API + "/admin/" + this.infoData.returnDetail.returnLockVideo;
  198. }
  199. this.$set(this,'videoData',obj);
  200. this.videoType = true;
  201. },
  202. backPage(){
  203. this.$parent.goPageInfo(1);
  204. },
  205. }
  206. }
  207. </script>
  208. <style scoped lang="scss">
  209. .infoPage{
  210. flex:1;
  211. display: flex;
  212. flex-direction: column;
  213. overflow: hidden!important;
  214. p{
  215. margin:0;
  216. }
  217. .title-box{
  218. display: flex;
  219. height:90px;
  220. border-bottom: 1px solid #D8D8D8;
  221. p:nth-child(1){
  222. flex:1;
  223. font-size:16px;
  224. line-height:90px;
  225. margin-left:18px;
  226. color:#0045AF;
  227. }
  228. p:nth-child(2){
  229. margin:25px 25px 0 0;
  230. }
  231. }
  232. .infoPage-max-box{
  233. flex:1;
  234. display: flex;
  235. overflow: hidden;
  236. font-weight: 500;
  237. .infoPage-left-box{
  238. flex:1;
  239. margin:44px 22px 37px 80px;
  240. padding:13px 0;
  241. box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1);
  242. border-radius:10px;
  243. .infoPage-left-text-box-one{
  244. display: flex;
  245. div:nth-child(1){
  246. flex:1;
  247. }
  248. div{
  249. display: flex;
  250. p{
  251. font-size:14px;
  252. line-height:56px;
  253. }
  254. p:nth-child(1){
  255. color:#333;
  256. text-align: right;
  257. width:116px;
  258. }
  259. p:nth-child(2){
  260. color:#666;
  261. flex:1;
  262. }
  263. }
  264. div:nth-child(2){
  265. width:260px;
  266. }
  267. }
  268. .infoPage-left-text-box-two{
  269. display: flex;
  270. p{
  271. font-size:14px;
  272. line-height:56px;
  273. }
  274. p:nth-child(1){
  275. color:#333;
  276. text-align: right;
  277. width:116px;
  278. }
  279. p:nth-child(2){
  280. color:#666;
  281. flex:1;
  282. }
  283. }
  284. }
  285. .infoPage-right-box{
  286. width:839px;
  287. margin:44px 80px 37px 0;
  288. box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1);
  289. border-radius:10px;
  290. .infoPage-right-title{
  291. line-height:60px;
  292. margin:0 24px;
  293. font-size:16px;
  294. }
  295. .infoPage-right-data-box{
  296. width:792px;
  297. margin:0 auto;
  298. box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1);
  299. padding-bottom:22px;
  300. border-radius:10px;
  301. margin-bottom:21px;
  302. .title-button-max-box{
  303. width:755px;
  304. margin:0 auto;
  305. height:80px;
  306. display: flex;
  307. font-size:16px;
  308. p:nth-child(1){
  309. background: #0045AF;
  310. width:3px;
  311. height:14px;
  312. margin:33px 0;
  313. margin-right:12px;
  314. margin-left:7px;
  315. }
  316. p:nth-child(2){
  317. line-height:80px;
  318. margin-right:27px;
  319. }
  320. p:nth-child(3){
  321. line-height:80px;
  322. flex:1;
  323. }
  324. p:nth-child(4){
  325. width:100px;
  326. line-height:40px;
  327. margin:20px 10px 0 0;
  328. }
  329. p:nth-child(5){
  330. width:100px;
  331. line-height:40px;
  332. margin:20px 10px 0 0;
  333. }
  334. }
  335. .table-title-box-one{
  336. width:755px;
  337. height:60px;
  338. background: #f5f5f5;
  339. margin:0 auto;
  340. display: flex;
  341. p{
  342. color:#333;
  343. font-size:16px;
  344. line-height:60px;
  345. }
  346. p:nth-child(1){
  347. text-align: center;
  348. width:130px;
  349. }
  350. p:nth-child(2){
  351. text-align: center;
  352. width:108px;
  353. }
  354. p:nth-child(3){
  355. text-align: center;
  356. width:118px;
  357. }
  358. p:nth-child(4){
  359. text-align: center;
  360. flex: 1;
  361. }
  362. p:nth-child(5){
  363. text-align: center;
  364. width:136px;
  365. }
  366. }
  367. .table-list-box-one{
  368. width:755px;
  369. height:70px;
  370. border:1px solid #e0e0e0;
  371. margin:0 auto;
  372. display: flex;
  373. p{
  374. color:#333;
  375. font-size:16px;
  376. line-height:70px;
  377. }
  378. p:nth-child(1){
  379. text-align: center;
  380. width:130px;
  381. }
  382. p:nth-child(2){
  383. text-align: center;
  384. width:108px;
  385. }
  386. p:nth-child(3){
  387. text-align: center;
  388. width:118px;
  389. }
  390. p:nth-child(4){
  391. text-align: center;
  392. flex: 1;
  393. }
  394. p:nth-child(5){
  395. text-align: center;
  396. width:136px;
  397. }
  398. }
  399. .table-title-box-two{
  400. width:755px;
  401. height:60px;
  402. background: #f5f5f5;
  403. margin:0 auto;
  404. display: flex;
  405. p{
  406. color:#333;
  407. font-size:16px;
  408. line-height:60px;
  409. }
  410. p:nth-child(1){
  411. text-align: center;
  412. width:170px;
  413. }
  414. p:nth-child(2){
  415. text-align: center;
  416. width:148px;
  417. }
  418. p:nth-child(3){
  419. text-align: center;
  420. flex: 1;
  421. }
  422. p:nth-child(4){
  423. text-align: center;
  424. width:172px;
  425. }
  426. }
  427. .table-list-box-two{
  428. width:755px;
  429. height:70px;
  430. border:1px solid #e0e0e0;
  431. margin:0 auto;
  432. display: flex;
  433. p{
  434. color:#333;
  435. font-size:16px;
  436. line-height:70px;
  437. }
  438. p:nth-child(1){
  439. text-align: center;
  440. width:170px;
  441. }
  442. p:nth-child(2){
  443. text-align: center;
  444. width:148px;
  445. }
  446. p:nth-child(3){
  447. text-align: center;
  448. flex: 1;
  449. }
  450. p:nth-child(4){
  451. text-align: center;
  452. width:172px;
  453. }
  454. }
  455. }
  456. }
  457. }
  458. }
  459. </style>