zhengkaixin 3 years ago
parent
commit
35b0fd1553
3 changed files with 386 additions and 96 deletions
  1. 1 1
      pagesFinance/user/deviceList.vue
  2. 279 25
      pagesFinance/user/myPile.vue
  3. 106 70
      pagesFinance/user/pileManagement.vue

+ 1 - 1
pagesFinance/user/deviceList.vue

@@ -16,7 +16,7 @@
 			<view>查询为空</view>
 		</view>
 			<view v-for="(item ,index) in list" :key="item.id"
-			@click="gotoUrl('pagesFinance/user/deviceDetails?id='+item.id)"
+			@click="gotoUrl('pagesFinance/user/'+(item.type!=0?'pileManagement':'deviceDetails')+'?id='+item.id)"
 			:class="{
 				'deviceList-bg1':item.type==1,
 				'deviceList-bg2':item.type==2,

+ 279 - 25
pagesFinance/user/myPile.vue

@@ -10,9 +10,9 @@
 
 					<view class="">
 
-						<u-radio-group>
+						<u-radio-group v-model="detail.enableShare" >
 
-							<u-radio @change="radioChange" v-for="(item, index) in list2" :key="index" :name="item.name"
+							<u-radio  v-for="(item, index) in list2" :key="index+'a'" :name="item.value"
 								:disabled="item.disabled" active-color="#00b962">
 
 								{{item.name}}
@@ -30,9 +30,9 @@
 				<u-cell-item title="开放预约" :arrow="false">
 					<view class="">
 
-						<u-radio-group @change="radioGroupChange">
+						<u-radio-group  v-model="detail.enableAppointment" >
 
-							<u-radio @change="radioChange" v-for="(item, index) in list2" :key="index" :name="item.name"
+							<u-radio  v-for="(item, index) in list2" :key="index+'b'" :name="item.value"
 								:disabled="item.disabled" active-color="#00b962">
 
 								{{item.name}}
@@ -47,10 +47,10 @@
 				<u-cell-item title="预约自动确认" :arrow="false">
 					<view class="">
 
-						<u-radio-group @change="radioGroupChange">
+						<u-radio-group  v-model="detail.autoConfirm" >
 
-							<u-radio @change="radioChange" v-for="(item, index) in list2" :key="index" :name="item.name"
-								:disabled="item.disabled" active-color="#00b962">
+							<u-radio   v-for="(item, index) in list2" :key="index+'c'" :name="item.value"
+								active-color="#00b962">
 
 								{{item.name}}
 
@@ -61,9 +61,34 @@
 					</view>
 				</u-cell-item>
 
-				<u-cell-item title="允许预约日期" value="周一/周二/周三/周四/周五/周六/周日"></u-cell-item>
+ 				
+				
+				<u-cell-item :arrow="false" class="time-cell border-bottom" title="允许预约日期">
+				
+				</u-cell-item>
+				
+				<view class="" style="padding-left: 16px;">
+					<u-checkbox-group  shape="square">
+				
+						<u-checkbox  
+						 	v-model="item.checked" 
+						 v-for="(item, index) in weekList" :key="index" :name="item.value"
+							:disabled="item.disabled" active-color="#00b962">
+				
+							{{item.name}}
+				
+						</u-checkbox>
+					</u-checkbox-group>
+				
+				</view>
+				
+				<u-picker mode="time" @confirm="confirm"  v-model="show" 
+				
+				:params="params"></u-picker>
+
 
-				<u-cell-item title="允许预约时段" value="10:00至12:00"></u-cell-item>
+				<u-cell-item title="预约开始时段" :value="detail.shareStartTime" @click="showTimeBtn(0)" ></u-cell-item>
+				<u-cell-item title="预约结束时段" :value="detail.shareEndTime" @click="showTimeBtn(1)" ></u-cell-item>
 
 				<u-cell-item :arrow="false" class="time-cell border-bottom" title="预约时长选项">
 
