ソースを参照

换电站列表

a1140836302 2 年 前
コミット
7e494cb376
81 ファイル変更2873 行追加1083 行削除
  1. 0 41
      common/scanChange.js
  2. 0 64
      common/websocket.js
  3. 0 128
      components/power-change-header/power-change-header - 副本.vue
  4. 355 0
      components/scan-info/scan-info.vue
  5. 37 0
      components/sub-title/sub-title.vue
  6. 2 3
      components/tab-bar/tab-bar.vue
  7. 1 1
      config.js
  8. 4 5
      main.js
  9. 11 2
      pages.json
  10. 111 47
      pages/index/index.vue
  11. 34 11
      pages/monitoring/index.vue
  12. 333 0
      pages/powerchange/index.vue
  13. 152 126
      pages/scan/index.vue
  14. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  15. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  16. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  17. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/Subtitle/Subtitle.js.map
  18. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/getmobile/getmobile.js.map
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/power-change-header/power-change-header.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/scan-info/scan-info.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/sub-title/sub-title.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/tab-bar/tab-bar.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/top-box/top-box.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/batteryinfo/index.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/carinfo/index.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/monitoring/index.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/powerchange/index.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/public/login.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/scan/index.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/car.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/car_show.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/index.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/record.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/record_show.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-steps/components/uni-steps/uni-steps.js.map
  39. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.js.map
  40. 3 1
      unpackage/dist/dev/mp-weixin/app.json
  41. 5 5
      unpackage/dist/dev/mp-weixin/common/main.js
  42. 2 2
      unpackage/dist/dev/mp-weixin/common/runtime.js
  43. 159 281
      unpackage/dist/dev/mp-weixin/common/vendor.js
  44. 12 12
      unpackage/dist/dev/mp-weixin/components/getmobile/getmobile.js
  45. 11 11
      unpackage/dist/dev/mp-weixin/components/power-change-header/power-change-header.js
  46. 355 0
      unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.js
  47. 4 0
      unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.json
  48. 0 0
      unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.wxml
  49. 129 0
      unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.wxss
  50. 150 0
      unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.js
  51. 4 0
      unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.json
  52. 1 0
      unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.wxml
  53. 40 0
      unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.wxss
  54. 13 14
      unpackage/dist/dev/mp-weixin/components/tab-bar/tab-bar.js
  55. 11 11
      unpackage/dist/dev/mp-weixin/components/top-box/top-box.js
  56. 14 14
      unpackage/dist/dev/mp-weixin/pages/batteryinfo/index.js
  57. 14 14
      unpackage/dist/dev/mp-weixin/pages/carinfo/index.js
  58. 112 46
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  59. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/index.json
  60. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  61. 15 2
      unpackage/dist/dev/mp-weixin/pages/index/index.wxss
  62. 49 23
      unpackage/dist/dev/mp-weixin/pages/monitoring/index.js
  63. 411 0
      unpackage/dist/dev/mp-weixin/pages/powerchange/index.js
  64. 9 0
      unpackage/dist/dev/mp-weixin/pages/powerchange/index.json
  65. 0 0
      unpackage/dist/dev/mp-weixin/pages/powerchange/index.wxml
  66. 77 0
      unpackage/dist/dev/mp-weixin/pages/powerchange/index.wxss
  67. 13 13
      unpackage/dist/dev/mp-weixin/pages/public/login.js
  68. 1 1
      unpackage/dist/dev/mp-weixin/pages/public/login.json
  69. 79 67
      unpackage/dist/dev/mp-weixin/pages/scan/index.js
  70. 0 0
      unpackage/dist/dev/mp-weixin/pages/scan/index.wxml
  71. 15 15
      unpackage/dist/dev/mp-weixin/pages/ucenter/car.js
  72. 14 14
      unpackage/dist/dev/mp-weixin/pages/ucenter/car_show.js
  73. 17 17
      unpackage/dist/dev/mp-weixin/pages/ucenter/index.js
  74. 15 15
      unpackage/dist/dev/mp-weixin/pages/ucenter/record.js
  75. 14 14
      unpackage/dist/dev/mp-weixin/pages/ucenter/record_show.js
  76. 2 1
      unpackage/dist/dev/mp-weixin/project.config.json
  77. 13 13
      unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js
  78. 13 13
      unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js
  79. 13 13
      unpackage/dist/dev/mp-weixin/uni_modules/uni-steps/components/uni-steps/uni-steps.js
  80. 11 11
      unpackage/dist/dev/mp-weixin/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.js
  81. 11 11
      unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js

+ 0 - 41
common/scanChange.js

@@ -1,41 +0,0 @@
-import storage from './storage'
-import * as https from './http'
-import ws from './websocket'
-import * as utils from './utils'
-
-export default{
-	swapConfirmDTO:null,
-	swapInfoDTO:null,
-	swapStepList:[],
-	InitWs(){
-		if(storage.get("exchangeNo")){
-			let msg = {
-				type: "subscribeExchange",
-				payLoad: {
-					exchangeNo: storage.get("exchangeNo")
-				}
-			}
-			if(ws.socketTask ==null){
-				ws.connect()
-				ws.onSocketOpen=()=>{
-					ws.onSocketMsg=(res)=>{
-						let data=JSON.parse(res.data)
-						console.log(data)
-						if(data.type === 'subscribe'){
-							console.log(data.state)
-						}else if(data.type === 'swapInfo' && data.state === 0){
-							this.swapConfirmDTO=data.swapConfirmDTO
-							this.swapStepList=data.swapStepList
-							this.swapInfoDTO=data.swapInfoDTO
-						}else if(data.type === 'start' && data.state === 0 ){
-							utils.msg('启动换电成功')
-						}
-					}
-					ws.sendmessage(msg)
-				}
-			}	
-		}else{
-			utils.msg('未获取到换电编号')
-		}
-	},
-}

+ 0 - 64
common/websocket.js

@@ -1,64 +0,0 @@
-import config from '../config'
-import storage from './storage'
-import {navigateTo} from './utils'
-
-export default {
-	socketTask: null,
-	timer: null,
-	/**
-	 * 创建 WebSocket 连接。
-	 */
-	connect(){
-		let users = storage.getJson("users");
-		let token = storage.getJson("token");
-		let stationCode=storage.get("stationCode")
-		if(users == null || token == null){
-			navigateTo("public/login");
-			return false;
-		}
-		if(this.timer !=null){
-			clearInterval(this.timer)
-			this.timer=null
-		}
-		if(this.socketTask!=null){
-			this.socketTask.close();
-		}
-		this.socketTask = uni.connectSocket({
-			url: config.web_socket_url+stationCode+'/'+token,
-			header: {
-				'content-type': 'application/json'
-			},
-			complete: ()=> {}
-		});
-		// 监听WebSocket连接打开事件。
-		this.socketTask.onOpen(() => {
-			console.log('WebSocket连接已打开!');
-			this.onSocketOpen()
-		});
-		//接收服务器数据事件
-		this.socketTask.onMessage(res=>{
-			this.onSocketMsg(res)
-		})
-		//监听WebSocket关闭事件
-		this.socketTask.onClose(()=>{
-			console.log('WebSocket连接已关闭!');
-		})
-		this.socketTask.onError(()=>{
-			console.log("WebSocket连接错误")
-		})
-		if(this.timer ==null){
-			this.timer=setInterval(()=>{
-				if(this.socketTask.readyState!=1){
-					this.socketTask.close()
-					this.connect()
-				}
-			},2000)
-		}
-	},
-	onSocketOpen(){},
-	onSocketMsg(){},
-	sendmessage(msg){
-		this.socketTask.send({data:JSON.stringify(msg)})
-	},
-}
-

+ 0 - 128
components/power-change-header/power-change-header - 副本.vue

