heyang 1 year ago
parent
commit
758858c2a7

BIN
images/img_bg_qpgl.png


+ 342 - 0
pages/gasBottle/gasManage/gasManage.vue

@@ -0,0 +1,342 @@
+<!-- 用气管理 -->
+<template>
+    <view id="register">
+		<view class="register_li">
+			<view class="register_li_min" @click="handleClick('stockList')">
+				<view>库存列表</view>
+				<view></view>
+				<img src="@/pages_manage/images/icon_04.png">
+			</view>
+			<view class="register_li_min" @click="handleClick('earlyWarning')" style="border: none;">
+				<view>报警记录</view>
+				<view ><i class="sirenNum">{{sirenNum}}</i></view>
+				<img src="@/pages_manage/images/icon_04.png">
+			</view>
+		</view>
+		<view v-if="dataList.length>0" class="small_title" @click="handleClick('useRecord')">使用记录<img src="@/pages_manage/images/icon_wdwg_gd.png"></view>
+		<view v-if="dataList.length>0" class="register_li2">
+			<viwe class="register_li2_min" @tap="goInfo(item)" v-for="(item,index) in dataList" :key="index">
+				<view class="register_li2_t">{{item.gasName}}-{{item.levelName}}({{item.sizeName}})</view>
+				<view class="register_li2_b" style="border:none">
+					<img src="@/pages_manage/images/Version3.0/icon_qpgl_syl.png">
+					<view>使用量: {{item.usageAmount==null?'-':item.usageAmount}}Mpa</view>
+				</view>
+				<view class="register_li2_b2" style="border-bottom: 1rpx solid #f5f5f5;">
+					<img src="@/pages_manage/images/Version2.2/icon_wtzg_sj.png">
+					<view>使用时间: {{item.startTime==null?'-':item.startTime}} - {{item.endTime==null?'-':item.endTime}}</view>
+				</view>
+			</viwe>
+		</view>
+		<view class="btn">
+			<view class="btn_l" @click="handleClick('gasEnter')">气瓶入库</view>
+			<view class="btn_r" @click="handleClick('QRcode')">使用</view>
+		</view>
+	</view>
+</template>
+
+<script>
+    import {useRecordList,listuseRecordByUserId,getUserApplyCount,warningNoticeLogList,useRegisterDetail,getDicts,airbottleStockFindByBeaconTag,airbottleUsageRecordList} from '@/api/index.js'
+	import { config } from '@/api/request/config.js'
+    export default {
+        data() {
+            return {
+				form:{
+					name:'',
+				},
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:5,
+				},
+				dataList:[],
+				yqCount:null,
+				zgCount:null,
+				electronicTag:'',
+				sirenNum:0,//气瓶预警数量
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+            }
+        },
+        onLoad(option) {
+
+        },
+        onShow(){
+
+        },
+		mounted() {
+			this.warningNoticeLogList()
+			this.gasBottleSpecificationFun()
+			this.gasBottleLevelFun()
+			this.getList();
+		},
+        methods: {
+
+			handleClick(doType) {
+				let _this=this;
+				if(doType=='stockList'){//库存列表
+					uni.redirectTo({
+					    url:'/pages/gasBottle/stockList/stockList'
+					});
+				}else if(doType=='earlyWarning'){//预警记录
+					uni.navigateTo({
+					    url:'/pages/earlyWarningManage/earlyWarningList'
+					});
+				}else if(doType=='gasEnter'){//气瓶入库
+					uni.navigateTo({
+					    url:'/pages/gasBottle/stockList/storageAdd'
+					});
+				}if(doType=='useRecord'){//使用记录
+					uni.navigateTo({
+					    url:'/pages/gasBottle/gasManage/useRecordList'
+					});
+				}else if(doType=='QRcode'){//使用
+					uni.scanCode({
+						onlyFromCamera: true,
+						success: function (res) {
+							_this.getBeaconTag(res.result)
+						}
+					});
+
+				}
+
+
+			},
+			//气瓶规格
+			async gasBottleSpecificationFun(){
+				const {data} = await getDicts('gasBottleSpecification');
+				if(data.code == 200){
+				  uni.setStorageSync('gasBottleSpecification', data.data)
+				}
+			},
+			//气瓶级别 
+			async gasBottleLevelFun(){
+				const {data} = await getDicts('gasBottleLevel');
+				if(data.code == 200){
+				   uni.setStorageSync('gasBottleLevel', data.data)
+				}
+			},
+			//使用记录跳转详情
+			goInfo(d){
+				uni.navigateTo({
+				    url:'/pages/gasBottle/stockList/useRecordDetail?id='+d.id
+				});
+			},
+			async getBeaconTag(result){
+				let _this=this;
+				const {data} = await airbottleStockFindByBeaconTag({BeaconTag:result});
+				if(data.code==200){
+					uni.navigateTo({
+					    url:'/pages/gasBottle/gasUse/gasUse?beaconTag='+result
+					});
+					
+				}
+			},
+			//气瓶预警
+			async warningNoticeLogList(){
+				let self = this;
+				const {data} = await warningNoticeLogList();
+				if(data.code==200){
+					this.sirenNum=data.data.total;
+				}
+			},
+			//获取使用记录列表
+			async getList(){
+				let _this = this;
+				const {data} = await airbottleUsageRecordList(_this.getData)
+				if(data.code==200){
+					for(let i=0;i<data.data.records.length;i++){
+					  for(let b=0;b<this.gasBottleSpecification.length;b++){
+							if(this.gasBottleSpecification[b].dictValue==data.data.records[i].size){
+								data.data.records[i].sizeName=this.gasBottleSpecification[b].dictLabel
+							}	
+					  }
+					  for(let t=0;t<this.gasBottleLevel.length;t++){
+						if(this.gasBottleLevel[t].dictValue==data.data.records[i].level){
+							data.data.records[i].levelName=this.gasBottleLevel[t].dictLabel
+						}
+					  }
+									  
+					}
+					_this.dataList=data.data.records
+				}
+			},
+
+        },
+		
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #register{
+        height:auto;
+        width:100%;
+        display flex;
+        flex-direction column;
+		padding-bottom: 220rpx;
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				view{
+					line-height:100rpx;
+				}
+				view:nth-child(1){
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height:100rpx;
+				}
+				view:nth-child(2){
+					flex:1;
+					color: #0183FA;
+					text-align: right;
+					margin-right: 38rpx;
+					.sirenNum{
+						height: 40rpx;
+						display: inline-block;
+						font-size: 28rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #fff;
+						background: #D40000;
+						border-radius: 50%;
+						line-height: 40rpx;
+						text-align: center;
+						
+					}
+				}
+				
+				>img{
+					width: 12rpx;
+					height: 24rpx;
+				}
+			}
+		}
+		.small_title{
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #999999;
+			line-height: 100rpx;
+			margin: 0 40rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			>img{
+				width: 24rpx;
+				height: 24rpx;
+			}
+		}
+
+		.register_li2{
+			background #fff;
+			border-radius:20rpx;
+			margin:0 20rpx 0;
+			padding:0 20rpx;
+			box-sizing: border-box;
+			.register_li2_min{
+				.register_li2_t{
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 28rpx;
+					margin-top: 28rpx;
+				}
+				.register_li2_b{
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+					margin-top: 42rpx;
+					padding-bottom: 28rpx;
+					border-bottom: 1rpx solid #f5f5f5;
+					>img{
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 10rpx;
+					}
+					>view{
+						font-size: 24rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+						line-height: 26rpx;
+					}
+					>view:nth-of-type(1){
+						width: 180rpx;
+					}
+					>view:nth-child(2){
+					}
+				}
+				.register_li2_b2{
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+					padding-bottom: 28rpx;
+
+					>img{
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 10rpx;
+					}
+					>view{
+						font-size: 24rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+						line-height: 26rpx;
+					}
+					>view:nth-child(1){
+						width: 200rpx;
+					}
+					>view:nth-child(2){
+						flex: 1;
+					}
+				}
+			}
+
+		}
+		/* 按钮 */
+		.btn{
+			display: flex;
+			position: fixed;
+			bottom: 40rpx;
+			left: 50rpx;
+			.btn_l{
+				width: 324rpx;
+				height: 100rpx;
+				background: #F28E26;
+				border-radius: 50rpx 0rpx 0rpx 50rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 100rpx;
+				text-align: center;
+			}
+			.btn_r{
+				width: 324rpx;
+				height: 100rpx;
+				background: #0183FA;
+				border-radius: 0rpx 50rpx 50rpx 0rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 100rpx;
+				text-align: center;
+			}
+		}
+	}
+	/deep/.input-value-border{
+		display :none !important;
+	}
+</style>

+ 416 - 0
pages/gasBottle/gasManage/useRecordList.vue