@@ -73,62 +98,265 @@
 				</u-cell-item>
 
 
-				<!-- <p>预约时长选项</p> -->
-
 
 				<view class="" style="padding-left: 16px;">
-					<u-radio-group @change="radioGroupChange" class="radio-padding" shape="square">
+					<u-checkbox-group  shape="square">
 
-						<u-radio @change="radioChange" v-for="(item, index) in timeList" :key="index" :name="item.name"
+						<u-checkbox   v-for="(item, index) in timeList"
+						 	v-model="item.checked" 
+							:key="index" :name="item.value"
 							:disabled="item.disabled" active-color="#00b962">
 
 							{{item.name}}
 
-						</u-radio>
-					</u-radio-group>
+						</u-checkbox>
+					</u-checkbox-group>
 
 				</view>
 
 
-
-
-
-
-
-
-
 			</u-cell-group>
 
 		</view>
-
+		<!-- 底部按钮 -->
+		<view class="bottom">
+		<!-- 	<u-button shape='circle' class="refuse-btn">拒绝</u-button>
+			<u-button type="success" shape='circle'>确认</u-button> -->
+			<!-- 删除订单按钮 -->
+		 <u-button shape='circle' type="success" @click="submit"  >保存</u-button> 
+		</view>
 	</view>
 </template>
 
 <script>