@@ -1,128 +0,0 @@
-<template>
-	<view class="header">
-		<navigator url="/pages/monitoring/index" open-type="redirect" :class="{'active':currentPage===1}">换电流程
-		</navigator>
-		<navigator url="/pages/carinfo/index" open-type="redirect" :class="{'active':currentPage===2}">车辆信息</navigator>
-		<navigator url="/pages/batteryinfo/index" open-type="redirect" :class="{'active':currentPage===3}">电池信息
-		</navigator>
-	</view>
-</template>
-
-<script>
-	export default {
-		name: "power-change-header",
-		data() {
-			return {
-				currentPage: 0,
-				socketOpen: false
-			};
-		},
-		mounted() {
-			this.getRoute()
-			this.initWs()
-		},
-		methods: {
-			initWs11() {
-				let msg = {
-					type: "subscribeExchange",
-					payLoad: {
-						exchangeNo: "aaab"
-					}
-				}
-				this.$ws.connect()
-				this.$ws.onSocketOpen=()=>{
-					this.$ws.sendmessage(msg)
-				}
-				this.$ws.onSocketMsg=(res)=>{
-					console.log(res)
-				}
-			},
-			initWs() {
-				let that = this
-				uni.connectSocket({
-					url: 'ws://192.168.0.89:8088/ws/abbbccc/SSSSSSSS', //仅为示例,并非真实接口地址。
-					complete: (res) => {
-						console.log(res)
-					}
-				});
-				uni.onSocketOpen(function(res) {
-					//扫码成功之后发送订阅消息
-					that.socketOpen = true;
-					let msg = {
-						type: "subscribeExchange",
-						payLoad: {
-							exchangeNo: "aaab"
-						}
-					}
-					//确认换电发送订阅消息
-					let msg2 = {
-						type: "startExchange",
-						payLoad: {
-							exchangeNo: "aaab"
-						}
-					}
-					if (that.socketOpen) {
-						uni.sendSocketMessage({
-							data: JSON.stringify(msg)
-						});
-						setTimeout(() => {
-							uni.sendSocketMessage({
-								data: JSON.stringify(msg2)
-							});
-						}, 3000)
-					}
-					console.log('WebSocket连接已打开!');
-				});
-				uni.onSocketError(function(res) {
-					console.log('WebSocket连接打开失败,请检查!');
-				});
-				uni.onSocketMessage(function(res) {
-					console.log('收到服务器内容:' + res.data);
-				});
-				uni.onSocketClose(function(res) {
-					console.log('WebSocket 已关闭!');
-				});
-			},
-			getRoute() {
-				let curPage = getCurrentPages();
-				let route = curPage[curPage.length - 1].route
-				if (route === 'pages/monitoring/index') {
-					this.currentPage = 1
-				} else if (route === 'pages/carinfo/index') {
-					this.currentPage = 2
-				} else if (route === 'pages/batteryinfo/index') {
-					this.currentPage = 3
-				}
-
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.header {
-		display: flex;
-		padding: 30rpx;
-		width: 690rpx;
-		color: #86909c;
-		font-size: 32rpx;
-		justify-content: space-around;
-
-		.active {
-			color: #1d2129;
-			font-weight: bold;
-			position: relative;
-		}
-
-		.active::after {
-			content: '';
-			background-image: url('@/static/line.png');
-			background-size: 100% 100%;
-			width: 52rpx;
-			height: 9rpx;
-			position: absolute;
-			bottom: -25rpx;
-			left: 32%;
-		}
-	}
-</style>

+ 355 - 0
components/scan-info/scan-info.vue

@@ -0,0 +1,355 @@
+<template>
+	<view>
+		<view class="progress_box">
+			<canvas class="progress_bg" canvas-id="cpbg"></canvas>
+			<canvas class="progress_bar" canvas-id="cpbar"></canvas>
+			<canvas class="progress_line" canvas-id="cpline"></canvas>
+			<view class="progress_txt">
+				<view class="progress_info">{{ swapConfirmDTO.vehSoc || 0 }}%</view>
+				<view>当前电池SOC</view>
+			</view>
+		</view>
+		<view class="battery-info">
+			<view>
+				<view>{{swapInfoDTO.mileage || '-'}}km</view>
+				<view>累计里程</view>
+			</view>
+			<view>
+				<view>{{ swapConfirmDTO.vehVol || '-' }}V</view>
+				<view>电压</view>
+			</view>
+			<view>
+				<view>{{ swapConfirmDTO.vehCur || '-' }}A</view>
+				<view>电流</view>
+			</view>
+		</view>
+		<view class="carinfo">
+			<view class="battery-list">
+				<view class="icon">
+					<image src="../../static/p1.png"></image>
+				</view>
+				<view class="info">
+					<view class="word">车牌号</view>
+					<view class="number">{{ swapConfirmDTO.plate || '-' }}</view>
+				</view>
+			</view>
+			<view class="battery-list">
+				<view class="icon">
+					<image src="../../static/p2.png"></image>
+				</view>
+				<view class="info">
+					<view class="word">当前车辆电池SOC</view>
+					<view class="number">{{ swapConfirmDTO.vehSoc || '-' }}%</view>
+				</view>
+			</view>
+			<view class="battery-list">
+				<view class="icon">
+					<image src="../../static/p3.png"></image>
+				</view>
+				<view class="info">
+					<view class="word">换电电池SOC</view>
+					<view class="number">{{ swapConfirmDTO.swapSoc || '-' }}%</view>
+				</view>
+			</view>
+			<view class="battery-list">
+				<view class="icon">
+					<image src="../../static/p4.png"></image>
+				</view>
+				<view class="info">
+					<view class="word">预估换电费用</view>
+					<view class="number">{{ swapConfirmDTO.expense || '-' }}元</view>
+				</view>
+			</view>
+			<view class="battery-list">
+				<view class="icon">
+					<image src="../../static/p5.png"></image>
+				</view>
+				<view class="info">
+					<view class="word">服务费</view>
+					<view class="number">{{ swapConfirmDTO.serviceCharge || '-' }}元</view>
+				</view>
+			</view>
+		</view>
+		<button type="primary" @click="goto('/pages/powerchange/index')" class="submit">确认换电</button>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "scan-info",
+		props: ['swapConfirmDTO', 'swapInfoDTO', 'exchangeNo'],
+		data() {
+			return {
+				percent: 0,
+				currentAngle: null,
+				angleTimer: null
+			}
+		},
+		beforeCreate() {
+			if (!uni.getStorageSync("token")) {
+				uni.reLaunch({
+					url: '/pages/public/login?item=scan'
+				})
+			}
+		},
+		mounted() {
+			this.drawProgressbg();
+			this.$bus.$on('OndrawCircle', this.drawCircle) //参数为1-100
+			this.drawLine();
+		},
+		methods: {
+			goto(url) {
+				let that = this
+				if (uni.getStorageSync("token")) {
+					if (this.exchangeNo) {
+						let msg = {
+							type: "startExchange",
+							payLoad: {
+								exchangeNo: this.exchangeNo
+							}
+						}
+						this.$bus.$emit('sendMsg2', {
+							data: JSON.stringify(msg)
+						})
+					}
+				} else {
+					uni.reLaunch({
+						url: '/pages/public/login?item=scan'
+					})
+				}
+
+			},
+			drawProgressbg() {
+				// 自定义组件实例 this ,表示在这个自定义组件下查找拥有 canvas-id 的 <canvas/>
+				var ctx = uni.createCanvasContext('cpbg', this);
+				ctx.setLineWidth(14); // 设置圆环的宽度
+				ctx.setStrokeStyle('#dadada'); // 设置圆环的颜色
+				ctx.setLineCap('round'); // 设置圆环端点的形状
+				ctx.setLineCap('square'); // 设置圆环端点的形状
+				ctx.beginPath(); //开始一个新的路径
+				ctx.arc(110, 110, 70, 0 * Math.PI, 2 * Math.PI, false);
+				//设置一个原点(110,110),半径为100的圆的路径到当前路径
+				ctx.stroke(); //对当前路径进行描边
+				ctx.draw();
+			},
+			drawCircle(step) {
+				//清除上一次的定时器
+				if (this.angleTimer != null) {
+					clearInterval(this.angleTimer)
+					this.angleTimer = null
+				}
+				let ctx = uni.createCanvasContext('cpbar', this);
+				// 进度条的渐变(中心x坐标-半径-边宽,中心Y坐标,中心x坐标+半径+边宽,中心Y坐标)
+				let gradient = ctx.createLinearGradient(0, 0, 130, 0);
+
+				ctx.setLineCap('square');
+				let interval = 0.05;
+				let end = (step / 100) * 2 * Math.PI - Math.PI / 2; // 最后的角度
+				let current = this.currentAngle == null ? -Math.PI / 2 : this.currentAngle; // 起始角度 上次结束或者-90
+				this.currentAngle = end //保存上次的角度
+
+				if (end > current) {
+					//递增情况
+					this.angleTimer = setInterval(() => {
+						gradient.addColorStop('0', '#58be6b');
+						gradient.addColorStop('1.0', '#58be6b');
+						ctx.setLineWidth(12);
+						ctx.setStrokeStyle(gradient);
+						ctx.beginPath();
+						if (current < end) {
+							current += interval
+						}
+						if (current >= end) {
+							current = end
+							clearInterval(this.angleTimer)
+							this.angleTimer = null
+						}
+						ctx.arc(110, 110, 70, -Math.PI / 2, current, false)
+						ctx.stroke()
+						ctx.draw()
+					}, 20)
+
+				} else if (end < current) {
+					//递减情况
+					this.angleTimer = setInterval(() => {
+						ctx.beginPath();
+						gradient.addColorStop('0', '#58be6b');
+						gradient.addColorStop('1.0', '#58be6b');
+						ctx.setLineWidth(12);
+						ctx.setStrokeStyle(gradient);
+						if (current > end) {
+							current -= interval
+						}
+						if (current <= end) {
+							current = end
+							clearInterval(this.angleTimer)
+							this.angleTimer = null
+						}
+						ctx.arc(110, 110, 70, -Math.PI / 2, current, false)
+						ctx.stroke()
+						ctx.draw()
+					}, 20)
+				} else {
+					//相等
+					return
+				}
+
+			},
+			drawLine() {
+				var context = uni.createCanvasContext("cpline", this);
+				var r = 70;
+				var x0 = 110;
+				var y0 = 110;
+				var x;
+				var y;
+				var lineWidth = 12;
+
+				for (let i = 0; i < 60; i++) {
+					context.beginPath();
+					context.setLineWidth(lineWidth);
+					context.setStrokeStyle("#FFFFFF");
+
+					x = x0 - r * Math.sin(((6 * (i + 1) - 3) * Math.PI) / 180);
+					y = y0 - r * Math.cos(((6 * (i + 1) - 3) * Math.PI) / 180);
+
+					// console.log('x0:' + x0 + '   y0:' + y0 + '    x:' + x + '    y:' + y);
+					context.moveTo(x, y);
+					context.arc(
+						x0,
+						y0,
+						r,
+						((270 - 6 * (i + 1) + 3) * Math.PI) / 180,
+						((270 - 6 * i) * Math.PI) / 180,
+						false
+					);
+					context.stroke();
+					context.closePath();
+				}
+				context.stroke();
+				context.draw();
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.progress_box {
+		position: relative;
+		width: 400rpx;
+		height: 400rpx;
+		display: flex;
+		margin: 0 auto;
+		align-items: center;
+		justify-content: center;
+		text-align: center;
+	}
+
+	.progress_bg {
+		position: absolute;
+		width: 220px;
+		height: 220px;
+	}
+
+	.progress_bar {
+		position: absolute;
+		width: 220px;
+		height: 220px;
+	}
+
+	.progress_line {
+		position: absolute;
+		width: 220px;
+		height: 220px;
+	}
+
+	.progress_txt {
+		position: absolute;
+		font-size: 28upx;
+		color: #999999;
+	}
+
+	.progress_info {
+		font-size: 36upx;
+		padding-left: 16upx;
+		letter-spacing: 2upx;
+		font-size: 52upx;
+		color: #333333;
+	}
+
+	.progress_dot {
+		width: 16upx;
+		height: 16upx;
+		border-radius: 50%;
+		background-color: #fb9126;
+	}
+
+	.battery-info {
+		display: flex;
+		justify-content: space-between;
+		padding: 0 80rpx;
+		text-align: center;
+		line-height: 36rpx;
+
+		view>view:first-child {
+			font-weight: bold;
+		}
+
+		view>view:last-child {
+			color: #939da7;
+			font-size: 26rpx;
+		}
+	}
+
+	.carinfo {
+		padding-left: 45rpx;
+		width: 100%;
+		box-sizing: border-box;
+		margin-top: 90rpx;
+
+		.battery-list {
+			display: flex;
+			width: 100%;
+			margin-top: 36rpx;
+
+			.icon {
+				width: 55rpx;
+				padding-top: 5rpx;
+
+				image {
+					width: 32rpx;
+					height: 32rpx;
+				}
+			}
+
+			.info {
+				display: flex;
+				flex: 1;
+				border-bottom: #e5e5e5 solid 1px;
+				justify-content: space-between;
+				font-size: 28rpx;
+				padding-bottom: 36rpx;
+				padding-right: 40rpx;
+				box-sizing: border-box;
+
+				.word {
+					color: #86909c;
+				}
+
+				.number {
+					color: #333333;
+					font-weight: bold;
+				}
+			}
+		}
+	}
+
+	.submit {
+		width: 600rpx;
+		height: 88rpx;
+		margin: 35rpx auto;
+		font-size: 36rpx;
+		background-color: #58be6b;
+		color: #fff;
+		border-radius: 44rpx;
+	}
+</style>

+ 37 - 0
components/sub-title/sub-title.vue

@@ -0,0 +1,37 @@
+<template>
+	<view class="list">
+		<view>{{descript}}:</view>
+		<view>{{value || '-'}}{{unit || ''}}</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props:['descript','value','unit'],
+		name:'sub-title',
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.list {
+		width: 100%;
+		display: flex;
+		height: 100rpx;
+		justify-content: space-between;
+		font-size: 30rpx;
+		view:first-child {
+			color: #86909c;
+		}
+		view:last-child {
+			color: #1d2129;
+		}
+	}
+</style>

+ 2 - 3
components/tab-bar/tab-bar.vue

@@ -55,12 +55,11 @@
 						// 		})	
 						// 	}
 						// });
-						this.$storage.set("stationCode",stationCode)
+						// this.$storage.set("stationCode",stationCode)
 						this.$http.getStationExchange({stationCode:stationCode}).then(res=>{
 							if(res.code === 0 && res.data){
-								this.$storage.set("exchangeNo",res.data)
 								uni.navigateTo({
-									url:'/pages/scan/index'
+									url:'/pages/powerchange/index?stationCode='+stationCode+'&exchangeNo='+res.data
 								})
 							}else{
 								this.$utils.msg(res.msg)

+ 1 - 1
config.js

@@ -1,7 +1,7 @@
 export default {
 	web_name: "智小狸",
 	//uni_app_web_api_url: "https://zk.li-ai.com.cn/driver/api", //后端统一接口路径
-	uni_app_web_api_url: "http://192.168.0.84:8088/driver/api",
+	uni_app_web_api_url: "https://53670u39m2.goho.co/driver/api",
 	//web_socket_url:'ws://zk.li-ai.com.cn:8088/ws/abbbccc/SSSSSSSS',
 	web_socket_url:'ws://192.168.0.84:8088/driver/ws/',
 	debug: true

+ 4 - 5
main.js

@@ -6,8 +6,6 @@ import * as utils from './common/utils'
 import store from './store'
 import storage from 'common/storage'
 import moment from 'moment'
-import ws from './common/websocket'
-import scan from './common/scanChange'
 
 Vue.config.productionTip = false
 Vue.prototype.$config = config
@@ -16,12 +14,13 @@ Vue.prototype.$http = http
 Vue.prototype.$store = store
 Vue.prototype.$storage = storage
 Vue.prototype.$moment = moment
-Vue.prototype.$ws=ws
-Vue.prototype.$scan=scan
 
 App.mpType = 'app'
 
 const app = new Vue({
-    ...App
+    ...App,
+	beforeCreate() {
+		Vue.prototype.$bus = this;
+	}
 })
 app.$mount()

+ 11 - 2
pages.json

@@ -5,9 +5,18 @@
 			"style": {
 				"navigationBarTitleText": "智小狸",
 				"enablePullDownRefresh": false,
-				"onReachBottomDistance": 10
+				"onReachBottomDistance": 50
 			}
 		},
+		{
+		    "path" : "pages/powerchange/index",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "换电流程",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		},
 		{
 		    "path" : "pages/ucenter/record",
 		    "style" :                                                                                    
@@ -92,7 +101,7 @@
             "path" : "pages/public/login",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "用户登录",
                 "enablePullDownRefresh": false
             }
             

+ 111 - 47
pages/index/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<view class="main">
 		<top-box :token="token" :userinfo="userinfo"></top-box>
 		<view class="main-box">
 			<view class="carinfo">
@@ -67,23 +67,21 @@
 				</view>
 				<view>换电站信息</view>
 			</view>
-			<view class="change-box">
-				<view class="title">三江新区沙坪换电站</view>
+			<view class="change-box" v-for="(item,index) in stationDataVoList" :key="item.stationInfo.id">
+				<view class="title">{{item.stationInfo.stationName}}</view>
 				<view class="tags">
 					<view>常去地点</view>
 					<view>24小时营业</view>
 				</view>
 				<view class="piclist">
-					<view>
-						<image src="../../static/pic.jpg"></image>
-					</view>
-					<view>
-						<image src="../../static/pic.jpg"></image>
+					<view v-for="(img,index) in item.urlList" :key="index">
+						<image :src="img"></image>
 					</view>
 				</view>
 				<view class="address">
-					<view>876m · 四川省宜宾市三江新区沙坪镇沙溪街道89号</view>
-					<view @click="jumptest">
+					<view v-if="item.stationInfo.distance">{{item.stationInfo.distance >= 1000 ? (item.stationInfo.distance/1000).toFixed(1)+'km' : item.stationInfo.distance+'m'}} · {{item.stationInfo.address}}</view>
+					<view v-else>{{item.stationInfo.address}}</view>
+					<view @click="makePhone(item.stationInfo.phoneNum)">
 						<image src="../../static/icon4.png"></image>
 						<view>电话</view>
 					</view>
@@ -94,10 +92,11 @@
 				</view>
 				<view class="battery-num">
 					<view>可换电池</view>
-					<view>8</view>
+					<view>{{item.batteryNum}}</view>
 				</view>
 			</view>
 		</view>
+		<view class="grace-loading" v-if="isLoadAll">{{ loadingTxt }}</view>
 		<tab-bar></tab-bar>
 	</view>
 
@@ -119,13 +118,18 @@
 					selectedBackgroundColor: 'rgba(88, 190, 107,0.9)',
 				},
 				params: {
-					lat: undefined,
-					lng: undefined,
+					lat: null,
+					lng: null,
 					page: 1,
 					pageSize: 1,
 					orderByWays: 'desc'
 				},
-				noData:null,
+				noData: null,
+				stationDataVoList: [],
+				isLoadAll: false,
+				totalPages: 1, // 总页数
+				loadingTxt: '加载中...',
+				pageState:0,
 			}
 		},
 		onShow() {
@@ -139,34 +143,78 @@
 				this.isAuthShow = true;
 			});
 		},
-		onLoad() {
+		beforeMount() {
 			this.mapSelect()
 		},
 		mounted() {
 			this.getHomePage()
 		},
-		onReachBottom(){
-			
+		onReachBottom() {
+			this.pageState=1
+			if (this.totalPages <= this.params.page) {
+				if(this.$storage.getJson("token")!=null){
+					this.$utils.msg('没有更多了...')
+				}
+			} else {
+				this.params.page++
+				this.$utils.msg('数据加载中...')
+				this.getStationInfo() // 每次滑动请求接口,实现上拉加载更多数据
+			}
 		},
 		methods: {
-			jumptest(){
-				uni.navigateTo({
-					url:'/pages/scan/index'
+			//拨打电话
+			makePhone(num) {
+				uni.makePhoneCall({
+					phoneNumber: num.toString(), //电话号码
+				})
+			},
+			//获取换电站信息
+			getStationInfo() {
+				this.$http.homepage(this.params).then(res => {
+					console.log(res)
+					if (res.code === 0) {
+						if (res.data.stationDataVoList.list.length == 0) {
+							this.loadingTxt = '暂无数据'
+						} else {
+							if(this.pageState === 1){
+								this.stationDataVoList = [...this.stationDataVoList, ...res.data.stationDataVoList.list]
+							}else{
+								this.stationDataVoList = res.data.stationDataVoList.list
+							}
+						}
+					} else {
+						this.loadingTxt = '暂无数据'
+						// this.$utils.msg(res.msg)
+					}
 				})
 			},
 			//获取车辆信息
 			getHomePage() {
 				this.$http.homepage(this.params).then(res => {
 					console.log(res)
-					if(res.code === 0){
-						if(res.data.vehDataVoList.length==0){
-							this.noData='暂无记录'
-						}else{
+					if (res.code === 0) {
+						if (res.data.vehDataVoList.length == 0) {
+							this.noData = '暂无记录'
+						} else {
 							this.datalist = res.data.vehDataVoList
 						}
-					}else{
-						this.noData='暂无记录'
-						this.$utils.msg(res.msg)
+						if (res.data.stationDataVoList.list.length == 0) {
+							this.loadingTxt = '暂无数据'
+							this.isLoadAll = true;
+						} else {
+							this.stationDataVoList = res.data.stationDataVoList.list
+							this.totalPages = res.data.stationDataVoList.total
+						}
+					} else {
+						this.noData = '暂无记录'
+						this.loadingTxt = '暂无数据'
+						this.isLoadAll = true;
+						let token = this.$storage.getJson("token");
+						if(token == null){
+							this.$utils.msg('请先登录')
+						}else{
+							this.$utils.msg(res.msg)
+						}
 					}
 				})
 			},
@@ -175,10 +223,10 @@
 			},
 			//打开地图导航
 			jumpmaps() {
-				if (this.latitude && this.longitude) {
+				if (this.params.lat && this.params.lng) {
 					uni.openLocation({
-						latitude: 29.632675,
-						longitude: 106.569374,
+						latitude: this.params.lat,
+						longitude: this.params.lng,
 						name: '渝北区风暴之眼电竞酒店(机场路南)',
 						address: '重庆市重庆市渝北区汇流路1号'
 					})
@@ -193,12 +241,12 @@
 					type: 'gcj02',
 					isHighAccuracy: true,
 					success: function(res) {
-						that.latitude = res.latitude
-						that.longitude = res.longitude
+						that.params.lat = res.latitude
+						that.params.lng = res.longitude
 						console.log(res, 'getLocation')
+						that.getStationInfo()
 					},
 					fail: () => {
-						this.getMapLocation()
 					},
 				})
 			},
@@ -241,8 +289,7 @@
 								},
 							})
 						}
-						if (status['scope.userLocation'] === true && this.latitude === null && this
-							.longitude === null) {
+						if (status['scope.userLocation'] === true && this.params.lat === null && this.params.lng === null) {
 							uni.showToast({
 								title: '请开启您手机的位置信息!',
 								icon: 'none',
@@ -259,36 +306,40 @@
 					},
 				})
 			},
-			//扫码进入换电信息页面
-			toscan() {
-				uni.switchTab({
-					url: '/pages/scan/index'
-				})
-			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
+	.main{
+		height: 100vh;
+	}
 	.authorization {
 		width: 640rpx;
 		height: 840rpx;
 		background-color: #fff;
 		border-radius: 20rpx;
 	}
-
+	.grace-loading{
+		position: relative;
+		text-align: center;
+		margin-top: 200rpx;
+		color: #979797;
+	}
 	.main-box {
-		padding: 0 30rpx;
+		padding: 0 30rpx 30rpx 30rpx;
 		.carinfo {
 			width: 100%;
 			height: 350rpx;
 		}
-		.norecord{
+
+		.norecord {
 			text-align: center;
 			color: #86909c;
 			position: relative;
 			top: 40%;
 		}
+
 		.swiper-box {
 			height: 380rpx;
 			.swiper-item {
@@ -301,9 +352,11 @@
 				display: flex;
 				flex-direction: column;
 				justify-content: space-between;
+
 				.plate {
 					display: flex;
 					justify-content: space-between;
+
 					view:first-child {
 						flex: 1;
 					}
@@ -324,25 +377,30 @@
 
 				.plate-number {
 					display: flex;
+
 					image {
 						width: 26rpx;
 						height: 26rpx;
 						vertical-align: middle;
 					}
+
 					view:first-child {
 						font-weight: 600;
 						font-size: 32rpx;
 						padding-right: 15rpx;
 					}
 				}
+
 				.battery-soc {
 					display: flex;
 
 					view:first-child {
 						width: 138rpx;
 					}
+
 					view:last-child {
 						flex: 1;
+
 						.strip {
 							/* 父元素相对定位 */
 							position: relative;
@@ -351,11 +409,13 @@
 							background-color: #fff;
 							top: 10rpx;
 						}
+
 						.blue {
 							height: 18rpx;
 							background-color: #ff7d00;
 							font-size: 28rpx;
 						}
+
 						.protext {
 							width: 2rpx;
 							height: 32rpx;
@@ -365,6 +425,7 @@
 							/* 定位方向:属性值 */
 							top: -9rpx
 						}
+
 						.pronumber {
 							font-size: 26rpx;
 							font-weight: bold;
@@ -374,6 +435,7 @@
 						}
 					}
 				}
+
 				.battery-info {
 					display: flex;
 					justify-content: space-between;
@@ -416,7 +478,9 @@
 				line-height: 32rpx;
 			}
 		}
-
+		.change-box:last-child{
+			margin-bottom: 100rpx !important;
+		}
 		.change-box {
 			width: 690rpx;
 			box-sizing: border-box;
@@ -426,7 +490,7 @@
 			display: flex;
 			flex-direction: column;
 			overflow: hidden;
-
+			margin-bottom: 30rpx;
 			.title {
 				font-weight: bold;
 				color: #110d2e;
@@ -452,7 +516,7 @@
 				margin: 18rpx 0rpx;
 				width: 630rpx;
 				overflow: hidden;
-
+				
 				// view{
 				// 	margin-right: 15rpx;
 				// }

+ 34 - 11
pages/monitoring/index.vue

@@ -32,21 +32,44 @@
 				step:this.$scan.swapStepList.length-1,
 				currentDescript:'',
 				currentTime:'',
-				plate:'',
+				plate:'',
+				swapInfoDTO:null,
 			}
 		},
-
+		mounted() {
+			this.InitWs()
+		},
 		methods: {
 			InitWs(){
-				console.log(this.$scan,8989)
-				this.$scan.InitWs()
-				setTimeout(()=>{
-					this.swapStepList=this.$scan.swapStepList
-					this.step=this.$scan.swapStepList.length-1
-					this.currentDescript=this.$scan.swapStepList.slice(-1)[0].description,
-					this.currentTime=this.$scan.swapStepList.slice(-1)[0].seqTime,
-					this.plate=this.$scan.swapConfirmDTO.plate
-				},1000)
+				if (this.$storage.get("exchangeNo")) {
+					let msg = {
+						type: "subscribeExchange",
+						payLoad: {
+							exchangeNo: this.$storage.get("exchangeNo")
+						}
+					}
+					if (this.$ws.socketTask == null) {
+						this.$ws.connect()
+						this.$ws.onSocketOpen = () => {
+							this.getWsData()
+							this.$ws.sendmessage(msg)
+						}
+					}else{
+						this.getWsData()
+						this.$ws.sendmessage(msg)
+					}
+				}else {
+					this.$utils.msg('未获取到换电编号')
+				}
+				// console.log(this.$scan,8989)
+				// this.$scan.InitWs()
+				// setTimeout(()=>{
+				// 	this.swapStepList=this.$scan.swapStepList
+				// 	this.step=this.$scan.swapStepList.length-1
+				// 	this.currentDescript=this.$scan.swapStepList.slice(-1)[0].description,
+				// 	this.currentTime=this.$scan.swapStepList.slice(-1)[0].seqTime,
+				// 	this.plate=this.$scan.swapConfirmDTO.plate
+				// },1000)
 			}
 		}
 	}

+ 333 - 0
pages/powerchange/index.vue

@@ -0,0 +1,333 @@
+<template>
+	<view>
+		<scan-info 
+			:swapInfoDTO="swapInfoDTO" 
+			:swapConfirmDTO="swapConfirmDTO" 
+			:exchangeNo="exchangeNo"
+			v-show="pageState===2">
+		</scan-info>
+		<view class="swapinfo" v-show="pageState===1">
+			<view class="header">
+				<view @click="getTab(1)" :class="{'active':currentTab===1}">换电流程</view>
+				<view @click="getTab(2)" :class="{'active':currentTab===2}">车辆信息</view>
+				<view @click="getTab(3)" :class="{'active':currentTab===3}">电池信息</view>
+			</view>
+			<view class="changeProcess" v-show="currentTab===1">
+				<view class="changeCurrent">
+					<view class="info">
+						<view>
+							<image src="../../static/icon7.png"></image>
+						</view>
+						<view>{{currentDescript || '-'}}</view>
+					</view>
+					<view class="times">
+						{{currentTime || '-'}} | {{plate || '-'}}
+					</view>
+				</view>
+				<view class="timeline">
+					<view class="timeinfo">
+						<view class="list" v-for="(item,index) in swapStepList" :key="index">
+							<view>{{$moment(item.seqTime).format("YYYY-MM-DD")}}</view>
+							<view>{{$moment(item.seqTime).format("HH:mm:ss")}}</view>
+						</view>
+					</view>
+					<view class="line">
+						<uni-steps :options="swapStepList" :active="step" direction="column"></uni-steps>
+					</view>
+				</view>
+			</view>
+			<view class="changeCar" v-show="currentTab===2">
+				<view class="ban">
+					<image src="../../static/car-info.png"></image>
+				</view>
+				<view class="info-box">
+					<sub-title descript="车牌" :value="swapInfoDTO.plate"></sub-title>
+					<sub-title descript="VIN码" :value="swapInfoDTO.vin"></sub-title>
+					<sub-title descript="累计里程" :value="swapInfoDTO.mileage" unit="km"></sub-title>
+					<sub-title descript="累计换电" :value="swapInfoDTO.swapNum" unit="次"></sub-title>
+					<sub-title descript="解锁状态" :value="swapInfoDTO.lockState?'已解锁':'未解锁'"></sub-title>
+					<sub-title descript="上电状态" :value="swapInfoDTO.powerOnState?'已下电':'未下电'"></sub-title>
+				</view>
+			</view>
+			<view class="changeBattery" v-show="currentTab===3">
+				<view class="ban">
+					<image src="../../static/battery-info.png"></image>
+				</view>
+				<view class="info-box">
+					<sub-title descript="车辆电池编号" :value="swapInfoDTO.vehSn"></sub-title>
+					<sub-title descript="车辆电池SOC" :value="swapInfoDTO.vehSoc" unit="%"></sub-title>
+					<sub-title descript="换电电池编号" :value="swapInfoDTO.swapSn"></sub-title>
+					<sub-title descript="换电电池SOC" :value="swapInfoDTO.swapSoc" unit="%"></sub-title>
+					<sub-title descript="换电量" :value="swapInfoDTO.swapCapacity" unit="(kW/h)"></sub-title>
+					<sub-title descript="累计里程" :value="swapInfoDTO.mileage" unit="km"></sub-title>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				swapStepList: [],
+				step: 0,
+				currentDescript: '',
+				currentTime: '',
+				plate: '',
+				swapInfoDTO: null,
+				swapConfirmDTO: null,
+				currentTab: 1, //当前tab
+				swapState: -1,
+				ws: null,
+				timer: null,
+				exchangeNo:null,
+			}
+		},
+		mounted() {
+
+		},
+		onLoad(options) {
+			this.InitWs(options.exchangeNo, options.stationCode)
+			this.exchangeNo=options.exchangeNo
+		},
+		onUnload() {
+			console.log('onUnload')
+			clearInterval(this.timer)
+			this.timer=null
+			this.ws.close()
+			uni.redirectTo({
+				url:'/pages/index/index'
+			})
+		},
+		computed: {
+			pageState() {
+				if (this.swapState === -1) {
+					return 0
+				} else if (this.swapState === 1 || this.swapState === 2) {
+					return 1
+				} else {
+					return 2
+				}
+			}
+		},
+		methods: {
+			//切换tab
+			getTab(num) {
+				if (num === 2) {
+					this.currentTab = 2
+				} else if (num === 3) {
+					this.currentTab = 3
+				} else {
+					this.currentTab = 1
+				}
+			},
+			//判断websocket是否链接上
+			InitWs(exchangeNo, stationCode) {
+				if (this.ws != null) {
+					this.ws.close()
+					this.ws = null
+				}
+				if (this.timer != null) {
+					clearInterval(this.timer)
+					this.timer = null
+				}
+				let users = this.$storage.getJson("users");
+				let token = this.$storage.getJson("token");
+				if (users == null || token == null) {
+					navigateTo("public/login");
+					return false;
+				}
+				this.ws = uni.connectSocket({
+					url: this.$config.web_socket_url + stationCode + '/' + token,
+					header: {
+						'content-type': 'application/json'
+					},
+					complete: () => {}
+				})
+				this.ws.onOpen(() => {
+					let msg = {
+						type: "subscribeExchange",
+						payLoad: {
+							exchangeNo: exchangeNo
+						}
+					}
+					this.ws.send({
+						data: JSON.stringify(msg)
+					})
+					this.$bus.$on('sendMsg2',this.sendExchangeMsg)
+				})
+				this.ws.onMessage((res) => {
+					let data = JSON.parse(res.data)
+					console.log(data)
+					if (data.type === 'subscribe') {
+						if (data.state === 0) {
+							console.log('订阅成功')
+						} else {
+							this.$utils.msg('订阅失败')
+						}
+					} else if (data.type === 'swapInfo') {
+						this.swapConfirmDTO = data.swapConfirmDTO
+						this.swapInfoDTO = data.swapInfoDTO
+						this.swapState = data.swapConfirmDTO.swapState
+						this.step = data.swapStepList.length - 1
+						this.currentDescript = data.swapStepList.slice(-1)[0].description,
+						this.currentTime = data.swapStepList.slice(-1)[0].seqTime,
+						this.plate = data.swapConfirmDTO.plate
+						this.swapStepList = data.swapStepList
+						this.$bus.$emit('OndrawCircle', Math.ceil(data.swapConfirmDTO.vehSoc * 1))
+					} else if (data.type === 'startReply') {
+						if (data.state === 0) {
+							this.swapState = 2
+							console.log('站控已启动')
+						} else {
+							this.$utils.msg('站控启动失败')
+						}
+					}
+				})
+				// 监听WebSocket关闭事件
+				this.ws.onClose(()=>{
+					console.log('WebSocket连接已关闭!');
+				})
+				this.ws.onError(()=>{
+					console.log("WebSocket连接错误")
+				})
+				if (this.timer == null) {
+					this.timer = setInterval(() => {
+						if (this.ws.readyState != 1) {
+							clearInterval(this.timer)
+							this.timer=null
+							this.ws.close()
+							this.InitWs(exchangeNo, stationCode)
+						}
+					}, 2000)
+				}
+			},
+			sendExchangeMsg(msg){
+				this.ws.send(msg)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.swapinfo {
+
+		//顶部
+		.header {
+			display: flex;
+			padding: 30rpx;
+			width: 690rpx;
+			color: #86909c;
+			font-size: 32rpx;
+			justify-content: space-around;
+
+			.active {
+				color: #1d2129;
+				font-weight: bold;
+				position: relative;
+			}
+
+			.active::after {
+				content: '';
+				background-image: url('@/static/line.png');
+				background-size: 100% 100%;
+				width: 52rpx;
+				height: 9rpx;
+				position: absolute;
+				bottom: -25rpx;
+				left: 32%;
+			}
+		}
+
+		//换电流程
+		.changeProcess {
+			.timeline {
+				padding: 0 58rpx;
+				display: flex;
+				margin-top: 60rpx;
+
+				.timeinfo {
+					display: flex;
+					flex-direction: column;
+					text-align: right;
+
+					.list {
+						display: flex;
+						flex-direction: column;
+						width: 100%;
+						height: 102rpx;
+						color: #c9cdd4;
+						font-size: 28rpx;
+
+						view:first-child {
+							color: #86909c;
+						}
+					}
+				}
+
+				.line {
+					flex: 1;
+				}
+			}
+
+			.changeCurrent {
+				width: 690rpx;
+				margin: 30rpx auto;
+				height: 180rpx;
+				background-image: url('@/static/change-bg.png');
+				background-size: 100% 100%;
+				padding: 25rpx;
+				box-sizing: border-box;
+				display: flex;
+				flex-direction: column;
+				justify-content: space-around;
+
+				.info {
+					display: flex;
+					color: #fff;
+					font-size: 30rpx;
+					font-weight: bold;
+					line-height: 36rpx;
+
+					image {
+						width: 60rpx;
+						height: 60rpx;
+						padding-right: 25rpx;
+					}
+
+					view:last-child {
+						padding-top: 12rpx;
+					}
+				}
+
+				.times {
+					color: #ededed;
+					text-indent: 10rpx;
+				}
+			}
+		}
+
+		//换电流程车和电池信息
+		.changeCar,
+		.changeBattery {
+			.ban {
+				width: 547rpx;
+				height: 298rpx;
+				margin: 70rpx auto;
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			.info-box {
+				width: 587rpx;
+				margin: 0 auto;
+				display: flex;
+				flex-direction: column;
+			}
+		}
+	}
+</style>

+ 152 - 126
pages/scan/index.vue

@@ -5,7 +5,7 @@
 			<canvas class="progress_bar" canvas-id="cpbar"></canvas>
 			<canvas class="progress_line" canvas-id="cpline"></canvas>
 			<view class="progress_txt">
-				<view class="progress_info">{{ $scan.swapConfirmDTO.vehSoc || '-' }}%</view>
+				<view class="progress_info">{{ swapConfirmDTO.vehSoc || '-' }}%</view>
 				<view>当前电池SOC</view>
 			</view>
 		</view>
@@ -15,7 +15,7 @@
 				<view>累计里程</view>
 			</view>
 			<view>
-				<view>{{ $scan.swapConfirmDTO.vehVol || '-' }}V</view>
+				<view>{{ swapConfirmDTO.vehVol || '-' }}V</view>
 				<view>电压</view>
 			</view>
 			<view>
@@ -25,59 +25,70 @@
 		</view>
 		<view class="carinfo">
 			<view class="battery-list">
-				<view class="icon"><image src="../../static/p1.png"></image></view>
+				<view class="icon">
+					<image src="../../static/p1.png"></image>
+				</view>
 				<view class="info">
 					<view class="word">车牌号</view>
 					<view class="number">{{ swapConfirmDTO.plate || '-' }}</view>
 				</view>
 			</view>
 			<view class="battery-list">
-				<view class="icon"><image src="../../static/p2.png"></image></view>
+				<view class="icon">
+					<image src="../../static/p2.png"></image>
+				</view>
 				<view class="info">
 					<view class="word">当前车辆电池SOC</view>
 					<view class="number">{{ swapConfirmDTO.vehSoc || '-' }}%</view>
 				</view>
 			</view>
 			<view class="battery-list">
-				<view class="icon"><image src="../../static/p3.png"></image></view>
+				<view class="icon">
+					<image src="../../static/p3.png"></image>
+				</view>
 				<view class="info">
 					<view class="word">换电电池SOC</view>
 					<view class="number">{{ swapConfirmDTO.swapSoc || '-' }}%</view>
 				</view>
 			</view>
 			<view class="battery-list">
-				<view class="icon"><image src="../../static/p4.png"></image></view>
+				<view class="icon">
+					<image src="../../static/p4.png"></image>
+				</view>
 				<view class="info">
 					<view class="word">预估换电费用</view>
 					<view class="number">{{ swapConfirmDTO.expense || '-' }}元</view>
 				</view>
 			</view>
 			<view class="battery-list">
-				<view class="icon"><image src="../../static/p5.png"></image></view>
+				<view class="icon">
+					<image src="../../static/p5.png"></image>
+				</view>
 				<view class="info">
 					<view class="word">服务费</view>
 					<view class="number">{{ swapConfirmDTO.serviceCharge || '-' }}元</view>
 				</view>
 			</view>
 		</view>
-		<button type="primary" @click="goto('/pages/monitoring/index')" class="submit" :disabled="swapConfirmDTO.swapState">确认换电</button>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
+		<button type="primary" @click="goto('/pages/powerchange/index')" class="submit"
+			:disabled="!swapConfirmDTO.swapState">确认换电</button>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
 			return {
-				qrcode:null,
-				// swapConfirmDTO:this.$scan.swapConfirmDTO,
-				// swapInfoDTO:this.$scan.SwapInfoDTO,
-				process_txt:0,
-			}
+				qrcode: null,
+				swapConfirmDTO:null,
+				swapInfoDTO:null,
+				process_txt: 0,
+			}
 		},
 		beforeCreate() {
-			if(!uni.getStorageSync("token")){
+			if (!uni.getStorageSync("token")) {
 				uni.reLaunch({
-					url:'/pages/public/login?item=scan'
+					url: '/pages/public/login?item=scan'
 				})
 			}
 		},
@@ -85,61 +96,51 @@
 			this.drawProgressbg();
 			this.drawCircle(this.process_txt); //参数为1-100
 			this.drawLine();
-			this.$scan.InitWs()
-		},
+			this.InitWs()
+		},
 		methods: {
-			// InitWs(){
-			// 	console.log(this.$scan)
-			// 	this.$scan.InitWs()			
-			// 	setTimeout(()=>{
-			// 		this.swapConfirmDTO=this.$scan.swapConfirmDTO
-			// 		this.swapInfoDTO=this.$scan.swapInfoDTO
-			// 		this.process_txt=Math.ceil(this.swapConfirmDTO.vehSoc)
-			// 	},1000)
-			// },
 			//判断websocket是否链接上
-			// InitWs(){
-			// 	if(this.$storage.get("stationCode")){
-			// 		this.$http.getStationExchange({stationCode:this.$storage.get("stationCode")}).then(res=>{
-			// 			if(res.code === 0 && res.data){
-			// 				let msg = {
-			// 					type: "subscribeExchange",
-			// 					payLoad: {
-			// 						exchangeNo: res.data
-			// 					}
-			// 				}
-			// 				if(this.$ws.socketTask ==null){
-			// 					this.$ws.connect()
-			// 					this.$ws.onSocketOpen=()=>{
-			// 						this.getWsData()
-			// 						this.$ws.sendmessage(msg)
-			// 					}
-			// 				}	
-			// 			}else{
-			// 				this.$utils.msg(res.msg)
-			// 			}
-			// 		})		
-			// 	}else{
-			// 		this.$utils.msg('未获取到换电站编号')
-			// 	}
-			// },
-			// // //获取websocket数据
-			// getWsData(){
-			// 	this.$ws.onSocketMsg=(res)=>{
-			// 		let data=JSON.parse(res.data)
-			// 		if(data.type === 'subscribe'){
-			// 			console.log(data.state)
-			// 		}else if(data.type === 'swapInfo' && data.state === 0){
-			// 			this.swapConfirmDTO=data.swapConfirmDTO
-			// 		}
-			// 		else{
-			// 			this.$utils.msg('订阅失败')
-			// 		}
-			// 	}
-			// },
-			goto(url){
-				if(uni.getStorageSync("token")){
-					if(this.$storage.get("exchangeNo")){
+			InitWs() {
+				if (this.$storage.get("exchangeNo")) {
+					let msg = {
+						type: "subscribeExchange",
+						payLoad: {
+							exchangeNo: this.$storage.get("exchangeNo")
+						}
+					}
+					if (this.$ws.socketTask == null) {
+						this.$ws.connect()
+						this.$ws.onSocketOpen = () => {
+							this.getWsData()
+							this.$ws.sendmessage(msg)
+						}
+					}else{
+						this.getWsData()
+						this.$ws.sendmessage(msg)
+					}
+				}else {
+					this.$utils.msg('未获取到换电编号')
+				}
+			},
+			// //获取websocket数据
+			getWsData() {
+				this.$ws.onSocketMsg = (res) => {
+					let data = JSON.parse(res.data)
+					console.log(data)
+					if (data.type === 'subscribe') {
+						console.log(data.state)
+					} else if (data.type === 'swapInfo' && data.state === 0) {
+						this.swapConfirmDTO = data.swapConfirmDTO
+						this.swapInfoDTO=data.swapInfoDTO
+						this.process_txt=data.swapConfirmDTO.vehSoc
+					} else {
+						this.$utils.msg('订阅失败')
+					}
+				}
+			},
+			goto(url) {
+				if (uni.getStorageSync("token")) {
+					if (this.$storage.get("exchangeNo")) {
 						let msg = {
 							type: "startExchange",
 							payLoad: {
@@ -147,18 +148,26 @@
 							}
 						}
 						this.$ws.sendmessage(msg)
+						this.$ws.onSocketMsg = (res) =>{
+							let data=JSON.parse(res.data)
+							console.log(res.data)
+							if (data.type === 'start' && data.state ===0) {
+								uni.navigateTo({
+									url: url
+								})
+							}else {
+								this.$utils.msg('下发换电指令失败')
+							}
+						}
 					}
-					uni.navigateTo({
-						url:url
-					})
-				}else{
+				} else {
 					uni.reLaunch({
-						url:'/pages/public/login?item=scan'
+						url: '/pages/public/login?item=scan'
 					})
 				}
-				
-			},
-			drawProgressbg(){
+
+			},
+			drawProgressbg() {
 				// 自定义组件实例 this ,表示在这个自定义组件下查找拥有 canvas-id 的 <canvas/>
 				var ctx = uni.createCanvasContext('cpbg', this);
 				ctx.setLineWidth(14); // 设置圆环的宽度
@@ -171,11 +180,11 @@
 				ctx.stroke(); //对当前路径进行描边
 				ctx.draw();
 			},
-			drawCircle(step){
+			drawCircle(step) {
 				var ctx = uni.createCanvasContext('cpbar', this);
 				// 进度条的渐变(中心x坐标-半径-边宽,中心Y坐标,中心x坐标+半径+边宽,中心Y坐标)
 				var gradient = ctx.createLinearGradient(0, 0, 130, 0);
-			
+
 				let increase = 0.05;
 				let end = (step / 100) * 2 * Math.PI - Math.PI / 2; // 最后的角度
 				let current = -Math.PI / 2; // 起始角度
@@ -199,44 +208,44 @@
 					ctx.draw();
 				}, 20);
 			},
-			drawLine(){
-				var context = uni.createCanvasContext("cpline",this);
+			drawLine() {
+				var context = uni.createCanvasContext("cpline", this);
 				var r = 70;
 				var x0 = 110;
 				var y0 = 110;
 				var x;
 				var y;
 				var lineWidth = 12;
-				
+
 				for (let i = 0; i < 60; i++) {
-				  context.beginPath();
-				  context.setLineWidth(lineWidth);
-				  context.setStrokeStyle("#FFFFFF");
-					
-				  x = x0 - r * Math.sin(((6 * (i + 1) - 3) * Math.PI) / 180);
-				  y = y0 - r * Math.cos(((6 * (i + 1) - 3) * Math.PI) / 180);
-				
-				  // console.log('x0:' + x0 + '   y0:' + y0 + '    x:' + x + '    y:' + y);
-				  context.moveTo(x, y);
-				  context.arc(
-					x0,
-					y0,
-					r,
-					((270 - 6 * (i + 1) + 3) * Math.PI) / 180,
-					((270 - 6 * i) * Math.PI) / 180,
-					false
-				  );
-				  context.stroke();
-				  context.closePath();
+					context.beginPath();
+					context.setLineWidth(lineWidth);
+					context.setStrokeStyle("#FFFFFF");
+
+					x = x0 - r * Math.sin(((6 * (i + 1) - 3) * Math.PI) / 180);
+				 y = y0 - r * Math.cos(((6 * (i + 1) - 3) * Math.PI) / 180);
+
+					// console.log('x0:' + x0 + '   y0:' + y0 + '    x:' + x + '    y:' + y);
+					context.moveTo(x, y);
+					context.arc(
+						x0,
+						y0,
+						r,
+						((270 - 6 * (i + 1) + 3) * Math.PI) / 180,
+						((270 - 6 * i) * Math.PI) / 180,
+						false
+					);
+					context.stroke();
+					context.closePath();
 				}
 				context.stroke();
 				context.draw();
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
 	.progress_box {
 		position: relative;
 		width: 400rpx;
@@ -247,26 +256,31 @@
 		justify-content: center;
 		text-align: center;
 	}
+
 	.progress_bg {
 		position: absolute;
 		width: 220px;
 		height: 220px;
 	}
+
 	.progress_bar {
 		position: absolute;
 		width: 220px;
 		height: 220px;
 	}
+
 	.progress_line {
 		position: absolute;
 		width: 220px;
 		height: 220px;
 	}
+
 	.progress_txt {
 		position: absolute;
 		font-size: 28upx;
 		color: #999999;
 	}
+
 	.progress_info {
 		font-size: 36upx;
 		padding-left: 16upx;
@@ -274,69 +288,81 @@
 		font-size: 52upx;
 		color: #333333;
 	}
+
 	.progress_dot {
 		width: 16upx;
 		height: 16upx;
 		border-radius: 50%;
 		background-color: #fb9126;
 	}
-	.battery-info{
+
+	.battery-info {
 		display: flex;
 		justify-content: space-between;
 		padding: 0 80rpx;
 		text-align: center;
 		line-height: 36rpx;
-		view > view:first-child{
+
+		view>view:first-child {
 			font-weight: bold;
 		}
-		view > view:last-child{
+
+		view>view:last-child {
 			color: #939da7;
 			font-size: 26rpx;
 		}
 	}
-	.carinfo{
+
+	.carinfo {
 		padding-left: 45rpx;
 		width: 100%;
 		box-sizing: border-box;
 		margin-top: 90rpx;
-		.battery-list{
+
+		.battery-list {
 			display: flex;
 			width: 100%;
 			margin-top: 36rpx;
-			.icon{
+
+			.icon {
 				width: 55rpx;
 				padding-top: 5rpx;
-				image{
+
+				image {
 					width: 32rpx;
 					height: 32rpx;
 				}
 			}
-			.info{
+
+			.info {
 				display: flex;
 				flex: 1;
-				border-bottom:#e5e5e5 solid 1px;
+				border-bottom: #e5e5e5 solid 1px;
 				justify-content: space-between;
 				font-size: 28rpx;
 				padding-bottom: 36rpx;
 				padding-right: 40rpx;
 				box-sizing: border-box;
-				.word{
+
+				.word {
 					color: #86909c;
 				}
-				.number{
+
+				.number {
 					color: #333333;
 					font-weight: bold;
 				}
 			}
 		}
 	}
-	.submit{
+
+	.submit {
 		width: 600rpx;
 		height: 88rpx;
-		margin:35rpx auto;
+		margin: 35rpx auto;
 		font-size: 36rpx;
 		background-color: #58be6b;
 		color: #fff;
 		border-radius: 44rpx;
-	}
+	}
 </style>

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/Subtitle/Subtitle.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"components/subtitle/subtitle.js","sourceRoot":""}

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/getmobile/getmobile.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/power-change-header/power-change-header.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/scan-info/scan-info.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/sub-title/sub-title.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/tab-bar/tab-bar.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/top-box/top-box.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/batteryinfo/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/carinfo/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/monitoring/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/powerchange/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/public/login.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/scan/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/car.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/car_show.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/record.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/ucenter/record_show.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-steps/components/uni-steps/uni-steps.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.js.map


+ 3 - 1
unpackage/dist/dev/mp-weixin/app.json

@@ -1,6 +1,7 @@
 {
   "pages": [
     "pages/index/index",
+    "pages/powerchange/index",
     "pages/ucenter/record",
     "pages/ucenter/record_show",
     "pages/ucenter/car_show",
@@ -47,5 +48,6 @@
     "getLocation",
     "chooseLocation"
   ],
-  "usingComponents": {}
+  "usingComponents": {},
+  "sitemapLocation": "sitemap.json"
 }

+ 5 - 5
unpackage/dist/dev/mp-weixin/common/main.js

@@ -22,8 +22,6 @@ var utils = _interopRequireWildcard(__webpack_require__(/*! ./common/utils */ 37
 var _store = _interopRequireDefault(__webpack_require__(/*! ./store */ 38));
 var _storage = _interopRequireDefault(__webpack_require__(/*! common/storage */ 36));
 var _moment = _interopRequireDefault(__webpack_require__(/*! moment */ 40));
-var _websocket = _interopRequireDefault(__webpack_require__(/*! ./common/websocket */ 178));
-var _scanChange = _interopRequireDefault(__webpack_require__(/*! ./common/scanChange */ 179));
 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -37,10 +35,12 @@ _vue.default.prototype.$http = http;
 _vue.default.prototype.$store = _store.default;
 _vue.default.prototype.$storage = _storage.default;
 _vue.default.prototype.$moment = _moment.default;
-_vue.default.prototype.$ws = _websocket.default;
-_vue.default.prototype.$scan = _scanChange.default;
 _App.default.mpType = 'app';
-var app = new _vue.default(_objectSpread({}, _App.default));
+var app = new _vue.default(_objectSpread(_objectSpread({}, _App.default), {}, {
+  beforeCreate: function beforeCreate() {
+    _vue.default.prototype.$bus = this;
+  }
+}));
 createApp(app).$mount();
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js */ 1)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["createApp"]))
 

+ 2 - 2
unpackage/dist/dev/mp-weixin/common/runtime.js

@@ -105,11 +105,11 @@
 /******/
 /******/
 /******/ 		// mini-css-extract-plugin CSS loading
-/******/ 		var cssChunks = {"components/tab-bar/tab-bar":1,"components/top-box/top-box":1,"uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot":1,"uni_modules/uni-popup/components/uni-popup/uni-popup":1,"components/getmobile/getmobile":1,"components/power-change-header/power-change-header":1,"uni_modules/uni-steps/components/uni-steps/uni-steps":1,"uni_modules/uni-icons/components/uni-icons/uni-icons":1};
+/******/ 		var cssChunks = {"components/tab-bar/tab-bar":1,"components/top-box/top-box":1,"uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot":1,"components/scan-info/scan-info":1,"components/sub-title/sub-title":1,"uni_modules/uni-steps/components/uni-steps/uni-steps":1,"uni_modules/uni-popup/components/uni-popup/uni-popup":1,"components/getmobile/getmobile":1,"components/power-change-header/power-change-header":1,"uni_modules/uni-icons/components/uni-icons/uni-icons":1};
 /******/ 		if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
 /******/ 		else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
 /******/ 			promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
-/******/ 				var href = "" + ({"components/tab-bar/tab-bar":"components/tab-bar/tab-bar","components/top-box/top-box":"components/top-box/top-box","uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot":"uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot","uni_modules/uni-popup/components/uni-popup/uni-popup":"uni_modules/uni-popup/components/uni-popup/uni-popup","components/getmobile/getmobile":"components/getmobile/getmobile","components/power-change-header/power-change-header":"components/power-change-header/power-change-header","uni_modules/uni-steps/components/uni-steps/uni-steps":"uni_modules/uni-steps/components/uni-steps/uni-steps","uni_modules/uni-transition/components/uni-transition/uni-transition":"uni_modules/uni-transition/components/uni-transition/uni-transition","uni_modules/uni-icons/components/uni-icons/uni-icons":"uni_modules/uni-icons/components/uni-icons/uni-icons"}[chunkId]||chunkId) + ".wxss";
+/******/ 				var href = "" + ({"components/tab-bar/tab-bar":"components/tab-bar/tab-bar","components/top-box/top-box":"components/top-box/top-box","uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot":"uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot","components/scan-info/scan-info":"components/scan-info/scan-info","components/sub-title/sub-title":"components/sub-title/sub-title","uni_modules/uni-steps/components/uni-steps/uni-steps":"uni_modules/uni-steps/components/uni-steps/uni-steps","uni_modules/uni-popup/components/uni-popup/uni-popup":"uni_modules/uni-popup/components/uni-popup/uni-popup","components/getmobile/getmobile":"components/getmobile/getmobile","components/power-change-header/power-change-header":"components/power-change-header/power-change-header","uni_modules/uni-icons/components/uni-icons/uni-icons":"uni_modules/uni-icons/components/uni-icons/uni-icons","uni_modules/uni-transition/components/uni-transition/uni-transition":"uni_modules/uni-transition/components/uni-transition/uni-transition"}[chunkId]||chunkId) + ".wxss";
 /******/ 				var fullhref = __webpack_require__.p + href;
 /******/ 				var existingLinkTags = document.getElementsByTagName("link");
 /******/ 				for(var i = 0; i < existingLinkTags.length; i++) {

+ 159 - 281
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -9758,7 +9758,7 @@ exports.default = void 0;
 var _default = {
   web_name: "智小狸",
   //uni_app_web_api_url: "https://zk.li-ai.com.cn/driver/api", //后端统一接口路径
-  uni_app_web_api_url: "http://192.168.0.84:8088/driver/api",
+  uni_app_web_api_url: "https://53670u39m2.goho.co/driver/api",
   //web_socket_url:'ws://zk.li-ai.com.cn:8088/ws/abbbccc/SSSSSSSS',
   web_socket_url: 'ws://192.168.0.84:8088/driver/ws/',
   debug: true
@@ -30536,152 +30536,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
 });
 
 /***/ }),
-/* 178 */
-/*!********************************************!*\
-  !*** D:/xcx_zkstation/common/websocket.js ***!
-  \********************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(uni) {
-
-var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _config = _interopRequireDefault(__webpack_require__(/*! ../config */ 35));
-var _storage = _interopRequireDefault(__webpack_require__(/*! ./storage */ 36));
-var _utils = __webpack_require__(/*! ./utils */ 37);
-var _default = {
-  socketTask: null,
-  timer: null,
-  /**
-   * 创建 WebSocket 连接。
-   */
-  connect: function connect() {
-    var _this = this;
-    var users = _storage.default.getJson("users");
-    var token = _storage.default.getJson("token");
-    var stationCode = _storage.default.get("stationCode");
-    if (users == null || token == null) {
-      (0, _utils.navigateTo)("public/login");
-      return false;
-    }
-    if (this.timer != null) {
-      clearInterval(this.timer);
-      this.timer = null;
-    }
-    if (this.socketTask != null) {
-      this.socketTask.close();
-    }
-    this.socketTask = uni.connectSocket({
-      url: _config.default.web_socket_url + stationCode + '/' + token,
-      header: {
-        'content-type': 'application/json'
-      },
-      complete: function complete() {}
-    });
-    // 监听WebSocket连接打开事件。
-    this.socketTask.onOpen(function () {
-      console.log('WebSocket连接已打开!');
-      _this.onSocketOpen();
-    });
-    //接收服务器数据事件
-    this.socketTask.onMessage(function (res) {
-      _this.onSocketMsg(res);
-    });
-    //监听WebSocket关闭事件
-    this.socketTask.onClose(function () {
-      console.log('WebSocket连接已关闭!');
-    });
-    this.socketTask.onError(function () {
-      console.log("WebSocket连接错误");
-    });
-    if (this.timer == null) {
-      this.timer = setInterval(function () {
-        if (_this.socketTask.readyState != 1) {
-          _this.socketTask.close();
-          _this.connect();
-        }
-      }, 2000);
-    }
-  },
-  onSocketOpen: function onSocketOpen() {},
-  onSocketMsg: function onSocketMsg() {},
-  sendmessage: function sendmessage(msg) {
-    this.socketTask.send({
-      data: JSON.stringify(msg)
-    });
-  }
-};
-exports.default = _default;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
-
-/***/ }),
-/* 179 */
-/*!*********************************************!*\
-  !*** D:/xcx_zkstation/common/scanChange.js ***!
-  \*********************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
-var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 13);
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _storage = _interopRequireDefault(__webpack_require__(/*! ./storage */ 36));
-var https = _interopRequireWildcard(__webpack_require__(/*! ./http */ 33));
-var _websocket = _interopRequireDefault(__webpack_require__(/*! ./websocket */ 178));
-var utils = _interopRequireWildcard(__webpack_require__(/*! ./utils */ 37));
-function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
-function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
-var _default = {
-  swapConfirmDTO: null,
-  swapInfoDTO: null,
-  swapStepList: [],
-  InitWs: function InitWs() {
-    var _this = this;
-    if (_storage.default.get("exchangeNo")) {
-      var msg = {
-        type: "subscribeExchange",
-        payLoad: {
-          exchangeNo: _storage.default.get("exchangeNo")
-        }
-      };
-      if (_websocket.default.socketTask == null) {
-        _websocket.default.connect();
-        _websocket.default.onSocketOpen = function () {
-          _websocket.default.onSocketMsg = function (res) {
-            var data = JSON.parse(res.data);
-            console.log(data);
-            if (data.type === 'subscribe') {
-              console.log(data.state);
-            } else if (data.type === 'swapInfo' && data.state === 0) {
-              _this.swapConfirmDTO = data.swapConfirmDTO;
-              _this.swapStepList = data.swapStepList;
-              _this.swapInfoDTO = data.swapInfoDTO;
-            } else if (data.type === 'start' && data.state === 0) {
-              utils.msg('启动换电成功');
-            }
-          };
-          _websocket.default.sendmessage(msg);
-        };
-      }
-    } else {
-      utils.msg('未获取到换电编号');
-    }
-  }
-};
-exports.default = _default;
-
-/***/ }),
+/* 178 */,
+/* 179 */,
 /* 180 */,
 /* 181 */,
 /* 182 */,
@@ -30824,145 +30680,27 @@ exports.default = _default;
 /* 319 */,
 /* 320 */,
 /* 321 */,
-/* 322 */
-/*!************************************************************************************************!*\
-  !*** D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***!
-  \************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(uni) {
-
-var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.createAnimation = createAnimation;
-var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
-var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));
-var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-// const defaultOption = {
-// 	duration: 300,
-// 	timingFunction: 'linear',
-// 	delay: 0,
-// 	transformOrigin: '50% 50% 0'
-// }
-var MPAnimation = /*#__PURE__*/function () {
-  function MPAnimation(options, _this) {
-    (0, _classCallCheck2.default)(this, MPAnimation);
-    this.options = options;
-    this.animation = uni.createAnimation(options);
-    this.currentStepAnimates = {};
-    this.next = 0;
-    this.$ = _this;
-  }
-  (0, _createClass2.default)(MPAnimation, [{
-    key: "_nvuePushAnimates",
-    value: function _nvuePushAnimates(type, args) {
-      var aniObj = this.currentStepAnimates[this.next];
-      var styles = {};
-      if (!aniObj) {
-        styles = {
-          styles: {},
-          config: {}
-        };
-      } else {
-        styles = aniObj;
-      }
-      if (animateTypes1.includes(type)) {
-        if (!styles.styles.transform) {
-          styles.styles.transform = '';
-        }
-        var unit = '';
-        if (type === 'rotate') {
-          unit = 'deg';
-        }
-        styles.styles.transform += "".concat(type, "(").concat(args + unit, ") ");
-      } else {
-        styles.styles[type] = "".concat(args);
-      }
-      this.currentStepAnimates[this.next] = styles;
-    }
-  }, {
-    key: "_animateRun",
-    value: function _animateRun() {
-      var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-      var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-      var ref = this.$.$refs['ani'].ref;
-      if (!ref) return;
-      return new Promise(function (resolve, reject) {
-        nvueAnimation.transition(ref, _objectSpread({
-          styles: styles
-        }, config), function (res) {
-          resolve();
-        });
-      });
-    }
-  }, {
-    key: "_nvueNextAnimate",
-    value: function _nvueNextAnimate(animates) {
-      var _this2 = this;
-      var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-      var fn = arguments.length > 2 ? arguments[2] : undefined;
-      var obj = animates[step];
-      if (obj) {
-        var styles = obj.styles,
-          config = obj.config;
-        this._animateRun(styles, config).then(function () {
-          step += 1;
-          _this2._nvueNextAnimate(animates, step, fn);
-        });
-      } else {
-        this.currentStepAnimates = {};
-        typeof fn === 'function' && fn();
-        this.isEnd = true;
-      }
-    }
-  }, {
-    key: "step",
-    value: function step() {
-      var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-      this.animation.step(config);
-      return this;
-    }
-  }, {
-    key: "run",
-    value: function run(fn) {
-      this.$.animationData = this.animation.export();
-      this.$.timer = setTimeout(function () {
-        typeof fn === 'function' && fn();
-      }, this.$.durationTime);
-    }
-  }]);
-  return MPAnimation;
-}();
-var animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];
-var animateTypes2 = ['opacity', 'backgroundColor'];
-var animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];
-animateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {
-  MPAnimation.prototype[type] = function () {
-    var _this$animation;
-    (_this$animation = this.animation)[type].apply(_this$animation, arguments);
-    return this;
-  };
-});
-function createAnimation(option, _this) {
-  if (!_this) return;
-  clearTimeout(_this.timer);
-  return new MPAnimation(option, _this);
-}
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
-
-/***/ }),
+/* 322 */,
 /* 323 */,
 /* 324 */,
 /* 325 */,
 /* 326 */,
 /* 327 */,
-/* 328 */
+/* 328 */,
+/* 329 */,
+/* 330 */,
+/* 331 */,
+/* 332 */,
+/* 333 */,
+/* 334 */,
+/* 335 */,
+/* 336 */,
+/* 337 */,
+/* 338 */,
+/* 339 */,
+/* 340 */,
+/* 341 */,
+/* 342 */
 /*!****************************************************************************!*\
   !*** D:/xcx_zkstation/uni_modules/uni-icons/components/uni-icons/icons.js ***!
   \****************************************************************************/
@@ -31982,6 +31720,146 @@ var _default = {
 };
 exports.default = _default;
 
+/***/ }),
+/* 343 */,
+/* 344 */,
+/* 345 */,
+/* 346 */,
+/* 347 */,
+/* 348 */,
+/* 349 */,
+/* 350 */
+/*!************************************************************************************************!*\
+  !*** D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***!
+  \************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(uni) {
+
+var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.createAnimation = createAnimation;
+var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
+var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));
+var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
+// const defaultOption = {
+// 	duration: 300,
+// 	timingFunction: 'linear',
+// 	delay: 0,
+// 	transformOrigin: '50% 50% 0'
+// }
+var MPAnimation = /*#__PURE__*/function () {
+  function MPAnimation(options, _this) {
+    (0, _classCallCheck2.default)(this, MPAnimation);
+    this.options = options;
+    this.animation = uni.createAnimation(options);
+    this.currentStepAnimates = {};
+    this.next = 0;
+    this.$ = _this;
+  }
+  (0, _createClass2.default)(MPAnimation, [{
+    key: "_nvuePushAnimates",
+    value: function _nvuePushAnimates(type, args) {
+      var aniObj = this.currentStepAnimates[this.next];
+      var styles = {};
+      if (!aniObj) {
+        styles = {
+          styles: {},
+          config: {}
+        };
+      } else {
+        styles = aniObj;
+      }
+      if (animateTypes1.includes(type)) {
+        if (!styles.styles.transform) {
+          styles.styles.transform = '';
+        }
+        var unit = '';
+        if (type === 'rotate') {
+          unit = 'deg';
+        }
+        styles.styles.transform += "".concat(type, "(").concat(args + unit, ") ");
+      } else {
+        styles.styles[type] = "".concat(args);
+      }
+      this.currentStepAnimates[this.next] = styles;
+    }
+  }, {
+    key: "_animateRun",
+    value: function _animateRun() {
+      var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      var ref = this.$.$refs['ani'].ref;
+      if (!ref) return;
+      return new Promise(function (resolve, reject) {
+        nvueAnimation.transition(ref, _objectSpread({
+          styles: styles
+        }, config), function (res) {
+          resolve();
+        });
+      });
+    }
+  }, {
+    key: "_nvueNextAnimate",
+    value: function _nvueNextAnimate(animates) {
+      var _this2 = this;
+      var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+      var fn = arguments.length > 2 ? arguments[2] : undefined;
+      var obj = animates[step];
+      if (obj) {
+        var styles = obj.styles,
+          config = obj.config;
+        this._animateRun(styles, config).then(function () {
+          step += 1;
+          _this2._nvueNextAnimate(animates, step, fn);
+        });
+      } else {
+        this.currentStepAnimates = {};
+        typeof fn === 'function' && fn();
+        this.isEnd = true;
+      }
+    }
+  }, {
+    key: "step",
+    value: function step() {
+      var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      this.animation.step(config);
+      return this;
+    }
+  }, {
+    key: "run",
+    value: function run(fn) {
+      this.$.animationData = this.animation.export();
+      this.$.timer = setTimeout(function () {
+        typeof fn === 'function' && fn();
+      }, this.$.durationTime);
+    }
+  }]);
+  return MPAnimation;
+}();
+var animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];
+var animateTypes2 = ['opacity', 'backgroundColor'];
+var animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {
+  MPAnimation.prototype[type] = function () {
+    var _this$animation;
+    (_this$animation = this.animation)[type].apply(_this$animation, arguments);
+    return this;
+  };
+});
+function createAnimation(option, _this) {
+  if (!_this) return;
+  clearTimeout(_this.timer);
+  return new MPAnimation(option, _this);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
+
 /***/ })
 ]]);
 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map

