infoPage.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  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}}</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. </div>
  97. <div class="table-title-box-one">
  98. <p>领用时净重</p>
  99. <p>损耗量</p>
  100. <p>领用净重</p>
  101. <p>双人验证</p>
  102. <p>称重方式</p>
  103. </div>
  104. <div class="table-list-box-one">
  105. <p>{{infoData.outDetail.stockSuttle}}</p>
  106. <p>{{infoData.outDetail.lossAmount}}</p>
  107. <p>{{infoData.outDetail.collectSuttle}}</p>
  108. <p>{{infoData.outDetail.outUsers}}</p>
  109. <p>{{infoData.outDetail.outType==1?'称重':(infoData.outDetail.outType==2?'录入':'')}}</p>
  110. </div>
  111. </div>
  112. <div class="infoPage-right-data-box" v-if="infoData.returnDetail">
  113. <div class="title-button-max-box">
  114. <p></p>
  115. <p>归还</p>
  116. <p>{{infoData.returnTime}}</p>
  117. <p class="inquire-button-one" @click="lockVideo(2)">操作视频</p>
  118. </div>
  119. <div class="table-title-box-two">
  120. <p>本次使用量</p>
  121. <p>剩余库存净重</p>
  122. <p>双人验证</p>
  123. <p>称重方式</p>
  124. </div>
  125. <div class="table-list-box-two">
  126. <p>{{infoData.returnDetail.useStockNum}}</p>
  127. <p>{{infoData.returnDetail.returnSuttle}}</p>
  128. <p>{{infoData.returnDetail.backUsers}}</p>
  129. <p>{{infoData.returnDetail.returnType==1?'称重':(infoData.returnDetail.returnType==2?'录入':'')}}</p>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. <el-dialog title="操作视频" :visible.sync="videoType" v-if="videoType"
  135. width="840px" append-to-body id="operationRecord-dialog-box">
  136. <video style="width:800px;height:450px;" controls="" autoplay="" name="media" :poster="videoCover">
  137. <source :src="videoData.url" type="video/mp4">
  138. </video>
  139. </el-dialog>
  140. </div>
  141. </template>
  142. <script>
  143. export default {
  144. name: "infoPage",
  145. props:{
  146. infoData:{},
  147. },
  148. data(){
  149. return {
  150. videoType:false,
  151. videoData:{},
  152. }
  153. },
  154. created() {
  155. },
  156. mounted(){
  157. },
  158. methods: {
  159. //视频按钮
  160. lockVideo(type){
  161. let obj = {};
  162. if (type == 1){
  163. if(!this.infoData.outDetail.outVideo){
  164. this.msgError('操作视频异常无法观看');
  165. return
  166. }
  167. obj.url = this.infoData.outDetail.outVideo;
  168. } else if(type == 2){
  169. if(!this.infoData.returnDetail.returnVideo){
  170. this.msgError('操作视频异常无法观看');
  171. return
  172. }
  173. obj.url = this.infoData.returnDetail.returnVideo;
  174. }
  175. this.$set(this,'videoData',obj);
  176. this.videoType = true;
  177. },
  178. backPage(){
  179. this.$parent.goPageInfo(1);
  180. },
  181. }
  182. }
  183. </script>
  184. <style scoped lang="scss">
  185. .infoPage{
  186. flex:1;
  187. display: flex;
  188. flex-direction: column;
  189. overflow: hidden!important;
  190. p{
  191. margin:0;
  192. }
  193. .title-box{
  194. display: flex;
  195. height:90px;
  196. border-bottom: 1px solid #D8D8D8;
  197. p:nth-child(1){
  198. flex:1;
  199. font-size:16px;
  200. line-height:90px;
  201. margin-left:18px;
  202. color:#0045AF;
  203. }
  204. p:nth-child(2){
  205. margin:25px 25px 0 0;
  206. }
  207. }
  208. .infoPage-max-box{
  209. flex:1;
  210. display: flex;
  211. overflow: hidden;
  212. font-weight: 500;
  213. .infoPage-left-box{
  214. flex:1;
  215. margin:44px 22px 37px 80px;
  216. padding:13px 0;
  217. box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1);
  218. border-radius:10px;
  219. .infoPage-left-text-box-one{
  220. display: flex;
  221. div{
  222. flex:1;
  223. display: flex;
  224. p{
  225. font-size:14px;
  226. line-height:56px;
  227. }
  228. p:nth-child(1){
  229. color:#333;
  230. text-align: right;
  231. width:116px;
  232. }
  233. p:nth-child(2){
  234. color:#666;
  235. flex:1;
  236. }
  237. }
  238. }
  239. .infoPage-left-text-box-two{
  240. display: flex;
  241. p{
  242. font-size:14px;
  243. line-height:56px;
  244. }
  245. p:nth-child(1){
  246. color:#333;
  247. text-align: right;
  248. width:116px;
  249. }
  250. p:nth-child(2){
  251. color:#666;
  252. flex:1;
  253. }
  254. }
  255. }
  256. .infoPage-right-box{
  257. width:839px;
  258. margin:44px 80px 37px 0;
  259. box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1);
  260. border-radius:10px;
  261. .infoPage-right-title{
  262. line-height:60px;
  263. margin:0 24px;
  264. font-size:16px;
  265. }
  266. .infoPage-right-data-box{
  267. width:792px;
  268. margin:0 auto;
  269. box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1);
  270. padding-bottom:22px;
  271. border-radius:10px;
  272. margin-bottom:21px;
  273. .title-button-max-box{
  274. width:755px;
  275. margin:0 auto;
  276. height:80px;
  277. display: flex;
  278. font-size:16px;
  279. p:nth-child(1){
  280. background: #0045AF;
  281. width:3px;
  282. height:14px;
  283. margin:33px 0;
  284. margin-right:12px;
  285. margin-left:7px;
  286. }
  287. p:nth-child(2){
  288. line-height:80px;
  289. margin-right:27px;
  290. }
  291. p:nth-child(3){
  292. line-height:80px;
  293. flex:1;
  294. }
  295. p:nth-child(4){
  296. width:100px;
  297. line-height:40px;
  298. margin:20px 10px 0 0;
  299. }
  300. }
  301. .table-title-box-one{
  302. width:755px;
  303. height:60px;
  304. background: #f5f5f5;
  305. margin:0 auto;
  306. display: flex;
  307. p{
  308. color:#333;
  309. font-size:16px;
  310. line-height:60px;
  311. }
  312. p:nth-child(1){
  313. text-align: center;
  314. width:130px;
  315. }
  316. p:nth-child(2){
  317. text-align: center;
  318. width:108px;
  319. }
  320. p:nth-child(3){
  321. text-align: center;
  322. width:118px;
  323. }
  324. p:nth-child(4){
  325. text-align: center;
  326. flex: 1;
  327. }
  328. p:nth-child(5){
  329. text-align: center;
  330. width:136px;
  331. }
  332. }
  333. .table-list-box-one{
  334. width:755px;
  335. height:70px;
  336. border:1px solid #e0e0e0;
  337. margin:0 auto;
  338. display: flex;
  339. p{
  340. color:#333;
  341. font-size:16px;
  342. line-height:70px;
  343. }
  344. p:nth-child(1){
  345. text-align: center;
  346. width:130px;
  347. }
  348. p:nth-child(2){
  349. text-align: center;
  350. width:108px;
  351. }
  352. p:nth-child(3){
  353. text-align: center;
  354. width:118px;
  355. }
  356. p:nth-child(4){
  357. text-align: center;
  358. flex: 1;
  359. }
  360. p:nth-child(5){
  361. text-align: center;
  362. width:136px;
  363. }
  364. }
  365. .table-title-box-two{
  366. width:755px;
  367. height:60px;
  368. background: #f5f5f5;
  369. margin:0 auto;
  370. display: flex;
  371. p{
  372. color:#333;
  373. font-size:16px;
  374. line-height:60px;
  375. }
  376. p:nth-child(1){
  377. text-align: center;
  378. width:170px;
  379. }
  380. p:nth-child(2){
  381. text-align: center;
  382. width:148px;
  383. }
  384. p:nth-child(3){
  385. text-align: center;
  386. flex: 1;
  387. }
  388. p:nth-child(4){
  389. text-align: center;
  390. width:172px;
  391. }
  392. }
  393. .table-list-box-two{
  394. width:755px;
  395. height:70px;
  396. border:1px solid #e0e0e0;
  397. margin:0 auto;
  398. display: flex;
  399. p{
  400. color:#333;
  401. font-size:16px;
  402. line-height:70px;
  403. }
  404. p:nth-child(1){
  405. text-align: center;
  406. width:170px;
  407. }
  408. p:nth-child(2){
  409. text-align: center;
  410. width:148px;
  411. }
  412. p:nth-child(3){
  413. text-align: center;
  414. flex: 1;
  415. }
  416. p:nth-child(4){
  417. text-align: center;
  418. width:172px;
  419. }
  420. }
  421. }
  422. }
  423. }
  424. }
  425. </style>