+	import * as API from '@/apis/finance.js'
+	
 	export default {
 		data() {
 			return {
+				showTimeType:"",
+				showTime:"",
+				show:false,
+				params: {
+									year: false,
+									month: false,
+									day: false,
+									hour: true,
+									minute: true,
+									second: false
+								},
+								
+				detail:{
+				
+				},
+				
 				list2: [{
+						value:"1",
 						name: "是"
 					},
 					{
+						value:"0",
 						name: "否"
 					}
 				],
-				timeList: [{
+				weekList: [
+					{
+						value:"1",
+						name: "周一"
+					},
+					{
+						value:"2",
+						name: "周二"
+					},
+					{
+						value:"3",
+						name: "周三"
+					},
+				
+					{
+						value:"4",
+						name: "周四"
+					},
+					{
+						value:"5",
+						name: "周五"
+					},
+					{
+						value:"6",
+						name: "周六"
+					},
+				
+					{
+						value:"7",
+						name: "周日"
+					}
+				],
+				timeList: [
+					{
+						value:"10",
 						name: "10分钟"
 					},
 					{
+						value:"20",
 						name: "20分钟"
 					},
 					{
+						value:"30",
 						name: "30分钟"
 					}
 				]
 			}
 		},
+		onLoad(op){
+			
+			this.id=op.id;
+			this.getInfo()
+		},
 		methods: {
-
+			confirm(e){
+				
+				var type=this.showTimeType;
+				
+				if(type==0){
+					this.detail.shareStartTime=e.hour+":"+e.minute
+				}
+				if(type==1){
+					this.detail.shareEndTime=e.hour+":"+e.minute
+				}
+			},
+			showTimeBtn(type){
+				this.showTimeType=type;
+				console.log(type)
+				if(type=="0"){
+					this.showTime=this.detail.shareStartTime
+				}
+				if(type=="1"){
+					this.showTime=this.detail.shareEndTime
+				}
+				this.show=true;
+			},
+			submit(){
+				
+				var sz=[]
+				for(var i in this.weekList){
+					var item=this.weekList[i]
+					if(item.checked){
+						sz.push(item.value)
+					}
+				}
+				var weekDay=sz.join();
+				
+				
+				var sz2=[]
+				for(var i in this.timeList){
+					var item=this.timeList[i]
+					if(item.checked){
+						sz2.push(item.value)
+					}
+				}
+				var reserveMinutes=sz2.join();
+				var weekTime=[this.detail.shareStartTime,this.detail.shareEndTime]
+				if(this.detail.enableAppointment){
+					if(weekDay==""){
+						uni.showToast({
+							title:"开放预约功能需要选择预约日期"
+						})
+						return
+					}
+					this.detail.weekDay=weekDay
+					
+					
+					
+					this.detail.reserveMinutes=reserveMinutes
+					if(!weekTime[0]){
+						uni.showToast({
+							title:"开放预约功能需要预约开始时间"
+						})
+						return
+					}
+					if(!weekTime[1]){
+						uni.showToast({
+							title:"开放预约功能需要预约结束时间"
+						})
+						return
+					}
+					if(reserveMinutes==""){
+						uni.showToast({
+							title:"开放预约功能需要选择预约时长"
+						})
+						return
+					}
+						this.detail.weekTime=weekTime
+						console.log(	this.detail	)
+				}
+				
+				uni.showLoading({
+					title:"加载中",mask:true,
+				})
+				API.saveGunShare(this.detail).then((res) => {
+					
+					uni.hideLoading()
+					 uni.showToast({
+					 	title:"操作成功"
+					 })
+				}).catch(error => {
+						uni.showToast({
+							
+							title:error
+						})
+				})
+			},
+			getInfo(){
+				uni.showLoading({
+					title:"加载中",mask:true,
+				})
+				API.gunShareDetail({
+					gunId:this.id
+				}).then((res) => {
+					this.detail={};
+					var obj=res.data.gunShare;
+					for(var i in obj){
+						
+						if(obj[i]===true){
+							this.detail[i]="1";
+						}else if(obj===false){
+							this.detail[i]="0";
+						}else {
+							this.detail[i]=obj[i];
+						}
+					}
+					if(this.detail.reserveMinutes){
+						var sz=this.detail.reserveMinutes.split(",")
+						for(var i in this.timeList){
+							var item=this.timeList[i]
+						
+							if(sz.indexOf(item.value)!=-1){
+								item.checked=true;
+							}
+						}
+					}
+					
+					if(this.detail.shareWeekDay){
+						var sz=this.detail.shareWeekDay.split(",")
+						for(var i in this.weekList){
+							var item=this.weekList[i]
+						
+							if(sz.indexOf(item.value)!=-1){
+								item.checked=true;
+							}
+						}
+					}
+					
+					console.log(this.detail)
+					uni.hideLoading()
+					 
+				}).catch(error => {
+						uni.showToast({
+							
+							title:error
+						})
+				})
+			}
 		}
 	}
 </script>
@@ -181,4 +409,30 @@
 
 
 	}
+	
+	
+// 按钮
+.bottom{
+	width: 100%;
+	height: 56px;
+	position: fixed;
+	bottom: 0;
+	background-color: #fff;
+	display: flex;
+	.refuse-btn{
+		background-color: #DBDBDB;
+	}
+	.u-btn{
+		width: 91.4%;
+		height: 40px;
+		margin: auto;
+		font-size: 18px;
+		
+	}
+	.cancel-btn{
+		width: 91.4%;
+		background-color: #dbdbdb;
+		color: #666666
+	}
+}
 </style>

+ 106 - 70
pagesFinance/user/pileManagement.vue

@@ -1,39 +1,35 @@
 <template>
 	<view>
 		<u-navbar title="电桩管理">
-			<view class="delete">删除</view>
+		
 		</u-navbar>
 		<view class="details">
 			<view class="name">
-				大润发顶楼停车场01号直流80kW
+				{{detail.stationName}}|	{{detail.name}}
 			</view>
+			
 			<view class="info">
 				<view class="info-text">
-					<p>2015国标 |<text class="dc-fast"> 直流快充 </text> | 80kW</p>
-					<p class="tag-items">
-						<view class="tag">
-							对外开放
-						</view>
-						<view class="tag">
-							可预约
-						</view>
-						<view class="tag">
-							设备在线
-						</view>
-					</p>
+					<p>{{detail.chargingType}} |<text class="dc-fast"> {{detail.interfaceType}} </text> | {{detail.chargingPower}}kW</p>
+					
 				</view>
 				<view class="info-img">
-					<img src="../../assets/img/电桩管理.png" alt="">
+					<img :src="detail.stationImage"
+					 style="
+					     width: 100px;
+					     height: 75px;
+					 "
+					 alt="">
 				</view>
 			</view>
 
 			<view class="station-address">
 				<img src="../../assets/img/Frame 201.png" alt="">
 				<view class="address-text">
-					湖北省荆州市沙市区江津东路附155号
+					{{detail.address}}
 				</view>
 
-				<view class="navigation">
+				<view class="navigation" v-if="false">
 					<view class="iconfont address-font">
 						&#xe60c;
 
@@ -45,89 +41,86 @@
 			</view>
 			
 			<u-cell-group  >
-				<u-cell-item title="联系人" :arrow="false" value="李先生 15500001111"></u-cell-item>
-				<u-cell-item  title="电价" :arrow="false" value="1.25元/度(12:00-14:00)"> </u-cell-item>
-				<view class="price-detail">
+				<u-cell-item  v-if="price" title="电价" :arrow="false" :value="price.costPrice+'元/度('+price.firstTime+'-'+price.latestTime+')'"> </u-cell-item>
+				
+				<u-cell-item  v-if="deviceUser" title="联系人" :arrow="false" :value="deviceUser.realName+'  '+deviceUser.phone"></u-cell-item>
+				<view class="price-detail" v-if="price"
+				@click="gotoUrl('pagesFinance/user/chargingDetails?id='+detail.deviceNo)"
+				
+				>
 					价格详情
 				</view>
-				<u-cell-item  title="停车费" :arrow="false" value="新能源车2小时停车费"></u-cell-item>
-			</u-cell-group>
+<!-- 				<u-cell-item  title="停车费" :arrow="false" value="新能源车2小时停车费"></u-cell-item>
+ -->			</u-cell-group>
 
 		</view>
 
 <!-- 充电枪选项 -->
 <view class="gun-options">
 	<u-tabs :list="list1" :is-scroll="false" :current="current" @change="change" bar-width="125" inactive-color="#777777" active-color="#101010"></u-tabs>
-	<view class="tab-equipment" v-show="current==0">
+	
+	<view class="tab-equipment" v-show="current==0"  v-for="(item,i) in gunList" :key="i" >
 		<view class="equipment-top">
-			<text class="name">1号充电枪</text>  
-			<text class="switch"><u-switch v-model="checked" size="40" active-color="#FF7300"></u-switch></text>
+			<text class="name">{{item.channelNo}}号充电枪</text>  
+			<!-- <text class="switch"><u-switch v-model="checked" size="40" active-color="#FF7300"></u-switch></text>
 			<text class="radio"> 	
-			开启共享</text>
+			开启共享</text> -->
 		</view>
 		<view class="state">
+			
 			<view class="state-item">
-				工作状态:充电中 <text class="bot1"></text>
+				工作状态:{{item.workStatusText}} <text class="bot1 "
+				:class="{
+					bot2:!item.workStatus
+				}"
+				></text>
 			</view>
 			<view class="state-item">