ファイルの差分が大きいため隠しています
+ 12 - 12
unpackage/dist/dev/mp-weixin/components/getmobile/getmobile.js


ファイルの差分が大きいため隠しています
+ 11 - 11
unpackage/dist/dev/mp-weixin/components/power-change-header/power-change-header.js


ファイルの差分が大きいため隠しています
+ 355 - 0
unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.wxml


+ 129 - 0
unpackage/dist/dev/mp-weixin/components/scan-info/scan-info.wxss

@@ -0,0 +1,129 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.progress_box.data-v-584c29c2 {
+  position: relative;
+  width: 400rpx;
+  height: 400rpx;
+  display: flex;
+  margin: 0 auto;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+}
+.progress_bg.data-v-584c29c2 {
+  position: absolute;
+  width: 220px;
+  height: 220px;
+}
+.progress_bar.data-v-584c29c2 {
+  position: absolute;
+  width: 220px;
+  height: 220px;
+}
+.progress_line.data-v-584c29c2 {
+  position: absolute;
+  width: 220px;
+  height: 220px;
+}
+.progress_txt.data-v-584c29c2 {
+  position: absolute;
+  font-size: 28rpx;
+  color: #999999;
+}
+.progress_info.data-v-584c29c2 {
+  font-size: 36rpx;
+  padding-left: 16rpx;
+  letter-spacing: 2rpx;
+  font-size: 52rpx;
+  color: #333333;
+}
+.progress_dot.data-v-584c29c2 {
+  width: 16rpx;
+  height: 16rpx;
+  border-radius: 50%;
+  background-color: #fb9126;
+}
+.battery-info.data-v-584c29c2 {
+  display: flex;
+  justify-content: space-between;
+  padding: 0 80rpx;
+  text-align: center;
+  line-height: 36rpx;
+}
+.battery-info view > view.data-v-584c29c2:first-child {
+  font-weight: bold;
+}
+.battery-info view > view.data-v-584c29c2:last-child {
+  color: #939da7;
+  font-size: 26rpx;
+}
+.carinfo.data-v-584c29c2 {
+  padding-left: 45rpx;
+  width: 100%;
+  box-sizing: border-box;
+  margin-top: 90rpx;
+}
+.carinfo .battery-list.data-v-584c29c2 {
+  display: flex;
+  width: 100%;
+  margin-top: 36rpx;
+}
+.carinfo .battery-list .icon.data-v-584c29c2 {
+  width: 55rpx;
+  padding-top: 5rpx;
+}
+.carinfo .battery-list .icon image.data-v-584c29c2 {
+  width: 32rpx;
+  height: 32rpx;
+}
+.carinfo .battery-list .info.data-v-584c29c2 {
+  display: flex;
+  flex: 1;
+  border-bottom: #e5e5e5 solid 1px;
+  justify-content: space-between;
+  font-size: 28rpx;
+  padding-bottom: 36rpx;
+  padding-right: 40rpx;
+  box-sizing: border-box;
+}
+.carinfo .battery-list .info .word.data-v-584c29c2 {
+  color: #86909c;
+}
+.carinfo .battery-list .info .number.data-v-584c29c2 {
+  color: #333333;
+  font-weight: bold;
+}
+.submit.data-v-584c29c2 {
+  width: 600rpx;
+  height: 88rpx;
+  margin: 35rpx auto;
+  font-size: 36rpx;
+  background-color: #58be6b;
+  color: #fff;
+  border-radius: 44rpx;
+}
+