@@ -0,0 +1,416 @@
+<!--库存列表-->
+<template>
+    <view id="gasRecycle">
+		<view class="top-picker-max-box">
+		    <view class="top-picker-box">
+		        <picker @change="facultyChange" :value="facultyIndex" :range="facultyArray">
+		            <view class="picker-view">
+		                <view>{{!facultyIndex?'学院':facultyArray[facultyIndex]}}</view>
+		                <img class="picker-img" src="@/pages_manage/images/icon_06.png" alt="">
+		            </view>
+		        </picker>
+		    </view>
+		    <view class="top-picker-box">
+				<picker mode="date"  @change="startChange($event)">
+					<view class="picker-view">
+					    <view>{{!getData.startTime?'开始时间':getData.startTime}}</view>
+					    <img class="picker-img" src="@/pages_manage/images/icon_06.png" alt="">
+					</view>
+				</picker>
+		    </view>
+		    <view class="top-picker-box">
+		        <picker mode="date"  @change="endChange($event)">
+		        	<view class="picker-view">
+		        	    <view>{{!getData.endTime?'结束时间':getData.endTime}}</view>
+		        	    <img class="picker-img" src="@/pages_manage/images/icon_06.png" alt="">
+		        	</view>
+		        </picker>
+		    </view>
+		</view>
+		<view class="search">
+			<view class="search_t">
+				<view class="search_n">
+					<input v-model="getData.searchValue"    type="text" placeholder="实验室名称/房间号">
+					<img @click="searchBtn()"  class="icon_img" src="@/pages_manage/images/icon_aqjc_ss.png"/>
+				</view>
+			</view>
+		</view>
+		<scroll-view scroll-y @scrolltolower="scrollGet" class="scroll-box">
+		    <view class="for-big-box" v-for="(item,index) in dataList" :key="index">
+		        <view class="for-time-p">{{item.gasName}}-{{item.levelName}}({{item.sizeName}})</view>
+		        <img class="for-back-img" src="@/pages_manage/images/Version2.2/for_min_bg.png">
+		        <view class="for-box" @click="goInfo(item)">
+		        	<view class="for-box_t">使用量:{{item.usageAmount==null?'-':item.usageAmount}}Mpa</view>
+		        	<view class="for-box_b">
+						<img class="for-back-img" src="@/pages_manage/images/Version3.0/icon_qpgl_syl.png">
+						<text>使用人: {{item.operator==null?'':item.operator}}</text>
+						<img class="for-back-img" src="@/pages_manage/images/Version2.2/icon_wtzg_sj.png">
+						<text>使用时间: {{item.startTime==null?'-':item.startTime}} - {{item.endTime==null?'-':item.endTime}}</text>
+					</view>
+		        </view>
+		    </view>
+			<view class="get-null-box" v-if="total==0">暂无更多数据</view>
+		</scroll-view>
+		<view class="sub_btn" @click="subBtn()">新增入库</view>
+	</view>
+</template>
+
+<script>
+	import { gasList,listDepartments,airbottleUsageRecordList } from '@/api/index.js'
+    export default {
+
+        name: "gasRecycle",
+        data() {
+            return {
+
+				pageType:0,
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:20,
+					collegeId:'',
+					startTime:'',
+					endTime:'',
+					searchValue:'',
+				},
+				userType:uni.getStorageSync('userType'),
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+                dataList:[],
+				noData:false,
+				total:0,
+				//院系选择器数据
+				facultyList:[],
+				facultyArray:[],
+				facultyIndex:"",
+            }
+        },
+        onLoad() {
+			
+        },
+        onShow() {
+
+        },
+		mounted(){
+			this.getList();
+			this.listDepartments();
+
+		},
+        methods: {
+			goInfo(d){
+
+				uni.navigateTo({
+				    url:'/pages_manage/gasList/gasListDetail?id='+d.id
+				});
+			},
+			//获取院系
+			async listDepartments(){
+			    const {data} = await listDepartments();
+			    if(data.code == 200){
+			        let list = [];
+			        for(let i=0;i<data.data.length;i++){
+			            list.push(data.data[i].deptName)
+			        }
+			        this.facultyArray = list;
+			        list.unshift('全部院系');
+			        this.facultyList = data.data;
+			        this.facultyList.unshift({deptName:"全部院系", deptId:""})
+			    }
+			},
+			//学院选中
+			facultyChange: function(e) {
+				if(this.facultyArray[0]){
+					this.facultyIndex = parseInt(e.target.value);
+					this.getData.collegeId=this.facultyList[e.target.value].deptId;
+					this.getList()
+				}
+			},
+			//开始时间选中事件
+			startChange(e){
+				if(new Date(e.target.value).getTime()>=new Date(this.getData.endTime).getTime()){
+					 uni.showToast({
+						title: '结束时间不能小于开始时间',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+				}else{
+					this.$set(this.getData,'startTime',e.target.value);
+				}
+			},
+			//结束时间选中事件
+			endChange(e){
+				if(new Date(this.getData.startTime).getTime()>=new Date(e.target.value).getTime()){
+					 uni.showToast({
+						title: '结束时间不能小于开始时间',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+				}else{
+					this.$set(this.getData,'endTime',e.target.value);
+					this.getList()
+				}
+			},
+			//实验室房间号搜索
+			searchBtn(){
+				
+			},
+			//新增入库
+			subBtn(){
+				uni.redirectTo({
+					url:'/pages_student/useGasApply/useGasApplyAdd?status=0'
+				});
+			},
+			//滚动加载事件
+			scrollGet(){
+			   let self=this;
+			   if(self.total/self.getData.pageSize<=self.getData.pageNum){
+			   	  console.log('没有更多数据!')
+			   }else{
+			   	  setTimeout(function(){
+			   		  self.getData.pageNum += 1;
+			   		  self.getList();
+			   	  },1000)
+			   
+			   }
+			},
+			//获取列表数据
+				async getList(){
+				   let _this = this;
+
+				    const {data} = await airbottleUsageRecordList(_this.getData);
+				    if(data.code==200){
+						for(let i=0;i<data.data.records.length;i++){
+						  for(let b=0;b<this.gasBottleSpecification.length;b++){
+								if(this.gasBottleSpecification[b].dictValue==data.data.records[i].size){
+									data.data.records[i].sizeName=this.gasBottleSpecification[b].dictLabel
+								}	
+						  }
+						  for(let t=0;t<this.gasBottleLevel.length;t++){
+							if(this.gasBottleLevel[t].dictValue==data.data.records[i].level){
+								data.data.records[i].levelName=this.gasBottleLevel[t].dictLabel
+							}
+						  }
+										  
+						}
+						let res = data.data.records;
+						this.total=data.data.total;
+						if(res && res.length>0){
+							if(_this.getData.pageNum==1){
+								_this.dataList=res;
+							}else{
+								_this.dataList=_this.dataList.concat(res);
+							}
+						}else{
+							_this.noData=true;
+						}
+				    }
+				},
+
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: 100%;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column
+        overflow hidden;
+		.top-picker-max-box{
+		    display:flex;
+		    padding:0 20rpx;
+		    background #fff
+		    border-bottom:1rpx solid #E0E0E0;
+		    .top-picker-box{
+		        line-height:80rpx;
+		        height:80rpx;
+		        .picker-view{
+		            display flex
+		            view{
+		                display:block;
+		                overflow:hidden;
+		                text-overflow:ellipsis;
+		                white-space:nowrap;
+		                font-size:28rpx;
+		            }
+		            .picker-img{
+		                width:24rpx;
+		                height:13rpx;
+		                margin-top:36rpx;
+		                margin-left:13rpx;
+		            }
+		        }
+		    }
+		    .top-picker-box:nth-child(1){
+		        text-align left
+		        width:320rpx;
+		        .picker-view{
+		            view{
+		                max-width:260rpx;
+		            }
+		        }
+		    }
+		    .top-picker-box:nth-child(2){
+		        text-align left
+		        width:215rpx;
+		        .picker-view{
+		            view{
+		                max-width:156rpx;
+		            }
+		        }
+		    }
+		    .top-picker-box:nth-child(3){
+		        text-align right
+		        width:195rpx;
+		        .picker-view{
+		            view{
+		                flex:1;
+		
+		            }
+		        }
+		    }
+		}
+		/* 搜索 */
+		.search{
+			.search_t{
+				background: #FFFFFF;
+				padding: 20rpx;
+				box-sizing: border-box;
+				.search_n{
+					width: 710rpx;
+					height: 80rpx;
+					border: 1px solid #E0E0E0;
+					border-radius: 40rpx;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					padding:0 40rpx;
+					box-sizing: border-box;
+					>input{
+						width: 640rpx;
+						font-size: 24rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #CCCCCC;
+						line-height: 30rpx;
+					}
+					>img{
+						width: 30rpx;
+						height: 30rpx;
+					}
+				}
+
+			}
+			.search_b{
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				margin: 20rpx 0;
+				>text{
+					display: inline-block;
+					width: 200rpx;
+					height: 60rpx;
+					background: #FFFFFF;
+					border-radius: 30rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 60rpx;
+					text-align: center;
+					margin-right: 20rpx;
+				}
+			}
+		}
+		
+        .scroll-box{
+        // flex:1;
+         overflow-y scroll;
+		 margin-top: 20rpx;
+
+         .for-big-box:last-child{
+             margin-bottom:180rpx;
+         }
+         .for-big-box{
+             margin:0 20rpx 20rpx;
+             overflow hidden
+             border-bottom-left-radius :20rpx;
+             border-bottom-right-radius :20rpx;
+             .for-time-p{
+                 background #fff
+                 line-height:87rpx;
+                 font-size:30rpx;
+                 padding:0 22rpx;
+                 border-top-left-radius:20rpx;
+                 border-top-right-radius:20rpx;
+             }
+             .for-back-img{
+                 height:30rpx;
+                 width:710rpx;
+             }
+			.for-box{
+				overflow hidden;
+				background: #fff;
+
+				padding: 0 20rpx;
+				box-sizing: border-box;
+				.for-box_t{
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 28rpx;
+					margin: 28rpx 0 40rpx 0;
+				}
+				.for-box_b{
+					display: flex;
+					>img{
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 10rpx;
+					}
+					>text{
+						font-size: 24rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+						line-height: 26rpx;
+						margin-bottom: 20rpx;
+					}
+					>text:nth-of-type(1){
+						width: 190rpx;
+					}
+				}
+			}
+		 }
+		 /*暂无数据*/
+		 .get-null-box{
+			 height:100rpx;
+			 line-height:100rpx;
+			 color:#999;
+			 text-align center
+		 }
+     }
+		/* 按钮 */
+		.sub_btn{
+			width: 650rpx;
+			height: 100rpx;
+			background: #0183FA;
+			border-radius: 20rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:30rpx;
+			z-index: 1000;
+		}
+	}
+</style>

+ 216 - 0
pages/gasBottle/gasOutstock/amendAir.vue

@@ -0,0 +1,216 @@
+<!--修改气压-->
+<template>
+    <view id="gasRecycle">
+		<view class="title">{{specificationName.airName}}-{{specificationName.gasLevel}}</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>余量:</view>
+				<input v-model="item.location" disabled  type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>学院:</view>
+				<input v-model="item.location" disabled  type="text" >
+			</view>
+			<view class="register_li_min" style="border: none;">
+				<view>实验地点:</view>
+				<input v-model="item.location" disabled  type="text" >
+			</view>
+		</view>
+		<view class="register_li2">
+			<view class="register_li_min">
+				<view></view>
+				<view>实际气压:</view>
+				<input v-model="form.afterEdit"   type="text" placeholder="请输入实际气压">
+			</view>
+		</view>
+		<view  class="sub_btn" @click="submitForm()">提交</view>
+	</view>
+</template>
+
+<script>
+	import { gasBottleError } from '@/api/index.js'
+	import { config } from '@/api/request/config.js'
+    export default {
+
+        name: "gasRecycle",
+        data() {
+            return {
+				baseUrl:config.base_url,
+				pageType:0,
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:20,
+				},
+				userType:uni.getStorageSync('userType'),
+				form:{
+
+				},
+                dataList:[],
+				imgList:[],
+				item:{},
+				item2:{},
+				specificationName:{},
+            }
+        },
+        onLoad(option) {
+			if(option.item){
+				this.item=JSON.parse(decodeURIComponent(option.item));
+				this.item2=JSON.parse(decodeURIComponent(option.item2));
+				this.specificationName=JSON.parse(decodeURIComponent(option.specificationName));
+			}
+			
+        },
+        onShow() {
+
+        },
+		mounted(){
+
+
+		},
+        methods: {
+			//提交
+			async submitForm(){
+				let _this = this;
+				_this.form.storageId=_this.item.id
+				_this.form.location=_this.item.location
+				_this.form.locationId=_this.item.locationId
+				_this.form.beforeEdit=_this.item2.beforeUse
+				const {data} = await gasBottleError(_this.form);
+				if(data.code == 200){
+				    uni.showToast({
+				        title: '修改气压成功!',
+				        icon:"none",
+				        mask:true,
+				        duration: 2000
+				    });
+				    setTimeout(function(){
+				       uni.redirectTo({
+				            url: '/pages_manage/gasManage/gasManage'
+				        });
+				    },2000);
+				}
+			},
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: auto;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column;
+        overflow hidden;
+		padding-bottom: 400rpx;
+		.title{
+			width: 750rpx;
+			height: 100rpx;
+			background: #FFFFFF;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 100rpx;
+			padding-left: 40rpx;
+		}
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+			}
+
+		}
+		.register_li2{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view:nth-child(1){
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+				.issue_img{
+					width: 210rpx;
+					height: 210rpx;
+					border-radius: 10rpx;
+					margin:36rpx 0 20rpx 280rpx;
+				}
+			}
+		}
+		/* 按钮 */
+		.sub_btn{
+			width: 650rpx;
+			height: 100rpx;
+			background: #0183FA;
+			border-radius: 20rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:30rpx;
+		}
+
+
+	}
+</style>

+ 279 - 0
pages/gasBottle/gasOutstock/gasOutstock.vue

@@ -0,0 +1,279 @@
+<!--出库确认-->
+<template>
+    <view id="gasRecycle">
+		<view class="title">{{form.gasName}}-{{form.levelName}}({{form.sizeName}})</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>学院:</view>
+				<input v-model="form.collegeName" disabled  type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>实验地点:</view>
+				<input v-model="form.subjectName" disabled  type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>实际气压值:</view>
+				<input v-model="form.gasPressure" placeholder="请输入实际气压值"  type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>最后使用人:</view>
+				<input v-model="form2.user" disabled  type="text" >
+			</view>
+			<!-- 使用时间 -->
+			<view class="register_li_min" style="border:none;">
+				<view>最后使用时间:</view>
+				<input v-model="form2.lastUseTime" disabled  type="text" >
+			</view>
+		</view>
+		<view  class="sub_btn" @click="submitForm()">确认出库</view>
+	</view>
+</template>
+<script>
+	import { gasDetail,gasDetailRecord,gasBottleErrorList,gasStorageOut,airbottleStockFindById,airbottleStockOut} from '@/api/index.js'
+	import { config } from '@/api/request/config.js'
+    export default {
+		
+        name: "gasRecycle",
+        data() {
+            return {
+				baseUrl:config.base_url,
+				pageType:0,
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:1,
+					storageId:'',
+				},
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+				form:{},
+				id:'',
+            }
+        },
+        onLoad(option) {
+			if(option.id){
+				this.id=option.id;
+			}
+        	
+        },
+        onShow() {
+			
+        },
+		mounted(){
+			this.getInfo();
+		},
+        methods: {
+			
+			//查询详情
+			async getInfo(){
+			  let self = this;
+			  const {data} = await airbottleStockFindById({id:this.id});
+			  if(data.code == 200){
+				for(let b=0;b<this.gasBottleSpecification.length;b++){
+					if(this.gasBottleSpecification[b].dictValue==data.data.size){
+						data.data.sizeName=this.gasBottleSpecification[b].dictLabel
+					}										
+				}
+				for(let t=0;t<this.gasBottleLevel.length;t++){
+					if(this.gasBottleLevel[t].dictValue==data.data.level){
+						data.data.levelName=this.gasBottleLevel[t].dictLabel
+					}
+				}
+				  this.form=data.data;
+			  }
+			},
+			//提交
+			async submitForm(){
+				let _this = this;
+				let obj={
+					id:this.form.id,
+					gasPressure:this.form.gasPressure,
+				}
+				const {data} = await airbottleStockOut(obj);
+				if(data.code == 200){
+				    uni.showToast({
+				        title: '出库成功!',
+				        icon:"none",
+				        mask:true,
+				        duration: 2000
+				    });
+				    setTimeout(function(){
+				       uni.redirectTo({
+				            url: '/pages/gasBottle/gasManage/gasManage'
+				        });
+				    },2000);
+				}
+			},
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: auto;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column
+        overflow hidden;
+		padding-bottom: 300rpx;
+		.title{
+			width: 750rpx;
+			height: 100rpx;
+			background: #FFFFFF;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 100rpx;
+			padding-left: 40rpx;
+		}
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				>view:nth-child(2){
+					flex: 1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.mistake{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #D60000;
+					margin-left: 40rpx;
+				}
+				
+				
+			}
+			/* 时间 */
+			.register_li_min2{
+				margin:0 26rpx;
+				border-bottom: 1px solid #f5f5f5;
+				height: 100rpx;
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				>view:nth-child(1){
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+					margin-right: 46rpx;
+				}
+				.picker-text{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+					width: 210rpx;
+					
+				}
+				>view:nth-child(2){
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+				}
+				.picker-text2{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+					width: 210rpx;
+					text-align: right;
+				}
+			}
+			
+			.meter_img{
+				margin:0 26rpx;
+				display flex;
+				justify-content: space-between;
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				>img{
+					width: 150rpx;
+					height: 150rpx;
+					border-radius: 10rpx;
+					margin:42rpx 0 20rpx 0;
+				}
+			}
+		}
+		/* 按钮 */
+		.sub_btn{
+			width: 650rpx;
+			height: 100rpx;
+			background: #0183FA;
+			border-radius: 20rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:30rpx;
+			z-index: 1000;
+		}
+		.sub_btn2{
+			width: 650rpx;
+			height: 100rpx;
+			border: 2rpx solid #0072DB;
+			border-radius: 20rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #0183FA;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:158rpx;
+			z-index: 1000;
+		}
+		
+	}
+</style>

+ 537 - 0
pages/gasBottle/gasUse/gasUse.vue

@@ -0,0 +1,537 @@
+<!--气瓶使用-->
+<template>
+    <view id="gasRecycle">
+		<view class="title">{{form.gasName}}-{{form.levelName}}({{form.sizeName}})</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>余量:</view>
+				<input v-model="form.gasPressure" disabled  type="text" style="color: #D60000;">
+			</view>
+			<view class="register_li_min">
+				<view>学院:</view>
+				<input v-model="form.collegeName" disabled  type="text" >
+			</view>
+			<view class="register_li_min" style="border: none;">
+				<view>实验地点:</view>
+				<input v-model="form.subjectName" disabled  type="text" >
+			</view>
+		</view>
+		<view class="register_li2">
+			<view class="period" v-if="pageType==0">
+				<view class="period_l"><i>*</i>使用时间</view>
+				<view class="period_r">
+					<picker mode="date" @change="startChange(form,$event)" :disabled="isCustom">
+						<input class="picker-text"  disabled type="text" v-model="form.startTime" placeholder="开始时间">
+					</picker>
+					<view>至</view>
+					<picker mode="date"  @change="endChange(form,$event)" :disabled="isCustom"> 
+						<input class="picker-text2" disabled type="text" v-model="form.endTime" placeholder="结束时间">
+					</picker>
+				</view>
+			</view>
+			<view class="register_li_min" v-if="pageType==0">
+				<view>*</view>
+				<view>当前压力:</view>
+				<input v-model="form.currentPressure" @change="calculateAmountFun()" placeholder="请输入当前压力值"  type="text" >
+			</view>
+			<view class="register_li_min" v-if="pageType==0">
+				<view>*</view>
+				<view>本次使用量:</view>
+				<input v-model="form.usageAmount" placeholder="--" type="text" >
+			</view>
+			<view class="up-img-box">
+				<view class="asterisk">*</view>
+			    <view class="title-view">气表照片:</view>
+			    <view class="img-max-box">
+			        <view class="img-box" v-for="(item,index) in imgList" :key="index">
+			            <img class="img-data" :src="baseUrl+item">
+			            <img class="position-img" src="@/pages_manage/images/icon_ssp_closure.png" @click="delImg(index)">
+			        </view>
+			        <img class="add-button" src="@/pages_manage/images/icon_07.png" @click="selectImage" v-if="imgList.length<1">
+			        <img class="add-button" src="@/pages_manage/images/Version3.0/img_sydj_sltp.png" >
+			    </view>
+			</view>
+		</view>
+		<view class="btn" v-if="pageType==0">
+			<view class="btn_l" @click="handleClick('gasApply')">气瓶出库</view>
+			<view class="btn_r" @click="submitForm(1)">登记完成</view>
+		</view>
+		<view v-if="pageType==1" class="sub_btn" @click="submitForm(2)">提交余量不符并使用</view>
+	</view>
+</template>
+
+<script>
+	import { useRegisterDetail,useRegisterAdd,airbottleStockFindByBeaconTag,airbottleUsageRecordAdd} from '@/api/index.js'
+	import { config } from '@/api/request/config.js'
+    export default {
+		
+        name: "gasRecycle",
+        data() {
+            return {
+				baseUrl:config.base_url,
+				pageType:0,//0气瓶使用 1余量不符
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:20,
+					isCg:0,
+					zgStatus:"",
+				    getType:true,
+				    nullDataType:true,
+				},
+				userType:uni.getStorageSync('userType'),
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+				form:{
+					location:'10map'
+				},
+                dataList:[],
+				imgList:[],
+				specificationName:{},
+				currentStatus:null,
+				beaconTag:'',
+            }
+        },
+        onLoad(option) {
+			if(option.beaconTag){
+				this.beaconTag=option.beaconTag;
+			}
+			
+        },
+        onShow() {
+
+        },
+		mounted(){
+		  this.getInfo()
+		},
+        methods: {
+			//点击事件
+			handleClick(doType) {
+				let _this=this;
+			   if(doType=='inconformity'){//余量不符
+				 _this.pageType=1;
+			   }else if(doType=='gasApply'){//气瓶出库
+				   uni.redirectTo({
+				   	 url:'/pages/gasBottle/gasOutstock/gasOutstock?id='+this.form.id
+				   })
+			   }
+			},
+			//输入当前压力值后计算本次使用量
+			calculateAmountFun(){
+				let num=parseInt(this.form.gasPressure)-parseInt(this.form.currentPressure)
+				if(num<=0){
+					num=0;
+				}
+				this.$set(this.form,'usageAmount',num)
+			},
+			//开始时间选中事件
+			startChange(form,e){
+				if(new Date(e.target.value).getTime()>new Date(this.form.endTime).getTime()){
+					 uni.showToast({
+						title: '结束时间不能小于开始时间',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+				}else{
+					this.$set(this.form,'startTime',e.target.value);
+				}
+			},
+			//结束时间选中事件
+			endChange(form,e){
+				if(new Date(this.form.startTime).getTime()>new Date(e.target.value).getTime()){
+					 uni.showToast({
+						title: '结束时间不能小于开始时间',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+				}else{
+					this.$set(this.form,'endTime',e.target.value);
+				}
+			},
+
+			// 图片上传
+			selectImage(index) {
+			    let self = this;
+			    if(self.imgList.length>1){
+			        uni.showToast({
+			            title: '最多上传1张图片',
+			            icon:"none",
+			            mask:true,
+			            duration: 2000
+			        });
+			        return
+			    }
+			    wx.chooseImage({
+			        count: 1,
+			        sizeType: ["original", "compressed"],
+			        sourceType: ["album", "camera"],
+			        success: function(res) {
+			            let tempFilePaths = res.tempFilePaths[0];
+			            self.uploadImg(tempFilePaths,index);
+			        }
+			    });
+			},
+			async uploadImg(tempFilePaths,index){
+			    var self = this;
+			    uni.showLoading({
+			        title: '上传中',
+			        mask: true
+			    });
+			    uni.uploadFile({
+			        url: config.base_url+'/base/file/upload', //仅为示例,非真实的接口地址
+			        header:{'Authorization':uni.getStorageSync('token')},
+			        filePath: tempFilePaths,
+			        name: 'file',
+			        formData: {
+			            'user': 'test'
+			        },
+			        success: (uploadFileRes) => {
+			            let res = JSON.parse(uploadFileRes.data);
+						if(res.code == 200){
+
+							self.imgList.push(res.data.url);
+
+						}else{
+							uni.showToast({
+								title: res.msg,
+								icon:"none",
+								mask:true,
+								duration: 2000
+							});
+						}
+			        },
+			        fail: err => {},
+			        complete: () => {
+			            uni.hideLoading()
+			        }
+			    });
+			},
+			//删除图片
+			delImg(index){
+			    this.imgList.splice(index,1);
+			},
+			async getInfo(){
+				let _this=this;
+				const {data} = await airbottleStockFindByBeaconTag({BeaconTag:_this.beaconTag});
+				if(data.code==200){
+					for(let b=0;b<this.gasBottleSpecification.length;b++){
+						if(this.gasBottleSpecification[b].dictValue==data.data.size){
+							data.data.sizeName=this.gasBottleSpecification[b].dictLabel
+						}										
+					}
+					for(let t=0;t<this.gasBottleLevel.length;t++){
+						if(this.gasBottleLevel[t].dictValue==data.data.level){
+							data.data.levelName=this.gasBottleLevel[t].dictLabel
+						}
+					}
+					_this.form=data.data;
+					
+				}
+			},
+			//提交
+			async submitForm(type){
+				let _this = this;
+				if(_this.imgList.length<=0){
+					uni.showToast({
+						title: '请选择气表图片!',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				this.$set(this.form,'usageImg',this.imgList.join(','));
+				this.$set(this.form,'gasPressure',this.form.currentPressure);
+				
+				const {data} = await airbottleUsageRecordAdd(this.form);
+				if(data.code == 200){
+				    uni.showToast({
+				        title: '提交成功',
+				        icon:"none",
+				        mask:true,
+				        duration: 2000
+				    });
+				    setTimeout(function(){
+				       uni.redirectTo({
+				            url: '/pages_manage/gasManage/gasManage'
+				        });
+				    },2000);
+				}
+
+			},
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: auto;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column;
+        overflow hidden;
+		padding-bottom: 220rpx;
+		.title{
+			width: 750rpx;
+			height: 100rpx;
+			background: #FFFFFF;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 100rpx;
+			padding-left: 40rpx;
+		}
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.inconformity{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #D60000;
+					margin-left: 40rpx;
+				}
+			}
+
+		}
+		.register_li2{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.period{
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				margin: 0 26rpx;
+				border-bottom: 1px solid #f5f5f5;
+				.period_l{
+					width: 146rpx;
+					font-size: 30rpx;
+					font-family: PingFang SC-Medium, PingFang SC;
+					font-weight: 400;
+					color: #333333;
+					line-height: 42rpx;
+					text-align: left;
+					>i{
+						display: inline-block;
+						color: #f00;
+						line-height: 28rpx;
+						margin-right: 12rpx;
+					}
+				}
+				.period_r{
+					width: 490rpx;
+					height: 80rpx;
+					border-radius: 10rpx;
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+					.picker-text{
+						font-size: 30rpx;
+						font-family: PingFang SC-Medium, PingFang SC;
+						font-weight: 400;
+						color: #333;
+						line-height: 80rpx;
+						width: 230rpx;
+						text-align: center;
+					}
+					.picker-text2{
+						font-size: 30rpx;
+						font-family: PingFang SC-Medium, PingFang SC;
+						font-weight: 400;
+						color: #333;
+						line-height: 80rpx;
+						width: 230rpx;
+						text-align: center;
+					}
+				}
+			}
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view:nth-child(1){
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+			}
+			/* 照片 */
+			.up-img-box{
+			    display flex
+			    margin:34rpx 26rpx;
+				.asterisk{
+					padding-top:30rpx;
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+			    .title-view{
+			        width:150rpx;
+			        line-height:80rpx;
+			        font-size: 30rpx;
+			        color:#333;
+			    }
+			    .img-max-box{
+			        width:480rpx;
+					display: flex;
+			        .img-box{
+			            display inline-block
+			            height:150rpx;
+			            width:150rpx;
+			            position relative
+			            margin:0 20rpx 20rpx 0;
+			            .img-data{
+			                height:150rpx;
+			                width:150rpx;
+			            }
+			            .position-img{
+			                position absolute
+			                right:0;
+			                top:0;
+			                width:36rpx;
+			                height:36rpx;
+			            }
+			        }
+			        .add-button{
+			            display inline-block
+			            height:150rpx;
+			            width:150rpx;
+						margin-right: 20rpx;
+			        }
+			    }
+			}
+
+		}
+		/* 按钮 */
+		.btn{
+			display: flex;
+			position: fixed;
+			bottom: 40rpx;
+			left: 50rpx;
+			.btn_l{
+				width: 324rpx;
+				height: 100rpx;
+				background: #F28E26;
+				border-radius: 50rpx 0rpx 0rpx 50rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 100rpx;
+				text-align: center;
+			}
+			.btn_r{
+				width: 324rpx;
+				height: 100rpx;
+				background: #0183FA;
+				border-radius: 0rpx 50rpx 50rpx 0rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 100rpx;
+				text-align: center;
+			}
+		}
+		/* 按钮 */
+		.sub_btn{
+			width: 650rpx;
+			height: 100rpx;
+			background: #0183FA;
+			border-radius: 20rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:30rpx;
+			z-index: 1000;
+		}
+		/* 空 */
+		.empty{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+
+			>img{
+				width: 100rpx;
+				height: 100rpx;
+				margin-top: 124rpx;
+				margin-left: 300rpx;
+			}
+			>view{
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
+				line-height: 30rpx;
+				text-align: center;
+				margin-top: 42rpx;
+				padding-bottom: 106rpx;
+			}
+		}
+	}
+</style>

+ 217 - 0
pages/gasBottle/stockList/gasListBinding.vue

@@ -0,0 +1,217 @@
+<!--气瓶列表-->
+<template>
+    <view id="gasRecycle">
+		<view class="title">{{form.gasName}}-{{form.levelName}}({{form.sizeName}})</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>*</view>
+				<view>电子标签:</view>
+				<input v-model="form.beaconTag"   type="text" placeholder="请输入电子标签ID">
+				<img @click.stop="saoCode"  class="code_img" src="@/pages_manage/images/Version2.2/icon_aqjc_sm.png">
+			</view>
+		</view>
+		<view  class="sub_btn" @click="getBinding()">确认绑定</view>
+	</view>
+</template>
+
+<script>
+	import { gasTagBinding,airbottleBeaconUpdate} from '@/api/index.js'
+    export default {
+        name: "gasRecycle",
+        data() {
+            return {
+				pageType:0,
+				form:{
+					id:'',
+					electronicTag:'',
+				},
+				item:{},
+            }
+        },
+        onLoad(option) {
+			if(option.form){
+				this.form=JSON.parse(decodeURIComponent(option.form));
+			}
+			
+        },
+        onShow() {
+
+        },
+		mounted(){
+
+
+		},
+        methods: {
+			async getBinding(){
+				let _this=this;
+				if(!_this.form.beaconTag){
+					uni.showToast({
+						title: '请录入电子标签码!',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				let obj={
+					id:this.form.id,
+					beaconTag:this.form.beaconTag,
+				}
+				const {data} = await airbottleBeaconUpdate(obj);
+				if(data.code==200){
+					let res = data.data;
+					if(data.code==200){
+						uni.showToast({
+							title: '绑定成功!',
+							icon:"none",
+							mask:true,
+							duration: 2000
+						});
+						uni.redirectTo({
+						     url: '/pages/gasBottle/stockList/gasListDetail?id='+this.form.id
+						 });
+					}else{
+						_this.form.electronicTag='';
+						uni.showModal({
+									showCancel:false,
+									confirmColor:'#0183FA',
+							content: '该RFID已被绑定,请重新选择 RFID标签',
+							success: function (res) {
+								if (res.confirm) {
+
+								}
+							}
+						});
+					}
+				}
+			},
+			//调用摄像头
+			saoCode(){
+				let _this = this;
+			    uni.scanCode({
+			        onlyFromCamera: true,
+			        success: function (res) {
+						_this.form.beaconTag=res.result
+						_this.getBinding();
+			        }
+			    });
+			},
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: 100%;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column
+        overflow hidden;
+		.title{
+			width: 750rpx;
+			height: 100rpx;
+			background: #FFFFFF;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 100rpx;
+			padding-left: 40rpx;
+		}
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				height: 100rpx;
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				/* border-bottom: 1px solid #F5F5F5; */
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+				view:nth-child(1){
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+				.code_img{
+					width: 30rpx;
+					height: 28rpx;
+					margin-left: 26rpx;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.binding{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #0183FA;
+					line-height: 24rpx;
+					margin-left: 24rpx;
+				}
+
+
+			}
+			.issue_li{
+				margin:34rpx 26rpx 0;
+				display flex;
+				border-bottom: 1px solid #F5F5F5;
+				view:nth-child(1){
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+				view:nth-child(2){
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+				.issue_img{
+					width: 210rpx;
+					height: 210rpx;
+					border-radius: 10rpx;
+					margin-left:250rpx;
+				}
+			}
+		}
+
+	 /* 按钮 */
+	 .sub_btn{
+	 	width: 650rpx;
+	 	height: 100rpx;
+	 	background: #0183FA;
+	 	border-radius: 20rpx;
+	 	font-size: 28rpx;
+	 	font-family: PingFang SC;
+	 	font-weight: 500;
+	 	color: #FFFFFF;
+	 	line-height: 100rpx;
+	 	text-align: center;
+	 	margin-left: 50rpx;
+	 	position: fixed;
+	 	bottom:30rpx;
+	 }
+	}
+</style>

+ 393 - 0
pages/gasBottle/stockList/gasListDetail.vue

@@ -0,0 +1,393 @@
+<!--气瓶列表-->
+<template>
+    <view id="gasRecycle">
+		<view class="title">{{form.gasName}}-{{form.levelName}}({{form.sizeName}})</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>余量:</view>
+				<input v-model="form.gasPressure" disabled  style="color: #D60000;" type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>学院:</view>
+				<input v-model="form.collegeName" disabled  type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>实验地点:</view>
+				<input v-model="form.subjectName" disabled  type="text" >
+			</view>
+			<view class="register_li_min"  style="border: none;">
+				<view>电子标签:</view>
+				<input v-model="form.beaconTag" disabled  type="text" >
+				<view class="binding" @click="binding()">更换电子标签</view>
+			</view>
+		</view>
+		<scroll-view scroll-y @scrolltolower="scrollGet" class="scroll-box">
+			<view class="small_title" @click="handleClick('useRecord')">使用记录</view>
+		    <view class="register_li2" >
+		    	<viwe class="register_li2_min" @tap="useRecordInfo(item)" v-for="(item,index) in form.dbUsageRecordList">
+		    		<view class="register_li2_t">{{item.operator}}</view>
+		    		<view class="register_li2_b">
+		    			<img src="@/pages_manage/images/Version3.0/icon_qpgl_syl.png">
+		    			<view>使用量: {{item.usageAmount}}Mpa</view>
+		    		</view>
+					<view class="register_li2_b2">
+						<img src="@/pages_manage/images/Version2.2/icon_wtzg_sj.png">
+						<view>使用时间: {{item.startTime==null?'':item.startTime}}-{{item.endTime==null?'':item.endTime}}</view>
+					</view>
+		    	</viwe>
+		    </view>
+		</scroll-view>
+		<view class="empty" v-if="pageType==4">
+			<img class="for-back-img" src="@/pages_manage/images/Version3.0/img_ysrygl_zwsj.png">
+			<view>暂无数据</view>
+		</view>
+		<view class="btn">
+			<view class="btn_l" @click="handleClick('QRcode')">使用</view>
+			<view class="btn_r" @click="handleClick('outStock')">申请出库</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {gasDetail,gasDetailRecord,airbottleStockFindById} from '@/api/index.js'
+    export default {
+
+        name: "gasRecycle",
+        data() {
+            return {
+
+				pageType:0,
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:10,
+				},
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+				form:{
+				},
+                dataList:[],
+				id:'',
+				item:{},
+				specificationName:{},
+            }
+        },
+        onLoad(option) {
+			if(option.id){
+				this.id=option.id;
+			}
+			
+
+        },
+        onShow() {
+
+        },
+		mounted(){
+		  this.getInfo();
+		  this.getList();
+		},
+        methods: {
+			
+			//滚动加载事件
+			scrollGet(){
+			    if(this.getData.getType){
+			        this.getData.pageNum += 1;
+			        this.getList();
+			    }
+			},
+			handleClick(doType) {
+				let _this=this;
+				if(doType=='outStock'){//申请出库
+					uni.navigateTo({
+					    url:'/pages/gasBottle/gasOutstock/gasOutstock?item='+encodeURIComponent(JSON.stringify(this.item))
+					});
+				}else if(doType=='QRcode'){//使用
+					uni.scanCode({
+						onlyFromCamera: true,
+						success: function (res) {
+							_this.electronicTag=res.result
+							uni.navigateTo({
+							    url:'/pages/gasBottle/gasUse/gasUse?item='+encodeURIComponent(JSON.stringify(_this.electronicTag))
+							});
+						}
+					});
+			
+				}
+			
+			},
+			//使用记录详情
+			useRecordInfo(d){
+				uni.navigateTo({
+				    url:'/pages/gasBottle/stockList/useRecordDetail?id='+d.id
+				});
+			},
+			//标签绑定
+			binding(){
+				uni.navigateTo({
+				    url:'/pages/gasBottle/stockList/gasListBinding?form='+encodeURIComponent(JSON.stringify(this.form))
+				});
+			},
+			//查询详情
+			async getInfo(){
+			  let self = this;
+			  const {data} = await airbottleStockFindById({id:this.id});
+			  if(data.code == 200){
+				for(let b=0;b<this.gasBottleSpecification.length;b++){
+					if(this.gasBottleSpecification[b].dictValue==data.data.size){
+						data.data.sizeName=this.gasBottleSpecification[b].dictLabel
+					}										
+				}
+				for(let t=0;t<this.gasBottleLevel.length;t++){
+					if(this.gasBottleLevel[t].dictValue==data.data.level){
+						data.data.levelName=this.gasBottleLevel[t].dictLabel
+					}
+				}
+				  this.form=data.data;
+			  }
+			},
+
+			//获取列表数据
+			async getList(){
+				let _this = this;
+				const {data} = await gasDetailRecord(this.getData);
+				if(data.code==200){
+					let res=data.rows
+					_this.dataList=res
+					if(_this.dataList.length<=0){
+						_this.pageType=4
+					}
+				}
+			},
+
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: auto;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column
+        overflow hidden;
+		padding-bottom: 220rpx;
+		.empty{
+			text-align: center;
+			margin-top: 46rpx;
+			>img{
+				width: 336rpx;
+				height: 222rpx;
+				margin-left: 208rpx;
+			}
+			>view{
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #E0E0E0;
+				line-height: 30rpx;
+				margin-top: 48rpx;
+			}
+		}
+		.title{
+			width: 750rpx;
+			height: 100rpx;
+			background: #FFFFFF;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 100rpx;
+			padding-left: 40rpx;
+		}
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				height: 100rpx;
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.binding{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #0183FA;
+					line-height: 24rpx;
+					margin-left: 24rpx;
+				}
+
+
+			}
+			.issue_li{
+				margin:34rpx 26rpx 0;
+				display flex;
+				border-bottom: 1px solid #F5F5F5;
+				view:nth-child(1){
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+				view:nth-child(2){
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+				.issue_img{
+					width: 210rpx;
+					height: 210rpx;
+					border-radius: 10rpx;
+					margin-left:250rpx;
+				}
+			}
+		}
+        .scroll-box{
+        // flex:1;
+         overflow-y scroll;
+		 margin-top: 20rpx;
+		 .small_title{
+		 	font-size: 30rpx;
+		 	font-family: PingFang SC;
+		 	font-weight: 500;
+		 	color: #333333;
+		 	line-height: 80rpx;
+		 	margin: 0 40rpx;
+		 	display: flex;
+		 	justify-content: space-between;
+		 	align-items: center;
+		 	>img{
+		 		width: 24rpx;
+		 		height: 24rpx;
+		 	}
+		 }
+     	.register_li2{
+			overflow: hidden
+     		background #fff;
+     		border-radius:20rpx;
+     		margin:0 20rpx 0;
+     		padding:0 20rpx;
+     		box-sizing: border-box;
+
+     		.register_li2_min{
+
+     			.register_li2_t{
+     				font-size: 28rpx;
+     				font-family: PingFang SC;
+     				font-weight: 500;
+     				color: #333333;
+     				line-height: 28rpx;
+     				margin-top: 28rpx;
+     			}
+     			.register_li2_b{
+     				display: flex;
+     				justify-content: flex-start;
+     				align-items: center;
+     				margin-top: 42rpx;
+     				padding-bottom: 28rpx;
+     				>img{
+     					width: 28rpx;
+     					height: 28rpx;
+     					margin-right: 10rpx;
+     				}
+     				>view{
+     					font-size: 26rpx;
+     					font-family: PingFang SC;
+     					font-weight: 500;
+     					color: #666666;
+     					line-height: 26rpx;
+     				}
+     				>view:nth-child(1){
+     					width: 200rpx;
+     				}
+     				>view:nth-child(2){
+     					flex: 1;
+     				}
+     			}
+				.register_li2_b2{
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+					padding-bottom: 28rpx;
+					border-bottom: 1rpx solid #f5f5f5;
+					>img{
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 10rpx;
+					}
+					>view{
+						font-size: 26rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+						line-height: 26rpx;
+					}
+					>view:nth-child(1){
+						width: 200rpx;
+					}
+					>view:nth-child(2){
+						flex: 1;
+					}
+				}
+     		}
+
+     	}
+     }
+	 /* 按钮 */
+	 .btn{
+	 	display: flex;
+	 	position: fixed;
+	 	bottom: 40rpx;
+	 	left: 50rpx;
+	 	.btn_l{
+	 		width: 324rpx;
+	 		height: 100rpx;
+	 		background: #F28E26;
+	 		border-radius: 50rpx 0rpx 0rpx 50rpx;
+	 		font-size: 28rpx;
+	 		font-family: PingFang SC;
+	 		font-weight: 500;
+	 		color: #FFFFFF;
+	 		line-height: 100rpx;
+	 		text-align: center;
+	 	}
+	 	.btn_r{
+	 		width: 324rpx;
+	 		height: 100rpx;
+	 		background: #0183FA;
+	 		border-radius: 0rpx 50rpx 50rpx 0rpx;
+	 		font-size: 28rpx;
+	 		font-family: PingFang SC;
+	 		font-weight: 500;
+	 		color: #FFFFFF;
+	 		line-height: 100rpx;
+	 		text-align: center;
+	 	}
+	 }
+	}
+</style>

+ 236 - 0
pages/gasBottle/stockList/seleteGas.vue

@@ -0,0 +1,236 @@
+<!-- 安全检查-发起巡查计划-选择内容 -->
+<template>
+  <view class="examine">
+	  <view class="lab_title">
+		<view class="lab_title_r">
+			<view class="lab_title_r_btn" @click="searchBtn">
+				<img src="@/pages_safetyExamine/images/icon_aqjc_ss.png"/>
+			</view>
+			<input type="text" v-model="getData.searchValue" placeholder="请输入检查内容" maxlength="50" placeholder-style="color: #CCCCCC;font-size:26rpx;">
+			<view class="clear" @click="clearBtn">清除</view>
+		</view>
+	  </view>
+	<scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
+		<view>
+			<view class="list">
+				<view class="list_li" v-for="(item,index) in  dataList" :key="index" @click="labSelete(item)">
+					<text :class="item.type?'color_B':'color_A'">{{item.gasName}}-{{item.levelName}}({{item.sizeName}})</text>
+					<img v-if="item.type" src="@/pages_safetyExamine/images/icon_xzwt_xz.png">
+				</view>
+			</view>
+		</view>
+	</scroll-view>	
+  </view>
+
+</template>
+
+<script>
+import { config } from '@/api/request/config.js'
+import {conditionCollegeInfo,conditionSubjectInfo,findDeviceList,haveHazardInSub,airbottleBottleTypeList,getDicts} from '@/api/index.js'
+export default {
+  name: "rectifyList",
+  components: {
+   
+  },
+  data() {
+    return {
+	  pageType:0,
+      //列表请求参数
+      getData:{
+        pageNum:1,
+        pageSize:20,
+		searchValue:'',
+      },
+	  total:0,
+	  dataList:[],
+	  seleteListDevice:[],//临时存储选中的 
+	  form:{},
+	  gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别 
+	  gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+	}
+  },
+  onLoad(option) {
+	  if(option.form){
+		 this.form=JSON.parse(decodeURIComponent(option.form)); 
+	  }
+  },
+  onShow() {
+      
+  },
+  mounted(){
+	  this.getList(); 
+  },
+  methods: {
+	  //滚动事件
+	  scrollGet(){
+		  let self=this;
+	      if(self.total/self.getData.pageSize<=self.getData.pageNum){
+	          console.log('没有更多数据!')
+	      }else{
+			  setTimeout(function(){
+				  self.getData.pageNum += 1;
+				  self.getList(); 
+			  },1000)
+			 
+		  }
+	  },
+	  //点击选择实验室
+	  labSelete(item){
+	  	console.log(item)
+		 this.$set(this.form,'gasName',item.gasName);
+		 this.$set(this.form,'gasComposition',item.gasComposition);
+		 this.$set(this.form,'level',item.level);
+		 this.$set(this.form,'levelName',item.levelName);
+		 this.$set(this.form,'size',item.size);
+		 this.$set(this.form,'sizeName',item.sizeName);
+		 this.$set(this.form,'levelSizeName',item.levelName+item.sizeName);
+		uni.redirectTo({
+		    url:'/pages/gasBottle/stockList/storageAdd?form='+encodeURIComponent(JSON.stringify(this.form))
+		});
+	  },
+	  //实验室搜索
+	  searchBtn(){
+		  this.dataList=[];
+		  this.getList();
+	  },
+	  //清除
+	  clearBtn(){
+		  this.getData.pageNum=1;
+		  this.getData.searchValue='';
+		  this.dataList=[];
+		  this.getList();
+	  },
+	  handleClick(doType){
+		  let self=this;
+		  if( doType=='subBtn'){//保存数据
+			
+		  }
+	  },
+	  
+	  async getList(){
+	      let _this = this;
+	      const {data} = await airbottleBottleTypeList(_this.getData);
+	      if(data.code==200){
+			  for(let i=0;i<data.data.records.length;i++){
+				  for(let b=0;b<this.gasBottleSpecification.length;b++){
+				  		if(this.gasBottleSpecification[b].dictValue==data.data.records[i].size){
+							data.data.records[i].sizeName=this.gasBottleSpecification[b].dictLabel
+						}
+						
+				  }
+				  for(let t=0;t<this.gasBottleLevel.length;t++){
+					if(this.gasBottleLevel[t].dictValue==data.data.records[i].level){
+						data.data.records[i].levelName=this.gasBottleLevel[t].dictLabel
+					}
+				  }
+				  
+			  }
+			  
+			  console.log(data.data.records)
+			  this.dataList=[...this.dataList,...data.data.records]
+			  _this.total=data.data.total;
+		  }
+      }
+  }
+}
+</script>
+
+<style lang="stylus" scoped>
+.examine{
+	height:100%;
+	display flex;
+	.info-max-box{
+		flex: 1;
+		overflow: scroll;
+		padding: 120rpx 0rpx 30rpx;
+		box-sizing: border-box;
+	}
+	.lab_title{
+		width: 750rpx;
+		height: 100rpx;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		padding: 10rpx 30rpx;
+		box-sizing: border-box;
+		
+		.lab_title_r{
+			width: 690rpx;
+			height: 80rpx;
+			position:relative;
+			border-radius: 10rpx;
+			border: 1rpx solid #E0E0E0;
+			.lab_title_r_btn{
+				width: 60rpx;
+				height: 80rpx
+				position: absolute;
+				top: 0rpx;
+				left:0rpx;
+				>img{
+					width: 20rpx;
+					height: 20rpx;
+					position: absolute;
+					top: 30rpx;
+					left: 24rpx;
+				}
+			}
+			>input{
+				width: 274rpx;
+				height: 80rpx;
+				position: absolute;
+				top: 0rpx;
+				left: 60rpx;
+			}
+			.clear{
+				width: 60rpx;
+				height: 80rpx
+				position: absolute;
+				top: 0rpx;
+				right:20rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				color: #0183FA;
+				line-height: 80rpx;
+			}
+		}
+	}
+	.list{
+		background: #FFFFFF;
+		border-radius: 20rpx 20rpx 0rpx 0rpx;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		margin: 0 30rpx;
+		.list_li{
+			display: flex;
+			justify-content:space-between;
+			align-items: center;
+			height: 80rpx;
+			border-bottom: 1rpx solid #E0E0E0;
+			>text{
+				font-size: 28rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				line-height: 80rpx;
+				overflow: hidden;
+				text-overflow:ellipsis;
+				white-space: nowrap;
+			}
+			>img{
+				width: 24rpx;
+				height: 16rpx;
+				margin-right: 14rpx;
+			} 
+		}
+		.list_li:last-child{
+			border: none;
+		}
+		.color_A{
+			color: #333333;
+		}
+		.color_B{
+			color: #0183FA;
+		}
+	}
+}
+</style>

+ 418 - 0
pages/gasBottle/stockList/stockList.vue

@@ -0,0 +1,418 @@
+<!--库存列表-->
+<template>
+    <view id="gasRecycle">
+		<view class="top-picker-max-box">
+		    <view class="top-picker-box">
+		        <picker @change="facultyChange" :value="facultyIndex" :range="facultyArray">
+		            <view class="picker-view">
+		                <view>{{!facultyIndex?'学院':facultyArray[facultyIndex]}}</view>
+		                <img class="picker-img" src="@/pages_manage/images/icon_06.png" alt="">
+		            </view>
+		        </picker>
+		    </view>
+		    <view class="top-picker-box">
+				<picker mode="date"  @change="startChange($event)">
+					<view class="picker-view">
+					    <view>{{!getData.startTime?'开始时间':getData.startTime}}</view>
+					    <img class="picker-img" src="@/pages_manage/images/icon_06.png" alt="">
+					</view>
+				</picker>
+		    </view>
+		    <view class="top-picker-box">
+		        <picker mode="date"  @change="endChange($event)">
+		        	<view class="picker-view">
+		        	    <view>{{!getData.endTime?'结束时间':getData.endTime}}</view>
+		        	    <img class="picker-img" src="@/pages_manage/images/icon_06.png" alt="">
+		        	</view>
+		        </picker>
+		    </view>
+		</view>
+		<view class="search">
+			<view class="search_t">
+				<view class="search_n">
+					<input v-model="getData.searchValue"    type="text" placeholder="实验室名称/房间号">
+					<img  @click="searchBtn()" class="icon_img" src="@/pages_manage/images/icon_aqjc_ss.png"/>
+				</view>
+			</view>
+		</view>
+		<scroll-view scroll-y @scrolltolower="scrollGet" class="scroll-box">
+		    <view class="for-big-box" v-for="(item,index) in dataList" :key="index">
+		        <view class="for-time-p">{{item.gasName}}-{{item.levelName}}({{item.sizeName}})</view>
+		        <img class="for-back-img" src="@/pages_manage/images/Version2.2/for_min_bg.png">
+		        <view class="for-box" @click="goInfo(item)">
+		        	<view class="for-box_t">{{item.subjectName}}+{{item.roomNum}}</view>
+		        	<view class="for-box_b">
+						<img class="for-back-img" src="@/pages_manage/images/Version3.0/icon_qpgl_syl.png">
+						<text>余量: {{item.gasPressure==null?'':item.gasPressure}}Mpa</text>
+						<img class="for-back-img" src="@/pages_manage/images/Version2.2/icon_wtzg_sj.png">
+						<text>{{item.createTime==null?'':item.createTime}}</text>
+					</view>
+		        </view>
+		    </view>
+			<view class="get-null-box" v-if="total==0">暂无更多数据</view>
+		</scroll-view>
+		<view class="sub_btn" @click="subBtn()">新增入库</view>
+	</view>
+</template>
+
+<script>
+	import { gasList,listDepartments,airbottleStockList} from '@/api/index.js'
+    export default {
+
+        name: "gasRecycle",
+        data() {
+            return {
+
+				pageType:0,
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:20,
+					collegeId:'',
+					startTime:'',
+					endTime:'',
+					searchValue:'',
+				},
+				total:0,
+				userType:uni.getStorageSync('userType'),
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+                dataList:[],
+				noData:false,
+				//院系选择器数据
+				facultyList:[],
+				facultyArray:[],
+				facultyIndex:"",
+            }
+        },
+        onLoad() {
+			 
+        },
+        onShow() {
+
+        },
+		mounted(){
+			this.getList();
+			this.listDepartments();
+
+		},
+        methods: {
+			goInfo(d){
+				uni.navigateTo({
+				    url:'/pages/gasBottle/stockList/gasListDetail?id='+d.id
+				});
+			},
+			//获取院系
+			async listDepartments(){
+			    const {data} = await listDepartments();
+			    if(data.code == 200){
+			        let list = [];
+			        for(let i=0;i<data.data.length;i++){
+			            list.push(data.data[i].deptName)
+			        }
+			        this.facultyArray = list;
+			        list.unshift('全部院系');
+			        this.facultyList = data.data;
+			        this.facultyList.unshift({deptName:"全部院系", deptId:""})
+			    }
+			},
+			//学院选中
+			facultyChange: function(e) {
+			    if(this.facultyArray[0]){
+			        this.facultyIndex = parseInt(e.target.value);
+					this.getData.collegeId=this.facultyList[e.target.value].deptId;
+					this.getList()
+			    }
+			},
+			//开始时间选中事件
+			startChange(e){
+				if(new Date(e.target.value).getTime()>=new Date(this.getData.endTime).getTime()){
+					 uni.showToast({
+						title: '结束时间不能小于开始时间',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+				}else{
+					this.getData.startTime=e.target.value
+				}
+			},
+			//结束时间选中事件
+			endChange(e){
+				if(new Date(this.getData.startTime).getTime()>=new Date(e.target.value).getTime()){
+					 uni.showToast({
+						title: '结束时间不能小于开始时间',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+				}else{
+					this.getData.endTime=e.target.value
+					this.getList()
+				}
+			},
+			//实验室房间号搜索
+			searchBtn(){
+				console.log(111)
+				this.getList()
+			},
+			//新增入库
+			subBtn(){
+				uni.redirectTo({
+					url:'/pages/gasBottle/stockList/storageAdd'
+				});
+			},
+			//滚动加载事件
+			scrollGet(){
+				let self=this;
+				if(self.total/self.getData.pageSize<=self.getData.pageNum){
+					  console.log('没有更多数据!')
+				}else{
+					  setTimeout(function(){
+						  self.getData.pageNum += 1;
+						  self.getList();
+					  },1000)
+
+				}
+			},
+			//获取列表数据
+				async getList(){
+				   let _this = this;
+				    const {data} = await airbottleStockList(_this.getData);
+				    if(data.code==200){
+						for(let i=0;i<data.data.records.length;i++){
+						  for(let b=0;b<this.gasBottleSpecification.length;b++){
+								if(this.gasBottleSpecification[b].dictValue==data.data.records[i].size){
+									data.data.records[i].sizeName=this.gasBottleSpecification[b].dictLabel
+								}	
+						  }
+						  for(let t=0;t<this.gasBottleLevel.length;t++){
+							if(this.gasBottleLevel[t].dictValue==data.data.records[i].level){
+								data.data.records[i].levelName=this.gasBottleLevel[t].dictLabel
+							}
+						  }
+										  
+						}
+						let res = data.data.records;
+						if(res && res.length>0){
+							if(_this.getData.pageNum==1){
+								_this.dataList=res;
+							}else{
+								_this.dataList=_this.dataList.concat(res);
+							}
+							this.total=data.data.total;
+						}
+						
+				    }
+				},
+
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: 100%;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column
+        overflow hidden;
+		.top-picker-max-box{
+		    display:flex;
+		    padding:0 20rpx;
+		    background #fff
+		    border-bottom:1rpx solid #E0E0E0;
+		    .top-picker-box{
+		        line-height:80rpx;
+		        height:80rpx;
+		        .picker-view{
+		            display flex
+		            view{
+		                display:block;
+		                overflow:hidden;
+		                text-overflow:ellipsis;
+		                white-space:nowrap;
+		                font-size:28rpx;
+		            }
+		            .picker-img{
+		                width:24rpx;
+		                height:13rpx;
+		                margin-top:36rpx;
+		                margin-left:13rpx;
+		            }
+		        }
+		    }
+		    .top-picker-box:nth-child(1){
+		        text-align left
+		        width:320rpx;
+		        .picker-view{
+		            view{
+		                max-width:260rpx;
+		            }
+		        }
+		    }
+		    .top-picker-box:nth-child(2){
+		        text-align left
+		        width:215rpx;
+		        .picker-view{
+		            view{
+		                max-width:156rpx;
+		            }
+		        }
+		    }
+		    .top-picker-box:nth-child(3){
+		        text-align right
+		        width:195rpx;
+		        .picker-view{
+		            view{
+		                flex:1;
+		
+		            }
+		        }
+		    }
+		
+		}
+		
+		/* 搜索 */
+		.search{
+			.search_t{
+				background: #FFFFFF;
+				padding: 20rpx;
+				box-sizing: border-box;
+				.search_n{
+					width: 710rpx;
+					height: 80rpx;
+					border: 1px solid #E0E0E0;
+					border-radius: 40rpx;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					padding:0 40rpx;
+					box-sizing: border-box;
+					>input{
+						width: 640rpx;
+						font-size: 24rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #CCCCCC;
+						line-height: 30rpx;
+					}
+					>img{
+						width: 30rpx;
+						height: 30rpx;
+					}
+				}
+
+			}
+			.search_b{
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				margin: 20rpx 0;
+				>text{
+					display: inline-block;
+					width: 200rpx;
+					height: 60rpx;
+					background: #FFFFFF;
+					border-radius: 30rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 60rpx;
+					text-align: center;
+					margin-right: 20rpx;
+				}
+			}
+		}
+		
+        .scroll-box{
+        // flex:1;
+         overflow-y scroll;
+		 margin-top: 20rpx;
+		 padding-bottom: 144rpx;
+		 box-sizing: border-box;
+
+         .for-big-box:last-child{
+             margin-bottom:180rpx;
+         }
+         .for-big-box{
+             margin:0 20rpx 20rpx;
+             overflow hidden
+             border-bottom-left-radius :20rpx;
+             border-bottom-right-radius :20rpx;
+             .for-time-p{
+                 background #fff
+                 line-height:87rpx;
+                 font-size:30rpx;
+                 padding:0 22rpx;
+                 border-top-left-radius:20rpx;
+                 border-top-right-radius:20rpx;
+             }
+             .for-back-img{
+                 height:30rpx;
+                 width:710rpx;
+             }
+			.for-box{
+				overflow hidden;
+				background: #fff;
+
+				padding: 0 20rpx;
+				box-sizing: border-box;
+				.for-box_t{
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 28rpx;
+					margin: 28rpx 0 40rpx 0;
+				}
+				.for-box_b{
+					display: flex;
+					>img{
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 10rpx;
+					}
+					>text{
+						font-size: 24rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+						line-height: 26rpx;
+						margin-bottom: 20rpx;
+					}
+					>text:nth-of-type(1){
+						width: 190rpx;
+					}
+				}
+			}
+		 }
+		 /*暂无数据*/
+		 .get-null-box{
+			 height:100rpx;
+			 line-height:100rpx;
+			 color:#999;
+			 text-align center
+		 }
+     }
+		/* 按钮 */
+		.sub_btn{
+			width: 650rpx;
+			height: 100rpx;
+			background: #0183FA;
+			border-radius: 20rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:30rpx;
+			z-index: 1000;
+		}
+	}
+</style>

+ 479 - 0
pages/gasBottle/stockList/storageAdd.vue

@@ -0,0 +1,479 @@
+<!-- 新增入库 -->
+<template>
+    <view id="register">
+		<view class="register_li">
+			<view class="register_li_min" @click="seleteGasFun()">
+				<view>*</view>
+				<view style="color: #999999;">气瓶:</view>
+				<input v-model="form.gasName" disabled placeholder="请选择气瓶" placeholder-style="color:#333;"  type="text" >
+			</view>
+			<view class="register_li_min" style="border-bottom:0;">
+				<view></view>
+				<view style="color: #999999;">气体规格:</view>
+				<input v-model="form.levelSizeName" disabled  type="text" >
+			</view>
+		</view>
+		<view class="register_li">
+			<view class="register_li_min" v-for="(item,index) in list">
+				<view></view>
+				<view>{{item.name}}</view>
+				<view class="radio_group">
+					<view class="radio" v-for="(item2,index2) in item.radioList" @click="radioClick(item,item2)">
+						<img v-if="!item2.checked" src="@/pages_manage/images/icon_5.png">
+						<img v-if="item2.checked" src="@/pages_manage/images/icon_6.png">
+						<text>{{item2.name}}</text>
+					</view>
+				</view>
+			</view>
+			<view class="register_li_min">
+				<view>*</view>
+				<view>气表压力:</view>
+				<input v-model="form.gasPressure" maxlength="4"  type="text" placeholder-style="color:#999;" placeholder="请输入气表压力">
+			</view>
+			<!-- 检验有效期 -->
+			<view class="register_li_min2">
+				<view><text  style="color: #f00;margin-right: 10rpx;">*</text>检验有效期:</view>
+				<picker mode="date" @change="startChange($event)">
+					<input class="picker-text" v-model="form.validPeriod" disabled  type="text" placeholder-style="color:#999;"  placeholder="时间">
+				</picker>
+			</view>
+			<view class="register_li_min" >
+				<view>*</view>
+				<view>信标标签:</view>
+				<input v-model="form.beaconTag"   type="text" placeholder-style="color:#999;" placeholder="请输入信标标签ID">
+				<img @click.stop="saoCode"  class="code_img" src="@/pages_manage/images/Version2.2/icon_aqjc_sm.png">
+			</view>
+			<view class="register_li_min">
+				<view>*</view>
+				<view>实验室:</view>
+				<picker @change="bindPickerChange" :value="laboratoryIndex" :range="laboratory">
+					<input class="picker-text" v-model="form.subjectName" disabled type="text" placeholder-style="color:#999; text-align: right;font-size:24rpx;" placeholder="请选择入库实验室">
+				</picker>
+				
+			</view>
+			<view class="register_li_min" style="border: none;">
+			    <view>*</view>
+				<view>备注:</view>
+				<input v-model="form.remark"   type="text" placeholder-style="color:#999;" placeholder="请输入验收备注">
+			</view>
+		</view>
+		<view class="sub_btn" @click="submitForm()">确认信息并入库</view>
+	</view>
+</template>
+
+<script>
+    import {gasApplyDetailDrkDetail,gasApplyStorageAdd,getSubjectDict,airbottleStockEnter} from '@/api/index.js'
+	import { config } from '@/api/request/config.js'
+    export default {
+        data() {
+            return {
+				form:{
+				},
+				laboratory:['请选择实验室'],
+				laboratoryList:[],
+				laboratoryIndex:0,
+				infoForm:{},
+				item:{},
+				id:{},
+				list:[
+					{
+						id:'0',
+						name:'瓶身颜色:',
+						lab:'color',
+						radioList:[
+							{
+								id:1,
+								name:'灰',
+								checked:true,
+							},
+							{
+								id:2,
+								name:'白',
+								checked:false,
+							},
+							{
+								id:3,
+								name:'蓝',
+								checked:false,
+							},
+						]
+
+					},
+					{
+						id:'0',
+						name:'有无手轮:',
+						lab:'isHandwheel',
+						radioList:[
+							{
+								id:1,
+								name:'有',
+								checked:true,
+							},
+							{
+								id:0,
+								name:'无',
+								checked:false,
+							},
+						]
+
+					},
+					{
+						id:'0',
+						name:'是否固定:',
+						lab:'isFixed',
+						radioList:[
+							{
+								id:1,
+								name:'是',
+								checked:true,
+							},
+							{
+								id:0,
+								name:'否',
+								checked:false,
+							},
+						]
+
+					},
+					{
+						id:'0',
+						name:'电子标签:',
+						lab:'isElectronicTag',
+						radioList:[
+							{
+								id:1,
+								name:'有',
+								checked:true,
+							},
+							{
+								id:0,
+								name:'无',
+								checked:false,
+							},
+						]
+
+					},
+					{
+						id:'0',
+						name:'气瓶状态标牌:',
+						lab:'isStatusSign',
+						radioList:[
+							{
+								id:1,
+								name:'有',
+								checked:true,
+							},
+							{
+								id:0,
+								name:'无',
+								checked:false,
+							},
+						]
+
+					}
+				]
+            }
+        },
+        onLoad(option) {
+			if(option.form){
+				this.form=JSON.parse(decodeURIComponent(option.form)); 
+			}
+        },
+        onShow(){
+
+        },
+		mounted(){
+			this.getSubjectDict();
+		},
+        methods: {
+			//开始时间选中事件
+			startChange(e){
+				this.$set(this.form,'validPeriod',e.target.value);
+			},
+			//实验室选择器
+			bindPickerChange(e){
+				let self=this;
+				let subjectName = self.laboratory[self.laboratoryIndex];
+				self.$set(self.form,'subjectName',subjectName);
+				self.laboratoryList.forEach(function(item){
+					if(item.name==subjectName){
+						self.$set(self.form,'subjectId',item.id);
+					}
+				})
+			},
+			//单选按钮
+			radioClick(p,d){
+				d.checked=!d.checked
+				if(d.checked){
+					//如果有选中的,循环把其他选中的取消
+					p.radioList.forEach(function(item){
+						if(item.id==d.id){
+
+						}else{
+							item.checked=false;
+						}
+					})
+				}else{
+
+				}
+
+			},
+			//调用摄像头
+			saoCode(){
+				let _this = this;
+			    uni.scanCode({
+			        onlyFromCamera: true,
+			        success: function (res) {
+						console.log(res.result)
+						_this.$set(_this.form,'beaconTag',res.result);
+			        }
+			    });
+			},
+			//实验室列表
+			async getSubjectDict(){
+				let self = this;
+				let {data} = await getSubjectDict()
+				if(data.code == 200){
+					if(data.data[0]){
+						let list = [];
+						for(let i=0;i<data.data.length;i++){
+							list.push(data.data[i].name);
+						}
+						this.laboratory = list;
+						this.laboratoryList = data.data;
+					}
+				}
+			},
+			//选择气瓶
+			seleteGasFun(){
+				uni.redirectTo({
+				    url:'/pages/gasBottle/stockList/seleteGas?form='+encodeURIComponent(JSON.stringify(this.form))
+				});
+			},
+			//提交
+			async submitForm(){
+				let _this = this;
+				if(!this.form.gasName){
+					uni.showToast({
+						title: '请选择气体名称',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				if(!this.form.gasPressure){
+					uni.showToast({
+						title: '请输入气表压力',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				if(!this.form.validPeriod){
+					uni.showToast({
+						title: '请选择检验有效期',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				if(!this.form.beaconTag){
+					uni.showToast({
+						title: '请输入信标标签',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				if(!this.form.subjectId){
+					uni.showToast({
+						title: '请选择实验室',
+						icon:"none",
+						mask:true,
+						duration: 2000
+					});
+					return
+				}
+				_this.list.forEach(function(item){
+					item.radioList.forEach(function(item2){
+						if(item.lab=='color' && item2.checked){
+							_this.form.bottleColour=item2.id;
+						}else if(item.lab=='isHandwheel' && item2.checked){
+							_this.form.handwheel=item2.id;
+						}else if(item.lab=='isFixed' && item2.checked){
+							_this.form.fixed=item2.id;
+						}else if(item.lab=='isElectronicTag' && item2.checked){
+							_this.form.electronicTag=item2.id;
+						}else if(item.lab=='isStatusSign' && item2.checked){
+							_this.form.statusLabel=item2.id;
+						}
+					})
+				})
+				const {data} = await airbottleStockEnter(_this.form);
+				if(data.code == 200){
+				    uni.showToast({
+				        title: '提交成功',
+				        icon:"none",
+				        mask:true,
+				        duration: 2000
+				    });
+				    setTimeout(function(){
+				       uni.redirectTo({
+				            url: '/pages/gasBottle/stockList/stockList'
+				        });
+				    },2000);
+				}
+			},
+
+
+		}
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #register{
+        height:auto;
+        width:100%;
+        display flex
+        flex-direction column;
+		padding-bottom: 220rpx;
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				view{
+					line-height:100rpx;
+					font-size:28rpx;
+				}
+				view:nth-child(1){
+					color:red;
+					line-height:28rpx;
+					margin-right: 12rpx;
+				}
+				view:nth-child(2){
+					//width:140rpx;
+					flex: 1;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.picker-text{
+					text-align: right;
+					font-size: 28rpx;
+				}
+
+				>input{
+					width 400rpx;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.code_img{
+					width: 30rpx;
+					height: 28rpx;
+					margin-left: 26rpx;
+				}
+				/* 单选按钮 */
+				.radio_group{
+					display: flex;
+					.radio{
+						display: flex;
+						margin-left: 74rpx;
+						margin-right: 0;
+						>img{
+							width: 30rpx;
+							height: 30rpx;
+						}
+						>text{
+							margin-left: 34rpx;
+							font-size: 28rpx;
+							font-family: PingFang SC;
+							font-weight: 500;
+							color: #333333;
+							line-height: 28rpx;
+						}
+					}
+				}
+			}
+			/* 时间 */
+			.register_li_min2{
+				margin:0 26rpx;
+				border-bottom: 1px solid #f5f5f5;
+				height: 100rpx;
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				>view:nth-child(1){
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+					margin-right: 96rpx;
+				}
+				.picker-text{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+					width: 390rpx;
+					text-align: right;
+
+				}
+				>view:nth-child(2){
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				.picker-text2{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+					width: 188rpx;
+					text-align: right;
+				}
+			}
+
+		}
+		/* 按钮 */
+		/* 按钮 */
+		.sub_btn{
+			width: 650rpx;
+			height: 100rpx;
+			background: #0183FA;
+			border-radius: 50rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+			line-height: 100rpx;
+			text-align: center;
+			margin-left: 50rpx;
+			position: fixed;
+			bottom:30rpx;
+			z-index: 1000;
+		}
+	}
+	/deep/.input-value-border{
+		display :none !important;
+	}
+</style>

+ 258 - 0
pages/gasBottle/stockList/useRecordDetail.vue

@@ -0,0 +1,258 @@
+<!--气瓶列表-->
+<template>
+    <view id="gasRecycle">
+		<view class="title">{{form.gasName}}-{{form.levelName}}({{form.sizeName}})</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>余量:</view>
+				<input v-model="form.gasPressure" disabled  type="text" >
+			</view>
+			<view class="register_li_min">
+				<view>学院:</view>
+				<input v-model="form.collegeName" disabled  type="text" >
+			</view>
+			<view class="register_li_min" style="border: none;">
+				<view>实验地点:</view>
+				<input v-model="form.subjectName" disabled  type="text" >
+			</view>
+		</view>
+		<view class="register_li">
+			<view class="register_li_min">
+				<view>使用人:</view>
+				<input v-model="form.operator" disabled  type="text" >
+			</view>
+			<!-- 使用时间 -->
+			<view class="register_li_min2">
+				<view>使用时间:</view>
+				<picker mode="date" disabled @change="startChange($event)">
+					<input class="picker-text" v-model="form.startTime" disabled  type="text"  placeholder="开始时间">
+				</picker>
+				<view>-</view>
+				<picker mode="date" disabled @change="endChange($event)">
+					<input class="picker-text2" v-model="form.endTime" disabled  type="text"  placeholder="结束时间">
+				</picker>
+			</view>
+			<view class="register_li_min">
+				<view>使用量:</view>
+				<view>{{form.usageAmount+'Mpa'}}</view>
+			</view>
+			<view  class="meter_img" style="border:0;" @click="lookItem(form.usageImg)">
+				<view>气表照片:</view>
+				<view class="meter_img_list" > 
+					<img v-for="(item,index) in form.usageImg" :src="item">
+				</view>
+				
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { gasDetailRecordDetail,airbottleUsageRecordFindById} from '@/api/index.js'
+	import { config } from '@/api/request/config.js'
+    export default {
+		
+        name: "gasRecycle",
+        data() {
+            return {
+				baseUrl:config.base_url,
+				pageType:0,
+				//列表请求参数
+				getData:{
+				    pageNum:1,
+					pageSize:20,
+				},
+				userType:uni.getStorageSync('userType'),
+				gasBottleLevel:uni.getStorageSync('gasBottleLevel'),//  气瓶级别
+				gasBottleSpecification:uni.getStorageSync('gasBottleSpecification'), // 气瓶规格
+				form:{
+					name:'C123(第一实验室)',
+				},
+                dataList:[],
+				item:{},
+				specificationName:{},
+				id:'',
+            }
+        },
+        onLoad(option) {
+			if(option.id){
+				this.id=option.id;
+			}
+			
+        },
+        onShow() {
+			
+        },
+		mounted(){
+		   this.getInfo();
+		},
+        methods: {  
+			lookItem(item){
+				//查看图片
+				wx.previewImage({
+					urls: [config.base_url+item], //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
+					current: '', // 当前显示图片的http链接,默认是第一个
+					success: function(res) {},
+					fail: function(res) {},
+					complete: function(res) {},
+				})
+			},
+			async getInfo(){
+				let _this=this;
+				const {data} = await airbottleUsageRecordFindById({id:this.id});
+				if(data.code==200){
+					for(let b=0;b<this.gasBottleSpecification.length;b++){
+						if(this.gasBottleSpecification[b].dictValue==data.data.size){
+							data.data.sizeName=this.gasBottleSpecification[b].dictLabel
+						}										
+					}
+					for(let t=0;t<this.gasBottleLevel.length;t++){
+						if(this.gasBottleLevel[t].dictValue==data.data.level){
+							data.data.levelName=this.gasBottleLevel[t].dictLabel
+						}
+					}
+					_this.form=data.data;
+					if(data.data.usageImg){
+						this.$set(this.form,'usageImg',data.data.usageImg.split(','));
+					}
+				
+				}
+			},	
+        }
+    }
+</script>
+
+<style lang="stylus" scoped>
+    #gasRecycle {
+        height: auto;
+        width: 100%;
+		flex :1;
+        display flex;
+        flex-direction column
+        overflow hidden;
+		padding-bottom: 220rpx;
+		.title{
+			width: 750rpx;
+			height: 100rpx;
+			background: #FFFFFF;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 100rpx;
+			padding-left: 40rpx;
+		}
+		.register_li{
+			background #fff;
+			border-radius:20rpx;
+			margin:20rpx 20rpx 0;
+			padding:20rpx 0;
+			box-sizing: border-box;
+			.register_li_min{
+				margin:0 26rpx;
+				display flex;
+				align-items center;
+				border-bottom: 1px solid #F5F5F5;
+				.icon_img{
+					width: 30rpx;
+					height: 30rpx;
+					margin-right: 12rpx;
+				}
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				>view:nth-child(2){
+					flex: 1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				>input{
+					flex:1;
+					text-align: right;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				
+				
+				
+			}
+			/* 时间 */
+			.register_li_min2{
+				margin:0 26rpx;
+				border-bottom: 1px solid #f5f5f5;
+				height: 100rpx;
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				>view:nth-child(1){
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+					margin-right: 46rpx;
+				}
+				.picker-text{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+					width: 240rpx;
+					
+				}
+				>view:nth-child(2){
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+				}
+				.picker-text2{
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					line-height: 100rpx;
+					width: 240rpx;
+					text-align: right;
+				}
+			}
+			
+			.meter_img{
+				margin:0 26rpx;
+				
+				view{
+					//width:140rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					line-height: 100rpx;
+				}
+				.meter_img_list{
+					display flex;
+					justify-content: flex-start;
+					flex-wrap: wrap;
+					>img{
+						width: 150rpx;
+						height: 150rpx;
+						border-radius: 10rpx;
+						margin:0rpx 20rpx 20rpx 0;
+					}
+				}
+				
+			}
+		}
+	}
+</style>