-				工作状态:正常 <text class="bot1 bot2"></text>
+				开放共享:{{!item.enableShare?'关闭':'开启'}} <text class="bot1 "
+				:class="{
+					bot2:item.enableShare
+				}"
+				></text>
 			</view>
 			<view class="state-item">
-				工作状态:故障 <text class="bot1 bot2"></text>
+				开放预约:{{!item.enableAppointment ?'关闭':'开启'}} <text class="bot1 "
+				:class="{
+					bot2:item.enableAppointment
+				}"
+				></text>
 			</view>
 			<view class="state-item">
-				工作状态:联网 <text class="bot1 bot2"></text>
+				联网状态:{{!detail.online?'离线':'在线'}} <text class="bot1"
+				:class="{
+					bot2:detail.online
+				}"
+				></text>
+			</view>
+			
+			<view class="iconfont more" 	
+				 @click="gotoUrl('pagesFinance/user/myPile?id='+item.id)" 
+			>
+				<text class="set" >设置</text>&#xe600;
 			</view>
-			<view class="iconfont more"><text class="set" >设置</text>&#xe600;</view>
 		</view>
 		
 	</view>	
 	
-	<view class="tab-equipment"  v-show="current==0">
-		<view class="equipment-top">
-			<text class="name">2号充电枪</text>  
-			<text class="switch"><u-switch v-model="checked" size="40" active-color="#FF7300"></u-switch></text>
-			<text class="radio"> 	
-			开启共享</text>
-		</view>
-		<view class="state">
-			<view class="state-item">
-				工作状态:空闲 <text class="bot1 bot2"></text>
-			</view>
-			<view class="state-item">
-				工作状态:正常 <text class="bot1 bot2"></text>
-			</view>
-			<view class="state-item">
-				工作状态:故障 <text class="bot1 bot2"></text>
-			</view>
-			<view class="state-item">
-				工作状态:联网 <text class="bot1 bot2"></text>
-			</view>
-			<view class="iconfont more"><text class="set" >设置</text>&#xe600;</view>
-		</view>
-		
-	</view>
+	
 	<!-- 分润比例 -->
 	<view class="share" v-show="current==1">
 		<view class="title" >
 			<text class="line"></text>分润比列
 		</view>