ファイルの差分が大きいため隠しています
+ 150 - 0
unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.wxml

@@ -0,0 +1 @@
+<view class="list data-v-3e171d9c"><view class="data-v-3e171d9c">{{descript+":"}}</view><view class="data-v-3e171d9c">{{(value||'-')+(unit||'')}}</view></view>

+ 40 - 0
unpackage/dist/dev/mp-weixin/components/sub-title/sub-title.wxss

@@ -0,0 +1,40 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.list.data-v-3e171d9c {
+  width: 100%;
+  display: flex;
+  height: 100rpx;
+  justify-content: space-between;
+  font-size: 30rpx;
+}
+.list view.data-v-3e171d9c:first-child {
+  color: #86909c;
+}
+.list view.data-v-3e171d9c:last-child {
+  color: #1d2129;
+}
+

ファイルの差分が大きいため隠しています
+ 13 - 14
unpackage/dist/dev/mp-weixin/components/tab-bar/tab-bar.js


ファイルの差分が大きいため隠しています
+ 11 - 11
unpackage/dist/dev/mp-weixin/components/top-box/top-box.js


ファイルの差分が大きいため隠しています
+ 14 - 14
unpackage/dist/dev/mp-weixin/pages/batteryinfo/index.js


ファイルの差分が大きいため隠しています
+ 14 - 14
unpackage/dist/dev/mp-weixin/pages/carinfo/index.js


ファイルの差分が大きいため隠しています
+ 112 - 46
unpackage/dist/dev/mp-weixin/pages/index/index.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/index/index.json

@@ -1,7 +1,7 @@
 {
   "navigationBarTitleText": "智小狸",
   "enablePullDownRefresh": false,
-  "onReachBottomDistance": 10,
+  "onReachBottomDistance": 50,
   "usingComponents": {
     "top-box": "/components/top-box/top-box",
     "uni-swiper-dot": "/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot",

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxml


+ 15 - 2
unpackage/dist/dev/mp-weixin/pages/index/index.wxss

@@ -24,14 +24,23 @@
 /* 垂直间距 */
 /* 透明度 */
 /* 文章场景相关 */
+.main.data-v-57280228 {
+  height: 100vh;
+}
 .authorization.data-v-57280228 {
   width: 640rpx;
   height: 840rpx;
   background-color: #fff;
   border-radius: 20rpx;
 }
+.grace-loading.data-v-57280228 {
+  position: relative;
+  text-align: center;
+  margin-top: 200rpx;
+  color: #979797;
+}
 .main-box.data-v-57280228 {
-  padding: 0 30rpx;
+  padding: 0 30rpx 30rpx 30rpx;
 }
 .main-box .carinfo.data-v-57280228 {
   width: 100%;
@@ -159,6 +168,9 @@
   font-size: 32rpx;
   line-height: 32rpx;
 }
+.main-box .change-box.data-v-57280228:last-child {
+  margin-bottom: 100rpx !important;
+}
 .main-box .change-box.data-v-57280228 {
   width: 690rpx;
   box-sizing: border-box;
@@ -167,7 +179,8 @@
   padding: 20rpx 30rpx;
   display: flex;
   flex-direction: column;
-  overflow: hidden;
+  overflow: hidden;
+  margin-bottom: 30rpx;
 }
 .main-box .change-box .title.data-v-57280228 {
   font-weight: bold;

ファイルの差分が大きいため隠しています
+ 49 - 23
unpackage/dist/dev/mp-weixin/pages/monitoring/index.js


ファイルの差分が大きいため隠しています
+ 411 - 0
unpackage/dist/dev/mp-weixin/pages/powerchange/index.js


+ 9 - 0
unpackage/dist/dev/mp-weixin/pages/powerchange/index.json

@@ -0,0 +1,9 @@
+{
+  "navigationBarTitleText": "换电流程",
+  "enablePullDownRefresh": false,
+  "usingComponents": {
+    "scan-info": "/components/scan-info/scan-info",
+    "uni-steps": "/uni_modules/uni-steps/components/uni-steps/uni-steps",
+    "sub-title": "/components/sub-title/sub-title"
+  }
+}

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/powerchange/index.wxml


ファイルの差分が大きいため隠しています
+ 77 - 0
unpackage/dist/dev/mp-weixin/pages/powerchange/index.wxss


ファイルの差分が大きいため隠しています
+ 13 - 13
unpackage/dist/dev/mp-weixin/pages/public/login.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/public/login.json

@@ -1,5 +1,5 @@
 {
-  "navigationBarTitleText": "",
+  "navigationBarTitleText": "用户登录",
   "enablePullDownRefresh": false,
   "usingComponents": {}
 }

ファイルの差分が大きいため隠しています
+ 79 - 67
unpackage/dist/dev/mp-weixin/pages/scan/index.js


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/scan/index.wxml


ファイルの差分が大きいため隠しています
+ 15 - 15
unpackage/dist/dev/mp-weixin/pages/ucenter/car.js


ファイルの差分が大きいため隠しています
+ 14 - 14
unpackage/dist/dev/mp-weixin/pages/ucenter/car_show.js


ファイルの差分が大きいため隠しています
+ 17 - 17
unpackage/dist/dev/mp-weixin/pages/ucenter/index.js


ファイルの差分が大きいため隠しています
+ 15 - 15
unpackage/dist/dev/mp-weixin/pages/ucenter/record.js


ファイルの差分が大きいため隠しています
+ 14 - 14
unpackage/dist/dev/mp-weixin/pages/ucenter/record_show.js


+ 2 - 1
unpackage/dist/dev/mp-weixin/project.config.json

@@ -31,7 +31,8 @@
       "outputPath": ""
     },
     "disableUseStrict": false,
-    "useCompilerPlugins": false
+    "useCompilerPlugins": false,
+    "minifyWXML": true
   },
   "compileType": "miniprogram",
   "libVersion": "2.26.1",

ファイルの差分が大きいため隠しています
+ 13 - 13
unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js


ファイルの差分が大きいため隠しています
+ 13 - 13
unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js


ファイルの差分が大きいため隠しています
+ 13 - 13
unpackage/dist/dev/mp-weixin/uni_modules/uni-steps/components/uni-steps/uni-steps.js


ファイルの差分が大きいため隠しています
+ 11 - 11
unpackage/dist/dev/mp-weixin/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.js


+ 11 - 11
unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js

@@ -1,6 +1,6 @@
 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["uni_modules/uni-transition/components/uni-transition/uni-transition"],{
 
-/***/ 317:
+/***/ 345:
 /*!************************************************************************************************!*\
   !*** D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/uni-transition.vue ***!
   \************************************************************************************************/
@@ -9,8 +9,8 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 318);
-/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 320);
+/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 346);
+/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 348);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony import */ var _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 32);
 