-		<view class="item">
-			<view >
-				投资方
-			</view>
-			<view >
-				93% 
-			</view>
-		</view>
-		<view class="item">
+		<view class="item" v-for="(item,i) in sprList" :key="i" v-if="item.describe!='0%'" >
 			<view >
-				平台收益
+				{{item.name}}
 			</view>
 			<view >
-				7%
+				{{item.describe}}
 			</view>
 		</view>
+		 
 		
 	</view>
 	<!-- 设备信息 -->
@@ -172,15 +165,31 @@
 	</view>
 </template>
 <script>
+	import * as API from '@/apis/finance.js'
+	
 	export default {
 		data() {
 			return {
+				gunList:[],
+				detail:{
+					
+
+				},
+				deviceUser:{
+					phone: "",
+					realName: ""
+				},
+				price:{
+					costPrice:"",
+					firstTime: "",
+					latestTime: ""
+				},
+				sprList:[],
+				
 				list1: [{
 					name: '设备列表'
 				}, {
 					name: '分润比例'
-				},{
-					name:'设备信息'
 				}],
 				list2: [{
 					name: '是'
@@ -200,10 +209,37 @@
 					checked: false,
 			}
 		},
+		onLoad(op){
+			
+			this.id=op.id;
+			this.getInfo()
+		},
 		methods: {
 			change(index) {
 				this.current = index;
+			},
+			getInfo(){
+				uni.showLoading({
+					title:"加载中",mask:true,
+				})
+				API.carDeviceDetail({
+					deviceId:this.id
+				}).then((res) => {
+					this.detail=res.data.device	 
+					this.sprList=res.data.sprList
+					this.gunList=res.data.gunList
+					this.price=res.data.price;
+					this.deviceUser=res.data.deviceUser;
+					uni.hideLoading()
+					 
+				}).catch(error => {
+						uni.showToast({
+							
+							title:error
+						})
+				})
 			}
+			
 		}
 	}
 </script>
@@ -317,7 +353,7 @@
 		}
 		/deep/.u-cell__value{
 			text-align: left;
-			margin-left: 16px;
+			//margin-left: 16px;
 			color: #101010;
 			 font-size: 16px;
 		}
@@ -336,7 +372,7 @@
 			color: rgba(22, 119, 255, 100);
 			font-size: 14px;
 			position: absolute;
-			top: 70px;
+			top: 15px;
 			right: 20px;
 		}
 	}