@@ -39,7 +39,7 @@ component.options.__file = "uni_modules/uni-transition/components/uni-transition
 
 /***/ }),
 
-/***/ 318:
+/***/ 346:
 /*!*******************************************************************************************************************************!*\
   !*** D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***!
   \*******************************************************************************************************************************/
@@ -48,7 +48,7 @@ component.options.__file = "uni_modules/uni-transition/components/uni-transition
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 319);
+/* harmony import */ var _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 347);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -61,7 +61,7 @@ __webpack_require__.r(__webpack_exports__);
 
 /***/ }),
 
-/***/ 319:
+/***/ 347:
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -88,7 +88,7 @@ render._withStripped = true
 
 /***/ }),
 
-/***/ 320:
+/***/ 348:
 /*!*************************************************************************************************************************!*\
   !*** D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***!
   \*************************************************************************************************************************/
@@ -97,14 +97,14 @@ render._withStripped = true
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-transition.vue?vue&type=script&lang=js& */ 321);
+/* harmony import */ var _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-transition.vue?vue&type=script&lang=js& */ 349);
 /* harmony import */ var _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  /* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
 
 /***/ }),
 
-/***/ 321:
+/***/ 349:
 /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/xcx_zkstation/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***!
   \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -122,7 +122,7 @@ exports.default = void 0;
 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 18));
 var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13));
 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
-var _createAnimation = __webpack_require__(/*! ./createAnimation */ 322);
+var _createAnimation = __webpack_require__(/*! ./createAnimation */ 350);
 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 /**
@@ -409,7 +409,7 @@ exports.default = _default2;
     'uni_modules/uni-transition/components/uni-transition/uni-transition-create-component',
     {
         'uni_modules/uni-transition/components/uni-transition/uni-transition-create-component':(function(module, exports, __webpack_require__){
-            __webpack_require__('2')['createComponent'](__webpack_require__(317))
+            __webpack_require__('2')['createComponent'](__webpack_require__(345))
         })
     },
     [['uni_modules/uni-transition/components/uni-transition/uni-transition-create-component']]

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません