Эх сурвалжийг харах

feat(charging): 优化充电页面逻辑与样式细节

- 调整长按结束按钮的事件绑定及变量赋值方式,提升代码可读性
- 规范模板语法中的空格和表达式写法,增强一致性
- 更新部分接口地址与请求参数,适配新后端API
- 完善订单状态处理流程,确保正确跳转至订单详情页
- 增加对设备信息、电量费用等数据展示的容错处理
- 修复充电启动时间和统计定时器相关逻辑问题

refactor(coupons): 修改优惠券领取接口和状态配置

- 替换领取优惠券的旧接口为新版 `/applet/v1/user/gainCoupon`
- 调整 tab 状态映射关系,修正状态值偏移问题

style(index): 更新首页 UI 文案与数据显示规则

- 将“2笔订单进行中”改为“查看充电订单”,提高语义清晰度
- 补充电价单位显示,完善高峰时段时间字段的兜底逻辑
- 修复用户 ID 获取来源,从 `appletUserId` 中取值以匹配最新结构

feat(login): 改进登录机制并支持隐私协议查看

- 新增取消登录功能按钮,并绑定返回路径方法
- 升级手机号授权登录逻辑,对接新的微信小程序登录接口
- 引入 `$config` 模块管理 token 存储键名
- 保留分销绑定与企业用户扫码加入逻辑

feat(map): 更改站点详情页路由指向新页面

- 修改地图页点击电站后的跳转链接至 `/pages/new-site/new-site`

style(my): 调整个人中心界面样式与条件渲染逻辑

- 更新企业认证提示框样式,美化背景渐变与文字布局
- 修正企业名称字段引用为 `firmName` 并更新海报文案内容
- 移除冗余二维码获取逻辑,直接使用 QRCode 组件生成邀请码
- 修改退款接口 URL 和响应判断依据,统一弹窗提示文本

feat(new-site): 优化电站详情页展示与导航逻辑

- 添加顶部轮播图存在性判断以避免异常渲染
- 动态设置内容区域位置,兼容无图片情况下的布局
- 清理无效的图片预处理逻辑,简化 onLoad 方法实现
- 更新终端列表项跳转参数,使用 connectorId 及 status 字段
zouzexu 3 өдөр өмнө
parent
commit
431691e60b
79 өөрчлөгдсөн 3094 нэмэгдсэн , 2901 устгасан
  1. 236 237
      pages/charging/charging.vue
  2. 3 3
      pages/coupons/coupons.vue
  3. 5 5
      pages/index/index.vue
  4. 84 70
      pages/login/login.vue
  5. 1 1
      pages/map/map.vue
  6. 9 2
      pages/my/my.css
  7. 12 46
      pages/my/my.vue
  8. 1 2
      pages/new-site/new-site.css
  9. 3 10
      pages/new-site/new-site.vue
  10. 165 156
      pages/order/order.vue
  11. 69 57
      pages/recharge-log/recharge-log.vue
  12. 1 1
      pages/site-more/site-more.vue
  13. 340 339
      pages/terminal/terminal.css
  14. 265 358
      pages/terminal/terminal.vue
  15. 18 4
      static/js/api.js
  16. 467 373
      static/js/app.js
  17. 2 2
      static/js/config.js
  18. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/app-navigation/app-navigation.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-body/ax-body.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-custom-title/ax-custom-title.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-ios-indicator/ax-ios-indicator.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-popup/ax-popup.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/banner-page/banner-page.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/charging/charging.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/coupon-buy/coupon-buy.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/coupons/coupons.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/feedback-reply/feedback-reply.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/feedback/feedback.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/map.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/my.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/new-site/new-site.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/order-detail/order-detail.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/order.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/recharge-log/recharge-log.js.map
  39. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/search/search.js.map
  40. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/site-more/site-more.js.map
  41. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/site/site.js.map
  42. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/terminal/terminal.js.map
  43. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.js.map
  44. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/lime-painter/components/l-painter/l-painter.js.map
  45. 103 74
      unpackage/dist/dev/mp-weixin/common/vendor.js
  46. 1 1
      unpackage/dist/dev/mp-weixin/components/app-navigation/app-navigation.js
  47. 2 2
      unpackage/dist/dev/mp-weixin/components/ax-body/ax-body.js
  48. 11 11
      unpackage/dist/dev/mp-weixin/components/ax-custom-title/ax-custom-title.js
  49. 11 11
      unpackage/dist/dev/mp-weixin/components/ax-ios-indicator/ax-ios-indicator.js
  50. 37 38
      unpackage/dist/dev/mp-weixin/pages/charging/charging.js
  51. 1 1
      unpackage/dist/dev/mp-weixin/pages/coupon-buy/coupon-buy.js
  52. 3 3
      unpackage/dist/dev/mp-weixin/pages/coupons/coupons.js
  53. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  54. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  55. 75 62
      unpackage/dist/dev/mp-weixin/pages/login/login.js
  56. 1 1
      unpackage/dist/dev/mp-weixin/pages/login/login.wxml
  57. 1 1
      unpackage/dist/dev/mp-weixin/pages/map/map.js
  58. 28 61
      unpackage/dist/dev/mp-weixin/pages/my/my.js
  59. 1 0
      unpackage/dist/dev/mp-weixin/pages/my/my.json
  60. 0 0
      unpackage/dist/dev/mp-weixin/pages/my/my.wxml
  61. 9 2
      unpackage/dist/dev/mp-weixin/pages/my/my.wxss
  62. 2 9
      unpackage/dist/dev/mp-weixin/pages/new-site/new-site.js
  63. 0 0
      unpackage/dist/dev/mp-weixin/pages/new-site/new-site.wxml
  64. 1 2
      unpackage/dist/dev/mp-weixin/pages/new-site/new-site.wxss
  65. 20 11
      unpackage/dist/dev/mp-weixin/pages/order/order.js
  66. 0 0
      unpackage/dist/dev/mp-weixin/pages/order/order.wxml
  67. 22 12
      unpackage/dist/dev/mp-weixin/pages/recharge-log/recharge-log.js
  68. 0 0
      unpackage/dist/dev/mp-weixin/pages/recharge-log/recharge-log.wxml
  69. 2 2
      unpackage/dist/dev/mp-weixin/pages/site-more/site-more.js
  70. 77 198
      unpackage/dist/dev/mp-weixin/pages/terminal/terminal.js
  71. 0 0
      unpackage/dist/dev/mp-weixin/pages/terminal/terminal.wxml
  72. 345 343
      unpackage/dist/dev/mp-weixin/pages/terminal/terminal.wxss
  73. 18 4
      unpackage/dist/dev/mp-weixin/static/js/api.js
  74. 467 373
      unpackage/dist/dev/mp-weixin/static/js/app.js
  75. 2 2
      unpackage/dist/dev/mp-weixin/static/js/config.js
  76. 157 0
      unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.js
  77. 4 0
      unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.json
  78. 1 0
      unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.wxml
  79. 10 10
      unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-text/l-painter-text.js

+ 236 - 237
pages/charging/charging.vue

@@ -5,8 +5,8 @@
 			<view v-if="exiting.visible" class="exiting">
 				<view class="app-flex c-center column contet">
 					<view class="exiting-title">长按停止按钮结束充电</view>
-					<view class="countdown-ring" :class="{active:exiting.lock}" @touchstart="exiting.lock=true"
-						@touchend="exiting.lock=false">
+					<view class="countdown-ring" :class="{ active: exiting.lock }" @touchstart="exiting.lock = true"
+						@touchend="exiting.lock = false">
 						<view class="_half left" @animationend="submitExit()"></view>
 						<view class="_half right"></view>
 						<view class="_button">
@@ -14,9 +14,9 @@
 							<view>充电</view>
 						</view>
 					</view>
-					<view class="close" @click="exiting.visible=false">取消</view>
+					<view class="close" @click="exiting.visible = false">取消</view>
 				</view>
-				<view @click="exiting.visible=false" class="mask"></view>
+				<view @click="exiting.visible = false" class="mask"></view>
 			</view>
 			<view v-if="orderInfo.status == 0" class="timer">
 				<view class="value" style="font-size: 22px;">充电正在启动中......</view>
@@ -29,7 +29,7 @@
 			<!-- 主参数 -->
 			<view class="parameter-info-box">
 				<!-- 充电动画 -->
-				 <!-- v-if="orderInfo.status == 1" -->
+				<!-- v-if="orderInfo.status == 1" -->
 				<view class="charge-loading-box">
 					<view class="charge-loading">
 						<image class="charge-icon" src="../../static/img/charge_loading.svg" mode=""></image>
@@ -37,43 +37,43 @@
 					</view>
 				</view>
 				<!-- 计时器 -->
-				 <!-- v-if="orderInfo.status == 1" -->
+				<!-- v-if="orderInfo.status == 1" -->
 				<view class="timer">
-					<view class="value">{{timer.text}}</view>
+					<view class="value">{{ timer.text }}</view>
 					<view class="name">充电时间</view>
 				</view>
 				<view class="parameter">
 					<view class="param">
 						<view class="name">电流A</view>
-						<view class="value">{{deviceInfo.current||'0'}}</view>
+						<view class="value">{{ deviceInfo.current || '0' }}</view>
 					</view>
 					<view class="split"></view>
 					<view class="param">
 						<view class="name">电压V</view>
-						<view class="value">{{getVolt()||'0'}}</view>
+						<view class="value">{{ getVolt() || '0' }}</view>
 					</view>
 					<view class="split"></view>
 					<view class="param">
 						<view class="name">功率KW</view>
-						<view class="value">{{deviceInfo.power||'0'}}</view>
+						<view class="value">{{ deviceInfo.power || '0' }}</view>
 					</view>
 					<view class="split"></view>
 					<view class="param">
 						<view class="name">电量/度</view>
-						<view class="value">{{statInfo.electricity||'0'}}</view>
+						<view class="value">{{ statInfo.electricity || '0' }}</view>
 					</view>
 					<view class="split"></view>
 					<view class="param">
 						<view class="name">费用/元</view>
-						<view class="value">{{statInfo.cost||'0'}}</view>
+						<view class="value">{{ statInfo.cost || '0' }}</view>
 					</view>
 				</view>
 				<view class="end-charge-box">
-					<button @click="exiting.visible=true" :disabled="!isShowBtn" class="end-charge">结束充电</button>
+					<button @click="exiting.visible = true" :disabled="!isShowBtn" class="end-charge">结束充电</button>
 				</view>
 			</view>
 			<!-- 统计兰 -->
-<!-- 			<view class="statbar">
+			<!-- 			<view class="statbar">
 				<view class="sta">
 					<view class="value">{{statInfo.electricity}}</view>
 					<view class="name">电量/度</view>
@@ -89,23 +89,23 @@
 				<view>
 					<view class="cell">
 						<view class="lable">订单编号</view>
-						<view class="contet">{{orderInfo.id}}</view>
+						<view class="contet">{{ orderInfo.id }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">终端编号</view>
-						<view class="contet">{{deviceInfo.deviceNo}}</view>
+						<view class="contet">{{ deviceInfo.deviceNo }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">充电电站</view>
-						<view class="contet">{{deviceInfo.thirdPartyStationName}}</view>
+						<view class="contet">{{ deviceInfo.thirdPartyStationName }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">充电终端</view>
-						<view class="contet">{{deviceInfo.deviceName}}</view>
+						<view class="contet">{{ deviceInfo.deviceName }}</view>
 					</view>
 				</view>
 				<view class="tips">账单信息可能会有所延迟,具体以实际结算为准</view>
-<!-- 				<view>
+				<!-- 				<view>
 					<button @click="exiting.visible=true" :disabled="!isShowBtn" class="end">结束充电</button>
 					<ax-ios-indicator min="10"></ax-ios-indicator>
 				</view> -->
@@ -115,245 +115,244 @@
 </template>
 
 <script>
-	export default {
-		onLoad(opts) {
-			console.log("启动充值页面的参数:", opts)
-			this.orderInfo.id = opts.orderId;
-			this.deviceInfo.id = opts.deviceId;
-		},
-		onShow() {
-			this.getDeviceInfo();
-			this.getOrderInfo();
+export default {
+	onLoad(opts) {
+		console.log("启动充值页面的参数:", opts)
+		this.orderInfo.id = opts.orderId;
+		this.deviceInfo.id = opts.deviceId;
+	},
+	onShow() {
+		this.getDeviceInfo();
+		this.getOrderInfo();
+	},
+	data() {
+		return {
+			exiting: {
+				visible: false,
+				lock: false
+			},
+			timer: {
+				id: 0,
+				start: '2024/08/07 09:00:00',
+				text: '00:00:00',
+				isSatrt: false,
+			},
+			orderTimer: {
+				id: 0,
+				isSatrt: false,
+				timeInterval: 10, //每隔多少秒查询一次订单(单位秒:s)
+			},
+			statInfo: {
+				electricity: 0,
+				cost: 0
+			}, //统计信息,电量,费用
+			nowPriceTime: {}, //当前价格时间段信息
+			deviceInfo: {}, //充电桩的信息
+			orderInfo: {
+				id: 1
+			}, //订单信息
+			isShowBtn: true, //是否显示长按结束按钮 
+		}
+	},
+	destroyed() {
+		console.log("关闭页面了。。。。。。")
+		//关闭页面了,要清除定时器
+		clearInterval(this.timer.id);
+		clearInterval(this.orderTimer.id);
+	},
+	methods: {
+		//获取设备的详情信息
+		getDeviceInfo(deviceId) {
+			this.$api.base("post", "/chargeApi/getDevicesDetial", {
+				"deviceId": this.deviceInfo.id
+			}, {}).then(res => {
+				this.deviceInfo = res.device;
+				this.nowPriceTime = res.nowPriceTime;
+
+			})
 		},
-		data() {
-			return {
-				exiting: {
-					visible: false,
-					lock: false
-				},
-				timer: {
-					id: 0,
-					start: '2024/08/07 09:00:00',
-					text: '00:00:00',
-					isSatrt: false,
-				},
-				orderTimer: {
-					id: 0,
-					isSatrt: false,
-					timeInterval: 10, //每隔多少秒查询一次订单(单位秒:s)
-				},
-				statInfo: {
-					electricity: 0,
-					cost: 0
-				}, //统计信息,电量,费用
-				nowPriceTime: {}, //当前价格时间段信息
-				deviceInfo: {}, //充电桩的信息
-				orderInfo: {
-					id: 1
-				}, //订单信息
-				isShowBtn: true, //是否显示长按结束按钮 
+		//是否显示长按结束按钮
+		isShowEendBtn(orderTime) {
+			var t1 = new Date(orderTime).getTime();
+			var t2 = new Date().getTime();
+			var t = (t2 - t1) / 1000; //单位秒
+			if (t >= 60 || this.orderInfo.status == 1) {
+				//启动时间大于一分钟,可以显示长按结束按钮
+				this.isShowBtn = true;
 			}
 		},
-		destroyed() {
-			console.log("关闭页面了。。。。。。")
-			//关闭页面了,要清除定时器
-			clearInterval(this.timer.id);
-			clearInterval(this.orderTimer.id);
-		},
-		methods: {
-			//获取设备的详情信息
-			getDeviceInfo(deviceId) {
-				this.$api.base("post", "/chargeApi/getDevicesDetial", {
-					"deviceId": this.deviceInfo.id
-				}, {}).then(res => {
-					this.deviceInfo = res.device;
-					this.nowPriceTime = res.nowPriceTime;
-
-				})
-			},
-			//是否显示长按结束按钮
-			isShowEendBtn(orderTime) {
-				var t1 = new Date(orderTime).getTime();
-				var t2 = new Date().getTime();
-				var t = (t2 - t1) / 1000; //单位秒
-				if (t >= 60 || this.orderInfo.status == 1) {
-					//启动时间大于一分钟,可以显示长按结束按钮
-					this.isShowBtn = true;
+		//查询订单详情并进行订单状态的检测
+		getOrderInfo() {
+			this.$api.base("post", "/chargeApi/queryIsSuccessStop", {
+				"id": this.orderInfo.id
+			}, {
+				loading: false
+			}).then(res => {
+				this.orderInfo = res.obj.orderInfo;
+				this.timer.start = res.obj.orderInfo.startTime.replaceAll("-", "/");
+				this.isShowEendBtn(res.obj.orderInfo.startTime.replaceAll("-", "/"));
+				//充电的度数
+				if (this.orderInfo.totalCharge != null) {
+					this.statInfo.electricity = this.orderInfo.totalCharge;
 				}
-			},
-			//查询订单详情并进行订单状态的检测
-			getOrderInfo() {
-				this.$api.base("post", "/chargeApi/queryIsSuccessStop", {
-					"id": this.orderInfo.id
-				}, {
-					loading: false
-				}).then(res => {
-					this.orderInfo = res.obj.orderInfo;
-					this.timer.start = res.obj.orderInfo.startTime.replaceAll("-", "/");
-					this.isShowEendBtn(res.obj.orderInfo.startTime.replaceAll("-", "/"));
-					//充电的度数
-					if (this.orderInfo.totalCharge != null) {
-						this.statInfo.electricity = this.orderInfo.totalCharge;
-					}
 
-					//费用
-					let cost = (this.statInfo.electricity * this.nowPriceTime.price).toFixed(2);
-					if (!isNaN(cost) && this.orderInfo.thirdPartyElecfee == 0) {
-						//如果后台,第三方返回的电费是0按照自己的方式进行计算
-						this.statInfo.cost = cost
-					}
-					if (!isNaN(this.orderInfo.realCost) && this.orderInfo.thirdPartyElecfee > 0) {
-						//如果后台有返回第三方的电费,取后台计算的值
-						this.statInfo.cost = this.orderInfo.realCost.toFixed(4);
-					}
+				//费用
+				let cost = (this.statInfo.electricity * this.nowPriceTime.price).toFixed(2);
+				if (!isNaN(cost) && this.orderInfo.thirdPartyElecfee == 0) {
+					//如果后台,第三方返回的电费是0按照自己的方式进行计算
+					this.statInfo.cost = cost
+				}
+				if (!isNaN(this.orderInfo.realCost) && this.orderInfo.thirdPartyElecfee > 0) {
+					//如果后台有返回第三方的电费,取后台计算的值
+					this.statInfo.cost = this.orderInfo.realCost.toFixed(4);
+				}
 
-					if (this.orderInfo.status == 3 || this.orderInfo.status == 5) {
-						uni.hideLoading();
-						clearInterval(this.timer.id);
-						clearInterval(this.orderTimer.id);
-						this.$app.url.goto('/pages/order-detail/order-detail?orderId=' + this.orderInfo.id, false);
-						return;
-					}
-					if (this.orderInfo.status == 1 && !this.timer.isSatrt) {
-						//状态为充电中
-						this.startup();
-					}
-					if (!this.orderTimer.isSatrt) {
-						this.orderTimer.isSatrt = true;
-						//开启定时器每隔5s查询订单
-						this.startCheckOrderTimer();
-					}
+				if (this.orderInfo.status == 3 || this.orderInfo.status == 5) {
+					uni.hideLoading();
+					clearInterval(this.timer.id);
+					clearInterval(this.orderTimer.id);
+					this.$app.url.goto('/pages/order-detail/order-detail?orderId=' + this.orderInfo.id, false);
+					return;
+				}
+				if (this.orderInfo.status == 1 && !this.timer.isSatrt) {
+					//状态为充电中
+					this.startup();
+				}
+				if (!this.orderTimer.isSatrt) {
+					this.orderTimer.isSatrt = true;
+					//开启定时器每隔5s查询订单
+					this.startCheckOrderTimer();
+				}
 
-				})
-			},
-			getVolt() {
-				if (!this.deviceInfo.power) {
-					return 0;
+			})
+		},
+		getVolt() {
+			if (!this.deviceInfo.power) {
+				return 0;
+			}
+			var v = this.deviceInfo.power / this.deviceInfo.current * 1000;
+			return v;
+		},
+		//启动检测订单的定时器,每隔5S
+		startCheckOrderTimer() {
+			clearInterval(this.orderTimer.id);
+			this.orderTimer.id = setInterval(() => {
+				this.getOrderInfo(this.orderInfo.id)
+			}, this.orderTimer.timeInterval * 1000);
+		},
+		// 启动定时器
+		startup() {
+			const start = new Date(this.timer.start);
+			const obj = {
+				hour: 0,
+				minute: 0,
+				second: 0
+			};
+			const handle = () => {
+				this.timer.isSatrt = true;
+				const diff = Date.now() - start.getTime();
+				obj.hour = Math.floor(diff / 1000 / 60 / 60);
+				obj.minute = Math.floor(diff / 1000 / 60 % 60);
+				obj.second = Math.floor(diff / 1000 % 60);
+				this.timer.text =
+					`${String(obj.hour).padStart(2, '0')}:${String(obj.minute).padStart(2, '0')}:${String(obj.second).padStart(2, '0')}`;
+				//console.log(diff,Math.floor(diff / 1000 ))
+				/* //计算在该功率下,
+				var mill = diff / 1000;//充电时间秒
+				if(!this.deviceInfo.power){
+					return;
 				}
-				var v = this.deviceInfo.power / this.deviceInfo.current * 1000;
-				return v;
-			},
-			//启动检测订单的定时器,每隔5S
-			startCheckOrderTimer() {
+				//充电的度数
+				this.statInfo.electricity = (this.deviceInfo.power/3600 * mill).toFixed(2);
+				//费用
+				this.statInfo.cost = (this.statInfo.electricity * this.nowPriceTime.price).toFixed(2); */
+			}
+			clearInterval(this.timer.id);
+			this.timer.id = setInterval(handle, 1000);
+			handle();
+		},
+		// 退出充电
+		exit() {
+			/* this.$app.popup.toast("测试环境,请等待自动结束")
+						return; */
+			this.$api.base("post", "/applet/v1/charge/stopCharge", {
+				"chargeOrderId": 1234
+			}, {}).then(res => {
+				this.exiting.lock = false;
 				clearInterval(this.orderTimer.id);
-				this.orderTimer.id = setInterval(() => {
+				this.orderTimer.isSatrt = false;
+				this.orderTimer.timeInterval = 2;
+				this.$app.popup.loading(true, {
+					title: "结算中,请稍候",
+					timeout: 120 * 1000
+				})
+				setTimeout(() => {
 					this.getOrderInfo(this.orderInfo.id)
-				}, this.orderTimer.timeInterval * 1000);
-			},
-			// 启动定时器
-			startup() {
-				const start = new Date(this.timer.start);
-				const obj = {
-					hour: 0,
-					minute: 0,
-					second: 0
-				};
-				const handle = () => {
-					this.timer.isSatrt = true;
-					const diff = Date.now() - start.getTime();
-					obj.hour = Math.floor(diff / 1000 / 60 / 60);
-					obj.minute = Math.floor(diff / 1000 / 60 % 60);
-					obj.second = Math.floor(diff / 1000 % 60);
-					this.timer.text =
-						`${String(obj.hour).padStart(2,'0')}:${String(obj.minute).padStart(2,'0')}:${String(obj.second).padStart(2,'0')}`;
-					//console.log(diff,Math.floor(diff / 1000 ))
-					/* //计算在该功率下,
-					var mill = diff / 1000;//充电时间秒
-					if(!this.deviceInfo.power){
-						return;
-					}
-					//充电的度数
-					this.statInfo.electricity = (this.deviceInfo.power/3600 * mill).toFixed(2);
-					//费用
-					this.statInfo.cost = (this.statInfo.electricity * this.nowPriceTime.price).toFixed(2); */
-				}
-				clearInterval(this.timer.id);
-				this.timer.id = setInterval(handle, 1000);
-				handle();
-			},
-			// 退出充电
-			exit() {
-				/* this.$app.popup.toast("测试环境,请等待自动结束")
-							return; */
-				var _this = this;
-				this.$api.base("post", "/chargeApi/stopCharge", {
-					"id": this.orderInfo.id
-				}, {}).then(res => {
-					this.exiting.lock = false;
-					clearInterval(this.orderTimer.id);
-					this.orderTimer.isSatrt = false;
-					this.orderTimer.timeInterval = 2;
-					this.$app.popup.loading(true, {
-						title: "结算中,请稍候",
-						timeout: 120 * 1000
-					})
-					setTimeout(() => {
-						this.getOrderInfo(this.orderInfo.id)
-					}, 2000)
+				}, 2000)
 
-					/* clearInterval(this.timer.id);
-					clearInterval(this.orderTimer.id);
-					this.$app.url.goto('/pages/order-detail/order-detail?orderId='+this.orderInfo.id,false); */
-				})
-			},
-			// 长按动画结束
-			submitExit() {
-				this.exiting.lock = false;
-				this.exiting.visible = false;
-				this.exit();
-			}
+				/* clearInterval(this.timer.id);
+				clearInterval(this.orderTimer.id);
+				this.$app.url.goto('/pages/order-detail/order-detail?orderId='+this.orderInfo.id,false); */
+			})
+		},
+		// 长按动画结束
+		submitExit() {
+			this.exiting.lock = false;
+			this.exiting.visible = false;
+			this.exit();
 		}
 	}
+}
 </script>
 
 <style lang="less" scoped>
-	@import url("charging.css");
+@import url("charging.css");
 
-	/* 充电loading动画 */
-	.charge-loading-box {
-		text-align: center;
-		margin-top: 20rpx;
-	}
+/* 充电loading动画 */
+.charge-loading-box {
+	text-align: center;
+	margin-top: 20rpx;
+}
 
-	.charge-loading {
-		width: 364rpx;
-		height: 36rpx;
-		background: #FFFFFF;
-		border-radius: 18rpx;
-		overflow: hidden;
-		position: relative;
-		margin: auto;
-	}
+.charge-loading {
+	width: 364rpx;
+	height: 36rpx;
+	background: #FFFFFF;
+	border-radius: 18rpx;
+	overflow: hidden;
+	position: relative;
+	margin: auto;
+}
 
-	.charge-icon {
-		width: 28rpx;
-		height: 28rpx;
-		z-index: 1000;
-		position: absolute;
-		left: 20rpx;
-		top: 5rpx;
-	}
+.charge-icon {
+	width: 28rpx;
+	height: 28rpx;
+	z-index: 1000;
+	position: absolute;
+	left: 20rpx;
+	top: 5rpx;
+}
 
-	.c-loading {
-		width: 100%;
-		height: 100%;
-		background: linear-gradient(66deg,
-				rgba(139, 243, 251, 0),
-				#60C8FE,
-				#53D4FF,
-				rgba(139, 243, 251, 0.7), );
-		border-radius: 18rpx;
-		animation: loading 3s linear infinite;
-		background-size: 200% 100%;
-	}
+.c-loading {
+	width: 100%;
+	height: 100%;
+	background: linear-gradient(66deg,
+			rgba(139, 243, 251, 0),
+			#60C8FE,
+			#53D4FF,
+			rgba(139, 243, 251, 0.7), );
+	border-radius: 18rpx;
+	animation: loading 3s linear infinite;
+	background-size: 200% 100%;
+}
 
-	@keyframes loading {
-		0% {
-			background-position: 100% 0;
-		}
+@keyframes loading {
+	0% {
+		background-position: 100% 0;
+	}
 
-		100% {
-			background-position: -100% 0;
-		}
+	100% {
+		background-position: -100% 0;
 	}
+}
 </style>

+ 3 - 3
pages/coupons/coupons.vue

@@ -98,7 +98,7 @@ export default {
 	methods: {
 		handleTabClick(e) {
 			this.currentIndex = e.id;
-			this.form_submit.status = e.id + 1
+			this.form_submit.status = e.id
 			this.toBeclaimedCoupons = []
 			this.get_TobeclaimedCoupons()
 		},
@@ -149,8 +149,8 @@ export default {
 			});
 			let timer = setInterval(() => {
 				clearInterval(timer)
-				this.$api.base("post", "/couponApi/receive", {
-					templateId: e.id
+				this.$api.base("post", "/applet/v1/user/gainCoupon", {
+					couponCode: e.code
 				}, {}).then(res => {
 					uni.hideLoading()
 					if (res.code == 0) {

+ 5 - 5
pages/index/index.vue

@@ -65,7 +65,7 @@
 											</view>
 										</view>
 										<view class="order-center-number">
-											<text style="color: #2BEB72;">2笔</text>订单进行中
+											查看充电订单
 										</view>
 									</view>
 									<image class="order-center-icon" src="/static/img/order-zx.png" mode=""></image>
@@ -129,7 +129,7 @@
 											<view class="app-flex middle">
 												<view class="charge"><text class="icon">快</text>{{ item.fastCharging }}
 												</view>
-												<view class="charge"><text class="icon blue">慢</text>{{
+												<view class="charge"><text class="icon blue">慢 </text>{{
 													item.slowCharging }}
 												</view>
 											</view>
@@ -149,10 +149,10 @@
 										<view class="app-flex middle" v-if="item.firmUser">
 											<view class="card-bottom-text">
 												<text class="card-bottom-text-minitext">{{ item.enterprisePrice
-												}}</text>
+												}}</text> <text style="color: #2B303A;font-size: 18rpx;">元/度</text>
 											</view>
 										</view>
-										<view>{{ item.peakValue }}{{ item.peakTime }}</view>
+										<view>{{ item.peakValue }}{{ item.peakTime || '--' }}</view>
 									</view>
 								</view>
 							</view>
@@ -603,7 +603,7 @@ export default {
 		},
 		getStations(lng, lat) {
 			this.$api.base("post", "/applet/v1/homePage/getStationInfoPage", {
-				pageNum: this.pageNum, pageSize: 10, sortType: this.sorts.index + 1, longitude: lng, latitude: lat, userId: parseInt(this.$app.storage.get('USER_INFO').id)
+				pageNum: this.pageNum, pageSize: 10, sortType: this.sorts.index + 1, longitude: lng, latitude: lat, userId: parseInt(this.$app.storage.get('USER_INFO').appletUserId)
 			}, {}).then(res => {
 				if (this.pageNum == 1) {
 					this.list.data = res.data.list

+ 84 - 70
pages/login/login.vue

@@ -18,9 +18,10 @@
 					<text class="ax ax-iconblock i-weixin"></text>
 					<text>微信用户一键登录</text>
 				</button>
-				<view class="cancel">取消返回</view>
+				<view class="cancel" @click="cancelLogin">取消登录</view>
 				<view @click="agreement = !agreement" class="agreement" style="font-size: 17px;">
-					<view class="mask" :class="{active:agreement}"><text class="ax ax-iconline i-select"></text></view>
+					<view class="mask" :class="{ active: agreement }"><text class="ax ax-iconline i-select"></text>
+					</view>
 					<text>我已阅读并理解和同意</text>
 					<text @click.stop="checkPrivacy()" class="em">《隐私政策协议》</text>
 				</view>
@@ -30,82 +31,95 @@
 </template>
 
 <script>
-	export default {
-		onLoad() {
-			uni.getPrivacySetting({
-				success: res => {
-					this.privacy.name = res.privacyContractName;
-					this.privacy.need = res.needAuthorization;
-				}
-			});
-		},
-		data() {
-			return {
-				agreement: false,
-				privacy: {
-					need: true,
-					name: ''
-				},
+import $config from '@/static/js/config.js';
+export default {
+	onLoad() {
+		uni.getPrivacySetting({
+			success: res => {
+				this.privacy.name = res.privacyContractName;
+				this.privacy.need = res.needAuthorization;
 			}
-		},
-		methods: {
-			// 查看隐私
-			checkPrivacy() {
-				uni.openPrivacyContract();
+		});
+	},
+	data() {
+		return {
+			agreement: false,
+			privacy: {
+				need: true,
+				name: ''
 			},
-			onGetPhoneNumber(e) {
-				console.log(e);
-				// let channelUrl='http://192.168.110.241:9120/zs/channel/admin/'
-				let channelUrl='https://channel-api.zonelife.cn/zs/channel/admin/'
-				if (e.detail.code) {
-					this.$api.base("post", '/userApi/getPhone', {
-						code: e.detail.code
-					}).then(async res => {
-						await this.$app.storage.set('USER_INFO', res.userInfo);
-						// 识别用户是否通过分销码进入小程序
-						if(uni.getStorageSync('ADMIN_USERID')){
-							uni.request({
-								url:channelUrl+'ums/umsAdminUser/distributionBindUser',
-								method: 'POST',
-								header: {
-									'content-type': 'application/json'
-								},
-								data: {
-									userId: res.userInfo.id,
-									adminUserId: uni.getStorageSync('ADMIN_USERID'),
-								},
-								success: (res) => {
-									console.info(res.data,'----扫码接口调用');
-									setTimeout(()=>{
-										this.$app.storage.remove('ADMIN_USERID')
-									},500)
-								},
-								fail(err) {
-									console.log(err,'----错误信息');
+		}
+	},
+	methods: {
+		// 查看隐私
+		checkPrivacy() {
+			uni.openPrivacyContract();
+		},
+		onGetPhoneNumber(e) {
+			console.log(e);
+			// let channelUrl='http://192.168.110.241:9120/zs/channel/admin/'
+			let channelUrl = 'https://channel-api.zonelife.cn/zs/channel/admin/';
+			uni.login({
+				provider: 'weixin',
+				success: (res) => {
+					if (res.code) {
+						if (e.detail.code) {
+							this.$api.base("post", '/api/v1/auth/wx/miniapp/phone-code-login', {
+								code: res.code,
+								phoneCode: e.detail.code
+							}).then(async res => {
+								uni.setStorageSync($config.keyname.accessToken, res?.data?.accessToken);
+								uni.setStorageSync($config.keyname.refreshToken, res?.data?.refreshToken);
+								// 识别用户是否通过分销码进入小程序
+								if (uni.getStorageSync('ADMIN_USERID')) {
+									uni.request({
+										url: channelUrl + 'ums/umsAdminUser/distributionBindUser',
+										method: 'POST',
+										header: {
+											'content-type': 'application/json'
+										},
+										data: {
+											userId: res.userInfo.id,
+											adminUserId: uni.getStorageSync('ADMIN_USERID'),
+										},
+										success: (res) => {
+											console.info(res.data, '----扫码接口调用');
+											setTimeout(() => {
+												this.$app.storage.remove('ADMIN_USERID')
+											}, 500)
+										},
+										fail(err) {
+											console.log(err, '----错误信息');
+										}
+									});
 								}
+								if (this.$app.storage.get('FRIM_ID')) {
+									this.$api.base("post", "/userApi/add-firm-user?firmId=" + parseInt(this.$app.storage.get('FRIM_ID')), {}, { error: false }).then(res => {
+										this.$app.popup.alert(res.msg);
+										setTimeout(() => {
+											this.$app.storage.remove('FRIM_ID')
+										}, 500)
+										console.log(res, '----企业用户通过扫码进入');
+									}).catch(err => {
+										setTimeout(() => {
+											this.$app.storage.remove('FRIM_ID')
+										}, 500)
+									})
+								}
+								this.$app.url.back()
 							});
 						}
-						if(this.$app.storage.get('FRIM_ID')){
-							this.$api.base("post","/userApi/add-firm-user?firmId="+parseInt(this.$app.storage.get('FRIM_ID')),{},{error: false}).then(res=>{
-								this.$app.popup.alert(res.msg);
-								setTimeout(()=>{
-									this.$app.storage.remove('FRIM_ID')
-								},500)
-								console.log(res,'----企业用户通过扫码进入');
-							}).catch(err=>{
-							setTimeout(()=>{
-								this.$app.storage.remove('FRIM_ID')
-							},500)
-						})
-						}
-						this.$app.url.back()
-					});
-				}
-			},
+					}
+				},
+			})
+		},
+		cancelLogin() {
+			this.$app.url.back()
 		}
 	}
+}
 </script>
 
 <style scoped>
-	@import url("login.css");
+@import url("login.css");
 </style>

+ 1 - 1
pages/map/map.vue

@@ -218,7 +218,7 @@ export default {
 			this.list.index = -1;
 		},
 		gotoSiteDetail() {
-			this.$app.url.goto('/pages/site/site?item=' + JSON.stringify(this.list.data[this.list.index]));
+			this.$app.url.goto('/pages/new-site/new-site?item=' + JSON.stringify(this.list.data[this.list.index]));
 		}
 	}
 }

+ 9 - 2
pages/my/my.css

@@ -265,7 +265,14 @@ app-navigation {
 }
 
 .enterprise-tips {
+  margin: auto;
+  margin-top: 10rpx;
+  background: linear-gradient(to right, #8ff8fb, #47aeff);
+  width: 140rpx;
+  height: 60rpx;
   text-align: center;
-  font-size: 28rpx;
-  color: #ff0004;
+  line-height: 60rpx;
+  font-size: 24rpx;
+  border-radius: 10rpx;
+  color: #fff;
 }

+ 12 - 46
pages/my/my.vue

@@ -14,7 +14,7 @@
 					<view>
 						<view class="user-name">
 							<view class="user-name-text">{{ userinfo.nickName ? userinfo.nickName : '匿名' }}</view>
-							<view class="enterprise-name-card" v-if="userinfo.firmInfoName">{{ userinfo.firmInfoName }}
+							<view class="enterprise-name-card" v-if="userinfo.firmName">{{ userinfo.firmName }}
 							</view>
 						</view>
 						<view class="user-phone" v-if="userinfo.phone">{{ userinfo.phone ? userinfo.phone : '未获取手机' }}
@@ -93,7 +93,8 @@
 						<view class="name">隐私条例</view>
 					</view>
 					<!-- firmUserType===1管理员,2普通用户 -->
-					<view class="act-item" @click="openFilter()" v-if="userinfo.firmUserType === 1">
+					<!-- v-if="userinfo.firmUserType === 1" -->
+					<view class="act-item" @click="openFilter()" v-if="userinfo.firmId && userinfo.firmUserType === 1">
 						<image src="@/static/img/my-icon06.svg" class="icon"></image>
 						<view class="name">邀请员工</view>
 					</view>
@@ -101,26 +102,18 @@
 			</view>
 		</view>
 		<ax-popup ref="filter" position="" maskType="black" maskEnable maskClose>
-			<!-- 			<view class="playbil-box" @click="editPlaybil">
-				<image class="playbil-bg" :src="playbil_img" mode="widthFix"></image>
-				<image class="playbil-qrcode" :src="qrCode" mode=""></image>
-				<view class="enterprise-name">
-					{{ userinfo.firmInfoName }}
-				</view>
-				<view class="enterprise-user">{{ userinfo.nickName ? userinfo.nickName : '匿名用户' }}</view>
-			</view> -->
 			<l-painter ref="painter" isCanvasToTempFilePath @success="path = $event">
 				<l-painter-view css="position:relative;">
 					<l-painter-image
 						src="https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/XVsEVGuCCbNv4aee36cc2f76e7050f62ebad3080ad88.jpg/1.jpg"
 						css="width:600rpx; height: 1000rpx" />
-					<l-painter-image :src="qrCode"
+					<l-painter-qrcode :text="'https://cd.api.zswlgz.com/deviceid?frimId=' + userinfo.firmId"
 						css="width:260rpx; height: 260rpx;position: absolute;top:27%;left:29%" />
 					<l-painter-text
 						css="position: absolute;top:594rpx;left:50%;transform:translateX(-50%);color:#216ff7;font-size:22rpx;width:60%;text-align:center;"
-						align="center" :text="userinfo.firmInfoName ? userinfo.firmInfoName : '默认企业'">
+						align="center" :text="userinfo.firmName ? userinfo.firmName : '默认企业'">
 					</l-painter-text>
-					<l-painter-text css="position: absolute;top:86%;left:42%;color:#ffffff;font-size:24rpx"
+					<l-painter-text css="position: absolute;top:86%;left:37%;color:#ffffff;font-size:24rpx"
 						:text="userinfo.nickName ? userinfo.nickName : '匿名用户'">
 					</l-painter-text>
 				</l-painter-view>
@@ -139,7 +132,6 @@ export default {
 		return {
 			userinfo: {},
 			playbil_img: 'https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/XVsEVGuCCbNv4aee36cc2f76e7050f62ebad3080ad88.jpg/1.jpg',
-			qrCode: null,
 			banners: [],
 		}
 	},
@@ -151,7 +143,8 @@ export default {
 	},
 	methods: {
 		openFilter() {
-			this.get_qrCode()
+			this.$refs.filter.open();
+
 		},
 		// 版头加载完成
 		bannerLoadCompleted() {
@@ -165,33 +158,6 @@ export default {
 				this.banners = res.data
 			})
 		},
-		get_qrCode() {
-			uni.showLoading()
-			uni.request({
-				url: $config.url.request + 'userApi/get-invite-qr',
-				method: 'GET',
-				responseType: 'arraybuffer',
-				header: {
-					'content-type': 'application/json',
-					'token': uni.getStorageSync($config.keyname.userToken)
-				},
-				data: {},
-				success: (res) => {
-					console.log(res);
-					uni.hideLoading()
-					const arrayBuffer = res.data;
-					const base64 = wx.arrayBufferToBase64(arrayBuffer);
-					this.qrCode = 'data:image/png;base64,' + base64;
-					this.$refs.filter.open();
-				},
-				fail(err) {
-					uni.showToast({
-						icon: "error",
-						title: '获取二维码失败' + err
-					})
-				}
-			});
-		},
 		savePainter() {
 			this.$refs.painter.canvasToTempFilePathSync({
 				fileType: "png",
@@ -215,13 +181,13 @@ export default {
 		refund() {
 			this.$app.popup.confirm("退款按照购券记录进行逐笔退款,可能产生多笔退款到账记录,请注意查收。", "退款说明").then(confirm => {
 				if (confirm) {
-					this.$api.base("post", '/orderApi/refund', {}).then(res => {
-						if (res.code == 0) {
-							this.$app.popup.alert('退款成功!').then(() => {
+					this.$api.base("put", '/applet/v1/order/refundOrder', {}).then(res => {
+						if (res.code == '00000') {
+							this.$app.popup.alert(res.data).then(() => {
 								this.getMyAccount()
 							});
 						} else {
-							this.$app.popup.alert(res.msg);
+							this.$app.popup.alert(res.data);
 						}
 					});
 				}

+ 1 - 2
pages/new-site/new-site.css

@@ -14,7 +14,6 @@ ax-body {
   right: 0;
   z-index: 0;
   width: 100%;
-  height: 520rpx;
   /* position: relative; */
 }
 
@@ -48,7 +47,7 @@ ax-body {
 .site-content {
   width: 100%;
   position: absolute;
-  top: 320rpx;
+  /* top: 320rpx; */
   background: linear-gradient(180deg, #ffffff 0%, #f6faff 82%, #f6faff 100%);
   border-radius: 32rpx 32rpx 0rpx 0rpx;
   padding: 0 20rpx 0 20rpx;

+ 3 - 10
pages/new-site/new-site.vue

@@ -1,7 +1,7 @@
 <template>
 	<ax-body :blank="0">
 		<view class="site-body">
-			<view class="top-banner">
+			<view class="top-banner" v-if="stationDetail.pictures">
 				<swiper class="banner-swiper" circular :autoplay="true" interval="3000" duration="500"
 					@change="swiperChange">
 					<swiper-item class="banner-swiper-item" v-for="item in stationDetail.pictures">
@@ -10,7 +10,7 @@
 				</swiper>
 				<view class="swiper-current">{{ bannerIndex }}/{{ stationDetail.pictures.length }}</view>
 			</view>
-			<view class="site-content">
+			<view class="site-content" :style="{ top: `${stationDetail.pictures ? '320rpx' : '0'}` }">
 				<view class="top-site-info">
 					<view class="site-title">{{ stationDetail.stationName }}</view>
 					<view class="site-text">
@@ -182,13 +182,6 @@ export default {
 	onLoad: function (option) {
 		console.log(option); //打印出上个页面传递的参数。
 		this.stationInfo = JSON.parse(option.item);
-		if (this.stationInfo.pictures) {
-			//添加站点图片
-			var imgArr = this.stationInfo.pictures.split(",");
-			if (imgArr.length > 0) {
-				this.tops = imgArr;
-			}
-		}
 		this.getStationsInfo();
 		this.getConfigStationInfo();
 	},
@@ -350,7 +343,7 @@ export default {
 			if (item.deviceStatus == 0 || item.deviceStatus == 255) {
 				return;
 			}
-			this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.id + "&deviceStatus=" + item.deviceStatus);
+			this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.connectorId + "&deviceStatus=" + item.status);
 		},
 		//去查看全部电站
 		toDeiceAll() {

+ 165 - 156
pages/order/order.vue

@@ -3,61 +3,69 @@
 		<view class="body">
 			<view class="app-flex c-between top">
 				<view class="tabs">
-					<view v-for="(item,index) in tabs.data" :key="index" @click="tabs.index=index" 
-					class="tab" :class="{active:tabs.index==index}">{{item.name}}</view>
+					<view v-for="(item, index) in tabs.data" :key="index" @click="tabs.index = index" class="tab"
+						:class="{ active: tabs.index == index }">{{ item.name }}</view>
 				</view>
 				<view><text @click="openFilter()" class="ax-iconline i-setting filter-icon"></text></view>
 			</view>
 			<view class="list app-hide-scrollbar">
-				<view v-for="(item,index) in orders.data" :key="index" class="item">
+				<view v-for="(item, index) in orders.data" :key="index" class="item">
 					<view class="title" @click="toOrderDeile(item)">
-						<view class="name">{{item.params.stationName}}</view>
-						<view class="state" :class="[getSates(item).color]">{{getSates(item).name}}</view>
+						<view class="name">{{ item.params.stationName }}</view>
+						<view class="state" :class="[getSates(item).color]">{{ getSates(item).name }}</view>
 					</view>
 					<view class="subinfo" @click="toOrderDeile(item)">
 						<view>
-							<view>订单时间: {{item.createTime}}</view>
-							<view>终端名称:  {{item.params.deviceName}}</view>
+							<view>订单时间: {{ item.createTime }}</view>
+							<view>终端名称: {{ item.params.deviceName }}</view>
 						</view>
 					</view>
 					<view class="bottom" @click="toOrderDeile(item)">
 						<view class="money-txt">充电费用:</view>
 						<view class="money">
-							<text style="color:red;" v-if="item.discountMoney||item.firmPrice">共减 ¥{{(item.discountMoney+item.firmPrice+item.couponPrice).toFixed(4)}}</text>
+							<text style="color:red;" v-if="item.discountMoney || item.firmPrice">共减
+								¥{{ (item.discountMoney + item.firmPrice + item.couponPrice).toFixed(4) }}</text>
 							<text style="width: 20rpx;display: inline-block;"></text>
-							<text :style="{color:`${item.discountMoney||item.firmPrice?'':'red'}`}"><text v-if="item.discountMoney||item.firmPrice">实付</text> ¥{{item.realCost.toFixed(4) || ''}}</text>
+							<text :style="{ color: `${item.discountMoney || item.firmPrice ? '' : 'red'}` }"><text
+									v-if="item.discountMoney || item.firmPrice">实付</text> ¥{{ item.realCost.toFixed(4)
+										||
+										'' }}</text>
 						</view>
 					</view>
 					<view class="button-box">
 						<view @click.stop="customerService()" class="invoice">开发票</view>
-							<view class="arrears-btn-box" v-if="item.maspStatus===1" @click="$app.url.goto('/pages/coupon-buy/coupon-buy')">
-								<view class="overflow-mon">超{{(item.maspAmount+item.maspRealAmount).toFixed(2)}}元</view>
-								<view class="arrears-btn">去补缴</view>
-							</view>
+						<view class="arrears-btn-box" v-if="item.maspStatus === 1"
+							@click="$app.url.goto('/pages/coupon-buy/coupon-buy')">
+							<view class="overflow-mon">超{{ (item.maspAmount + item.maspRealAmount).toFixed(2) }}元</view>
+							<view class="arrears-btn">去补缴</view>
+						</view>
 					</view>
 				</view>
-				<view v-if="orders.data.length==0" class="empty">
+				<view v-if="orders.data.length == 0" class="empty">
 					<icon class="ax-iconblock i-meiyou icon"></icon>
 					<view>暂无数据</view>
 				</view>
-				<view v-if="orders.total>orders.data.length" @click="loadData(true)" class="loadmore"><text>点击加载更多</text></view>
+				<view v-if="orders.total > orders.data.length" @click="loadData(true)" class="loadmore">
+					<text>点击加载更多</text>
+				</view>
 			</view>
 			<!-- 筛选查询 -->
 			<ax-popup ref="filter" position="top" maskType="black" maskEnable maskClose>
-				<view class="filter-box" :style="{'--filter-padding-top':`${bodyTop+60}px`}">
+				<view class="filter-box" :style="{ '--filter-padding-top': `${bodyTop + 60}px` }">
 					<view class="divider"></view>
 					<view class="filter-form">
 						<view class="cell">
 							<view class="lable">开始时间</view>
-							<picker @change="onChange('start',$event)" :value="filter.start" class="content" mode="date">
-								<text>{{filter.start}}</text>
+							<picker @change="onChange('start', $event)" :value="filter.start" class="content"
+								mode="date">
+								<text>{{ filter.start }}</text>
 								<text class="ax-iconline i-arrow-right icon"></text>
 							</picker>
 						</view>
 						<view class="cell">
 							<view class="lable">结束时间</view>
-							<picker @change="onChange('end',$event)" :value="filter.end" class="content" mode="date">
-								<text>{{filter.end}}</text>
+							<picker @change="onChange('end', $event)" :value="filter.end" class="content" mode="date">
+								<text>{{ filter.end }}</text>
 								<text class="ax-iconline i-arrow-right icon"></text>
 							</picker>
 						</view>
@@ -67,7 +75,8 @@
 							<view class="lable">快速设定</view>
 						</view>
 						<view class="shortcut-list">
-							<view v-for="(item,index) in shortcuts" :key="index" @click="shortcut(item)" class="shortcut">{{item.name}}</view>
+							<view v-for="(item, index) in shortcuts" :key="index" @click="shortcut(item)"
+								class="shortcut">{{ item.name }}</view>
 						</view>
 					</view>
 					<view @click="submit()" class="submit">确认查询</view>
@@ -78,148 +87,148 @@
 </template>
 
 <script>
-	export default {
-		onLoad(options) {
-			this.shortcut({code:'currentMonth'});
-			if(options.index){
-				this.tabs.index=options.index
-				this.formSubmitPara.type=1
-			}else{
-				this.loadData();
-			}
-		},
-		data() {
-			return {
-				bodyTop: 0,
-				tabs:{
-					index: 0,
-					data:[{name:'全部订单',type:-1},{name:'进行中',type:1},{name:'已完成',type:2}]
-				},
-				shortcuts:[
-					{name:'近7天',code:'7day'},
-					{name:'近30天',code:'30day'},
-					{name:'近三月',code:'3months'},
-					{name:'本月份',code:'currentMonth'},
-				],
-				orders:{
-					total: 0,
-					data:[],
-				},
-				filter:{
-					start: '',
-					end: '',
-				},
-				formSubmitPara : {//提交的参数信息
-					startDate: '',
-					endDate: '',
-					pageNum : 1,
-					pageSize : 10,
-					type:-1,//全部订单
-				}
-			}
-		},
-		watch:{
-			"tabs.index":function(){
-				this.loadData();
+export default {
+	onLoad(options) {
+		this.shortcut({ code: 'currentMonth' });
+		if (options.index) {
+			this.tabs.index = options.index
+			this.formSubmitPara.status = 1
+		} else {
+			this.loadData();
+		}
+	},
+	data() {
+		return {
+			bodyTop: 0,
+			tabs: {
+				index: 0,
+				data: [{ name: '全部订单', status: '' }, { name: '进行中', status: 1 }, { name: '已完成', status: 3 }]
+			},
+			shortcuts: [
+				{ name: '近7天', code: '7day' },
+				{ name: '近30天', code: '30day' },
+				{ name: '近三月', code: '3months' },
+				{ name: '本月份', code: 'currentMonth' },
+			],
+			orders: {
+				total: 0,
+				data: [],
+			},
+			filter: {
+				start: '',
+				end: '',
+			},
+			formSubmitPara: {//提交的参数信息
+				startTime: '',
+				endTime: '',
+				pageNum: 1,
+				pageSize: 10,
+				status: '',//全部订单
 			}
+		}
+	},
+	watch: {
+		"tabs.index": function () {
+			this.loadData();
+		}
+	},
+	methods: {
+		initBody(data) {
+			this.bodyTop = data.top;
 		},
-		methods: {
-			initBody(data){
-				this.bodyTop = data.top;
-			},
-			shortcut(item){
-				const now = new Date();
-				const format = this.$app.date.format;
-				switch (item.code){
-					case '7day':
-						now.setDate(now.getDate()-7);
-						this.filter.start = format('yyyy-MM-dd',now);
-						this.filter.end = this.$app.date.format('yyyy-MM-dd');
+		shortcut(item) {
+			const now = new Date();
+			const format = this.$app.date.format;
+			switch (item.code) {
+				case '7day':
+					now.setDate(now.getDate() - 7);
+					this.filter.start = format('yyyy-MM-dd', now);
+					this.filter.end = this.$app.date.format('yyyy-MM-dd');
 					break;
-					case '30day':
-						now.setDate(now.getDate()-30);
-						this.filter.start = format('yyyy-MM-dd',now);
-						this.filter.end = this.$app.date.format('yyyy-MM-dd');
+				case '30day':
+					now.setDate(now.getDate() - 30);
+					this.filter.start = format('yyyy-MM-dd', now);
+					this.filter.end = this.$app.date.format('yyyy-MM-dd');
 					break;
-					case '3months':
-						this.filter.start = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth()-3,1));
-						this.filter.end = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth()+1,0));
+				case '3months':
+					this.filter.start = format('yyyy-MM-dd', new Date(now.getFullYear(), now.getMonth() - 3, 1));
+					this.filter.end = format('yyyy-MM-dd', new Date(now.getFullYear(), now.getMonth() + 1, 0));
 					break;
-					case 'currentMonth':
-						this.filter.start = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth(),1));
-						this.filter.end = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth()+1,0));
+				case 'currentMonth':
+					this.filter.start = format('yyyy-MM-dd', new Date(now.getFullYear(), now.getMonth(), 1));
+					this.filter.end = format('yyyy-MM-dd', new Date(now.getFullYear(), now.getMonth() + 1, 0));
 					break;
-				}
-			},
-			openFilter(){
-				this.$refs.filter.open();
-			},
-			submit(){
-				console.log(this.filter);
-				this.formSubmitPara.startDate = this.filter.start;
-				this.formSubmitPara.endDate = this.filter.end;
-				this.loadData();
-				this.$refs.filter.close();
-			},
-			onChange(name,e){
-				this.filter[name] = e.detail.value;
-			},
-			loadData(append){
-				this.formSubmitPara.type = this.tabs.data[this.tabs.index].type;
-				if(append){
-					//点击加载更多的调用
-					this.formSubmitPara.pageNum = this.formSubmitPara.pageNum + 1;
-				}else{
-					this.formSubmitPara.pageNum = 0;
-					this.orders.data =[];
-					this.orders.total = 0;
-				}
-				this.$api.base("post","/chargeApi/queryOrderList",this.formSubmitPara,{}).then(res=>{
-					console.log("订单列表:",res)
-					this.orders.data = this.orders.data.concat(res.table.rows);
-					this.orders.total = res.table.total;
-				})
-			},
-			//映射状态信息
-			getSates(item){
-				var obj = {color:"",name:"未知"};
-				if(item.status == 0){
-					obj.color = "";
-					obj.name = "待充电";
-				}else if(item.status == 1){
-					obj.color = "green";
-					obj.name = "充电中";
-				}else if(item.status == 2){
-					obj.color = "green";
-					obj.name = "结算中";
-				}else if(item.status == 3){
-					obj.color = "blue";
-					obj.name = "已完成";
-				}else if(item.status == 5){
-					obj.color = "blue";
-					obj.name = "订单取消";
-				}
-				return obj;
-			},
-			toOrderDeile(item){
-				if(item.status == 0 || item.status == 1){
-					//有充电中的订单,点击时跳转到充电中页面进行查看
-					this.$app.url.goto('/pages/charging/charging?orderId='+item.id+"&deviceId="+item.deviceId,true);
-				}else{
-					this.$app.url.goto('/pages/order-detail/order-detail?orderId='+item.id);
-				}
-				
-			},
-			// 打开客服
-			customerService(){
-				const cs = this.$config.customerService;
-				this.$app.act.customerService(cs.id,cs.url).catch(err=>{
-					console.log(err);
-					this.$app.popup.alert('客服中心失联啦,请联系管理员!');
-				});
-			},
-		}
+			}
+		},
+		openFilter() {
+			this.$refs.filter.open();
+		},
+		submit() {
+			console.log(this.filter);
+			this.formSubmitPara.startTime = this.filter.start + ' 00:00:00';
+			this.formSubmitPara.endTime = this.filter.end + ' 23:59:59';
+			this.loadData();
+			this.$refs.filter.close();
+		},
+		onChange(name, e) {
+			this.filter[name] = e.detail.value;
+		},
+		loadData(append) {
+			this.formSubmitPara.status = this.tabs.data[this.tabs.index].status;
+			if (append) {
+				//点击加载更多的调用
+				this.formSubmitPara.pageNum = this.formSubmitPara.pageNum + 1;
+			} else {
+				this.formSubmitPara.pageNum = 0;
+				this.orders.data = [];
+				this.orders.total = 0;
+			}
+			this.$api.base("post", "/applet/v1/charge/getPage", this.formSubmitPara, {}).then(res => {
+				console.log("订单列表:", res)
+				this.orders.data = this.orders.data.concat(res.table.rows);
+				this.orders.total = res.table.total;
+			})
+		},
+		//映射状态信息
+		getSates(item) {
+			var obj = { color: "", name: "未知" };
+			if (item.status == 0) {
+				obj.color = "";
+				obj.name = "待充电";
+			} else if (item.status == 1) {
+				obj.color = "green";
+				obj.name = "充电中";
+			} else if (item.status == 2) {
+				obj.color = "green";
+				obj.name = "结算中";
+			} else if (item.status == 3) {
+				obj.color = "blue";
+				obj.name = "已完成";
+			} else if (item.status == 5) {
+				obj.color = "blue";
+				obj.name = "订单取消";
+			}
+			return obj;
+		},
+		toOrderDeile(item) {
+			if (item.status == 0 || item.status == 1) {
+				//有充电中的订单,点击时跳转到充电中页面进行查看
+				this.$app.url.goto('/pages/charging/charging?orderId=' + item.id + "&deviceId=" + item.deviceId, true);
+			} else {
+				this.$app.url.goto('/pages/order-detail/order-detail?orderId=' + item.id);
+			}
+
+		},
+		// 打开客服
+		customerService() {
+			const cs = this.$config.customerService;
+			this.$app.act.customerService(cs.id, cs.url).catch(err => {
+				console.log(err);
+				this.$app.popup.alert('客服中心失联啦,请联系管理员!');
+			});
+		},
 	}
+}
 </script>
 
 <style scoped>

+ 69 - 57
pages/recharge-log/recharge-log.vue

@@ -2,27 +2,32 @@
 	<ax-body>
 		<view class="body app-hide-scrollbar">
 			<view v-if="logs.data.length" class="list">
-				<view v-for="(item,index) in logs.data" :key="index" class="item">
+				<view v-for="(item, index) in logs.data" :key="index" class="item">
 					<view class="title">
-						<view class="name">{{item.params.levelName}}</view>
-						<view class="state" :style="{backgroundColor:item.orderStatus==2?'':'#FF5D50'}">{{getStatusTips(item.orderStatus)}}</view>
+						<view class="name">{{ item.params.levelName }}</view>
+						<view class="state" :style="{ backgroundColor: item.orderStatus == 2 ? '' : '#FF5D50' }">
+							{{ getStatusTips(item.orderStatus) }}</view>
 					</view>
 					<view class="cell">
-						<view>订单编号:{{item.outTradeNo}}</view>
-						<view>购券时间:{{item.payTime}}</view>
-						<view>实付金额:{{item.orderMoney}}元</view>
-						<view class="backTaxAmount" v-if="item.backTaxAmount&&item.backTax===0">
-							<view class="">超充金额:{{item.backTaxAmount}}元</view>
+						<view>订单编号:{{ item.orderNo }}</view>
+						<view>购券时间:{{ item.payTime }}</view>
+						<view>实付金额:{{ item.orderMoney }}元</view>
+						<view class="backTaxAmount" v-if="item.backTaxAmount && item.backTax === 0">
+							<view class="">超充金额:{{ item.backTaxAmount }}元</view>
 							<view>|</view>
 							<view class="check-backTaxAmount" @click="topage_order(item)">查看超充订单</view>
 						</view>
-						<view v-if="item.ZTBackMoney">返回智停端补缴金额:{{item.ZTBackMoney}}</view>
-						<view v-if="item.backTaxAmount&&item.backTax===0">可抵扣余量:{{item.orderMoney-item.backTaxAmount}}元</view>
-						<view v-if="item.orderStatus!=2">退款时间:{{item.refundTime}}</view>
-						<view v-if="item.orderStatus!=2">退款金额:{{item.refundMoney}}元</view>
+						<view v-if="item.ZTBackMoney">返回智停端补缴金额:{{ item.ZTBackMoney }}</view>
+						<view v-if="item.backTaxAmount && item.backTax === 0">可抵扣余量:{{ item.orderMoney -
+							item.backTaxAmount }}元
+						</view>
+						<view v-if="item.orderStatus != 2">退款时间:{{ item.refundTime }}</view>
+						<view v-if="item.orderStatus != 2">退款金额:{{ item.refundMoney }}元</view>
 					</view>
 				</view>
-				<view v-if="logs.total>logs.data.length" @click="loadData(true)" class="loadmore"><text>点击加载更多数据</text></view>
+				<view v-if="logs.total > logs.data.length" @click="loadData(true)" class="loadmore">
+					<text>点击加载更多数据</text>
+				</view>
 			</view>
 			<view v-else class="nothing">
 				<image src="@/static/img/empty.svg" mode="widthFix" class="icon"></image>
@@ -33,55 +38,62 @@
 </template>
 
 <script>
-	export default {
-		onLoad() {
-			this.loadData();
-		},
-		data() {
-			return {
-				logs:{
-					total: 0,
-					data:[],
-				},
-				search_data:{
-					pageNum:1,
-					pageSize:10,
-					orderByColumn:'payTime',
-					isAsc:'desc'
-				}
+export default {
+	onLoad() {
+		this.loadData();
+	},
+	data() {
+		return {
+			logs: {
+				total: 0,
+				data: [],
+			},
+			search_data: {
+				pageNum: 1,
+				pageSize: 10
+			}
+		}
+	},
+	methods: {
+		getStatusTips(status) {
+			if (status == 2) {
+				return "已到账"
+			} else if (status == 4) {
+				return "已退款"
+			} else if (status == 5) {
+				return "退款中"
 			}
 		},
-		methods: {
-			getStatusTips(status){
-				if(status==2){
-					return "已到账"
-				}else if(status==4){
-					return "已退款"
-				}else if(status==5){
-					return "退款中"
-				}
-			},
-			loadData(append){
-				if(append){
-					this.search_data.pageNum++
-					// 追加模式,由loadmore触发
-					this.$api.base("post","/orderApi/getOrderList",this.search_data,{}).then(res=>{
-						this.logs.data = this.logs.data.concat(res.orderLsit.rows);
-					})
-				}else{
-					this.search_data.pageNum = 1
-					// 初始化模式,一般由onLoad触发
-					this.$api.base("post","/orderApi/getOrderList",this.search_data,{}).then(res=>{
-						this.logs.total = res.orderLsit.total
-						this.logs.data = res.orderLsit.rows
-					})
-				}
-			},
-			topage_order(item){
-				this.$app.url.goto('/pages/order-detail/order-detail?orderId='+item.chargeOrderId);
+		loadData(append) {
+			const currentPage = this.search_data.pageNum;
+			if (append) {
+				this.search_data.pageNum++;
+			} else {
+				this.search_data.pageNum = 1;
 			}
+			this.$api.base("post", "/applet/v1/order/getTicketRecords", this.search_data, {})
+				.then(res => {
+					if (!append || currentPage + 1 === this.search_data.pageNum) {
+						if (append) {
+							this.logs.data = this.logs.data.concat(res.data.records);
+						} else {
+							this.logs.total = res.data.total;
+							this.logs.data = res.data.records;
+						}
+					}
+				})
+				.catch(error => {
+					if (append) {
+						this.search_data.pageNum = currentPage;
+					}
+					console.error('获取充值记录失败:', error);
+				});
+		},
+		topage_order(item) {
+			this.$app.url.goto('/pages/order-detail/order-detail?orderId=' + item.chargeOrderId);
 		}
 	}
+}
 </script>
 
 <style scoped>

+ 1 - 1
pages/site-more/site-more.vue

@@ -187,7 +187,7 @@ export default {
 			if (item.deviceStatus == 0 || item.deviceStatus == 255) {
 				return;
 			}
-			this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.id + "&deviceStatus=" + item.deviceStatus);
+			this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.connectorId + "&deviceStatus=" + item.status);
 		},
 		//扫一扫
 		sacn() {

+ 340 - 339
pages/terminal/terminal.css

@@ -1,373 +1,374 @@
 >>> ax-custom-title {
-	z-index: 9999 !important;
+  z-index: 9999 !important;
 }
-.page-background{
-	display: block;
-	position: fixed;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
+.page-background {
+  /* display: block; */
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  pointer-events: none;
 }
-.body{
-	width: 100%;
-	height: 100%;
-	overflow: auto;
-	padding-bottom: 130px;
-	position: relative;
-	z-index: 1;
+.body {
+  width: 100%;
+  min-height: 100vh;
+  overflow: auto;
+  padding-bottom: 130px;
+  position: relative;
+  z-index: 1;
 }
-.body::-webkit-scrollbar{
-	display: none;
+.body::-webkit-scrollbar {
+  display: none;
 }
-.body.visit{
-	padding-bottom: 0px;
+.body.visit {
+  padding-bottom: 0px;
 }
-.block{
-	padding: 0 10px;
+.block {
+  padding: 0 10px;
 }
-.block + .block{
-	margin-top: 10px;
+.block + .block {
+  margin-top: 10px;
 }
 
 /* 主图 */
-.host-graph{
-	display: block;
-	position: fixed;
-	top: 100rpx;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	z-index: 100;
+.host-graph {
+  display: block;
+  width: 100%;
+  height: 100%;
+  z-index: 100;
+  pointer-events: none;
 }
 
 /* 主参数 */
-.parameter{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	padding: 0 10px;
-	margin: 0 20px;
-	margin-top: 10px;
-	margin-bottom: 20px;
-}
-.parameter .param{
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	flex-direction: column;
-}
-.parameter .param .value{
-	font-size: 20px;
-	font-weight: bold;
-}
-.parameter .param .name{
-	font-size: 14px;
-	color: #aaa;
-	margin-top: 7px;
+.parameter {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 10px;
+  margin: 0 20px;
+  margin-top: 10px;
+  margin-bottom: 20px;
+}
+.parameter .param {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+.parameter .param .value {
+  font-size: 20px;
+  font-weight: bold;
+}
+.parameter .param .name {
+  font-size: 14px;
+  color: #aaa;
+  margin-top: 7px;
+}
+.lable {
+  width: 200rpx;
 }
-
 /* 卡片 */
-.card{
-	background-color: #fff;
-	border-radius: 8px;
-	padding: 10px;
-	box-shadow: 0 0 10px rgba(0,0,0,0.05);
-}
-.card .title{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	font-size: 15px;
-	font-weight: bold;
-	padding-bottom: 10px;
-	padding-left: 10px;
-	border-bottom: 1px solid #ddd;
-}
-.card .title .more{
-	font-size: 14px;
-	color: #aaa;
-	font-weight: normal;
-}
-.card .title .more .icon{
-	margin-left: 5px;
-}
-.card .cell{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	font-size: 14px;
-	height: 32px;
-	padding: 0 10px;
-}
-.cell .contet{
-	color: #aaa;
-}
-.cell .obsolete{
-	font-size: 12px;
-	text-decoration: line-through;
-	color: #aaa;
-	margin-right: 5px;
-}
-.cell .obsolete .money{
-	font-size: inherit;
-	color: inherit;
-	font-weight: normal;
-}
-.cell .money{
-	font-size: 16px;
-	font-weight: bold;
-	color: #f44033;
+.card {
+  background-color: #fff;
+  border-radius: 8px;
+  padding: 10px;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
+}
+.card .title {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 15px;
+  font-weight: bold;
+  padding-bottom: 10px;
+  padding-left: 10px;
+  border-bottom: 1px solid #ddd;
+}
+.card .title .more {
+  font-size: 14px;
+  color: #aaa;
+  font-weight: normal;
+}
+.card .title .more .icon {
+  margin-left: 5px;
+}
+.card .cell {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 14px;
+  height: 32px;
+  padding: 0 10px;
+}
+.cell .contet {
+  color: #aaa;
+}
+.cell .obsolete {
+  font-size: 12px;
+  text-decoration: line-through;
+  color: #aaa;
+  margin-right: 5px;
+}
+.cell .obsolete .money {
+  font-size: inherit;
+  color: inherit;
+  font-weight: normal;
+}
+.cell .money {
+  font-size: 16px;
+  font-weight: bold;
+  color: #f44033;
 }
 
 /* 开关 */
-.switch{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	width: 110px;
-	height: 30px;
-	font-size: 14px;
-	border-radius: 100pc;
-	background-color: #fff;
-	position: relative;
-	color: #333;
-}
-.switch > text{
-	flex: 1;
-	display: flex;
-	justify-content: center;
-	transform: translateY(-1px);
-	transition: all 300ms ease;
-	position: relative;
-	z-index: 2;
+.switch {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  width: 110px;
+  height: 30px;
+  font-size: 14px;
+  border-radius: 100pc;
+  background-color: #fff;
+  position: relative;
+  color: #333;
+}
+.switch > text {
+  flex: 1;
+  display: flex;
+  justify-content: center;
+  transform: translateY(-1px);
+  transition: all 300ms ease;
+  position: relative;
+  z-index: 2;
 }
 .switch.personal > text:first-child,
-.switch > text:last-child{
-	color: #fff;
+.switch > text:last-child {
+  color: #fff;
 }
-.switch.personal > text:last-child{
-	color: inherit;
+.switch.personal > text:last-child {
+  color: inherit;
 }
 
-.switch::after{
-	content: '';
-	display: block;
-	width: calc(50% - 3px);
-	height: calc(100% - 6px);
-	border-radius: 100pc;
-	background-color: #3eb6f8;
-	position: absolute;
-	top: 3px;
-	right: 3px;
-	transition: all 200ms ease;
-}
-.switch.personal::after{
-	transform: translateX(-100%);
+.switch::after {
+  content: "";
+  display: block;
+  width: calc(50% - 3px);
+  height: calc(100% - 6px);
+  border-radius: 100pc;
+  background-color: #3eb6f8;
+  position: absolute;
+  top: 3px;
+  right: 3px;
+  transition: all 200ms ease;
+}
+.switch.personal::after {
+  transform: translateX(-100%);
 }
 
 /* 提示 */
-.tips{
-	font-size: 14px;
-	margin-top: 10px;
-	padding: 0 10px;
+.tips {
+  font-size: 14px;
+  margin-top: 10px;
+  padding: 0 10px;
 }
 
 /* 优惠券 */
-.coupon{
-	--coupon-height: 80px;
-	--coupon-cut-size: 16px;
-	
-	display: flex;
-	align-items: center;
-	width: 100%;
-	height: var(--coupon-height);
-	padding: 5px;
-	border-radius: 8px;
-	background-color: #3eb6f8;
-	margin-top: 10px;
-}
-.coupon .name{
-	padding: 0 10px;
-}
-.coupon .info{
-	flex: 1;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	flex-direction: column;
-}
-.coupon .info .value{
-	font-size: 30px;
-	font-weight: bold;
-}
-.coupon .info .describe{
-	font-size: 12px;
-}
-.coupon .feature{
-	display: block;
-	position: relative;
-	width: var(--coupon-cut-size);
-	height: var(--coupon-height);
-	overflow: hidden;
-}
-.coupon .feature .line{
-	display: block;
-	width: 1px;
-	position: absolute;
-	left: 50%;
-	top: var(--coupon-cut-size);
-	bottom: var(--coupon-cut-size);
-	border-left: 1px dashed #fff;
+.coupon {
+  --coupon-height: 80px;
+  --coupon-cut-size: 16px;
+
+  display: flex;
+  align-items: center;
+  width: 100%;
+  height: var(--coupon-height);
+  padding: 5px;
+  border-radius: 8px;
+  background-color: #3eb6f8;
+  margin-top: 10px;
+}
+.coupon .name {
+  padding: 0 10px;
+}
+.coupon .info {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+.coupon .info .value {
+  font-size: 30px;
+  font-weight: bold;
+}
+.coupon .info .describe {
+  font-size: 12px;
+}
+.coupon .feature {
+  display: block;
+  position: relative;
+  width: var(--coupon-cut-size);
+  height: var(--coupon-height);
+  overflow: hidden;
+}
+.coupon .feature .line {
+  display: block;
+  width: 1px;
+  position: absolute;
+  left: 50%;
+  top: var(--coupon-cut-size);
+  bottom: var(--coupon-cut-size);
+  border-left: 1px dashed #fff;
 }
 .coupon .feature::after,
-.coupon .feature::before{
-	content: '';
-	display: block;
-	width: var(--coupon-cut-size);
-	height: var(--coupon-cut-size);
-	border-radius: 100pc;
-	background-color: #fff;
-	position: absolute;
-}
-.coupon .feature::before{
-	top: 0;
-	transform: translateY(-50%);
-}
-.coupon .feature::after{
-	bottom: 0;
-	transform: translateY(50%);
-}
-.coupon.personal{
-	background-color: #ff7043;
-	color: #fff;
+.coupon .feature::before {
+  content: "";
+  display: block;
+  width: var(--coupon-cut-size);
+  height: var(--coupon-cut-size);
+  border-radius: 100pc;
+  background-color: #fff;
+  position: absolute;
+}
+.coupon .feature::before {
+  top: 0;
+  transform: translateY(-50%);
+}
+.coupon .feature::after {
+  bottom: 0;
+  transform: translateY(50%);
+}
+.coupon.personal {
+  background-color: #ff7043;
+  color: #fff;
 }
 
 /* 主信息 */
-.footer{
-	display: flex;
-	flex-direction: column;
-	background-color: #fff;
-	border-radius: 16px 16px 0 0;
-	height: 120px;
-	padding: 10px;
-	position: fixed;
-	left: 0;
-	right: 0;
-	bottom: 0;
-	box-shadow: 0 0 10px rgba(0,0,0,0.1);
-	z-index: 99999;
-}
-.footer .tips{
-	flex: 1;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	font-size: 12px;
-	color: #aaa;
-	margin-bottom: 10px;
-}
-.footer .startup{
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	font-size: 14px;
-	border-radius: 8px;
-	height: 50px;
-	background: linear-gradient(to right,#8FF8FB,#47AEFF);
-}
-.coupon-image-card{
-	display: flex;
-	align-items: center;
-	margin-top: 28rpx;
-	width: 664rpx;
-	height: 160rpx;
-	/* background-image: url('@/static/img/coupon-gr.png'); */
-	background-repeat: no-repeat;
-	background-size: cover;
-	background-position: center;
-}
-.coupon-title{
-	width:220rpx;
-	text-align: center;
-	font-weight: bold;
-	font-size: 32rpx;
-	color: #FFFFFF;
-}
-.price-info{
-	width: 270rpx;
-	text-align: center;
-	color: #222222;
-}
-.price-numer{
-	font-weight: 800;
-	font-size: 48rpx;
-}
-.price-text{
-	font-size: 22rpx;
-}
-.shop-coupon-btn{
-	margin-left: 14rpx;
-	width: 136rpx;
-	height: 44rpx;
-	border-radius: 22rpx;
-	font-size: 24rpx;
-	color: #FFFFFF;
-	text-align: center;
-	line-height: 44rpx;
-}
-.Modal-tips{
-	width: 514rpx;
-	height: 528rpx;
-	background: #FFFFFF;
-	border-radius: 16rpx;
-	text-align: center;
-	padding-top: 40rpx;
-}
-.tips-icon{
-	margin: auto;
-	width: 116rpx;
-	height: 116rpx;
-	line-height: 116rpx;
-	font-size: 70rpx;
-	font-weight: bold;
-	color: #fff;
-	border-radius: 50%;
-	background-color: #FF4D3A ;
-}
-.icon-title{
-	margin-top: 24rpx;
-	font-weight: bold;
-	font-size: 40rpx;
-	color: #2B303A;
-}
-.tips-text{
-	margin-top: 28rpx;
-	font-size: 28rpx;
-	color: #2B303A;
-}
-.tips-btn{
-	margin-top:60rpx;
-	display: flex;
-	align-items: center;
-	gap: 20rpx;
-	justify-content: center;
-}
-.cancel-btn{
-	width: 224rpx;
-	height: 80rpx;
-	background: #F0F0F0;
-	border-radius: 40rpx;
-	line-height: 80rpx;
-	font-size: 28rpx;
-	color: #AAAAAA;
-}
-.confirm-btn{
-	width: 224rpx;
-	height: 80rpx;
-	background: #3EB6F8;
-	border-radius: 40rpx;
-	line-height: 80rpx;
-	font-size: 28rpx;
-	color: #FFFFFF;
-}
+.footer {
+  display: flex;
+  flex-direction: column;
+  background-color: #fff;
+  border-radius: 16px 16px 0 0;
+  height: 120px;
+  padding: 10px;
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+  z-index: 99999;
+}
+.footer .tips {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 12px;
+  color: #aaa;
+  margin-bottom: 10px;
+}
+.footer .startup {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 14px;
+  border-radius: 8px;
+  height: 50px;
+  background: linear-gradient(to right, #8ff8fb, #47aeff);
+}
+.coupon-image-card {
+  display: flex;
+  align-items: center;
+  margin-top: 28rpx;
+  width: 664rpx;
+  height: 160rpx;
+  /* background-image: url('@/static/img/coupon-gr.png'); */
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-position: center;
+}
+.coupon-title {
+  width: 220rpx;
+  text-align: center;
+  font-weight: bold;
+  font-size: 32rpx;
+  color: #ffffff;
+}
+.price-info {
+  width: 270rpx;
+  text-align: center;
+  color: #222222;
+}
+.price-numer {
+  font-weight: 800;
+  font-size: 48rpx;
+}
+.price-text {
+  font-size: 22rpx;
+}
+.shop-coupon-btn {
+  margin-left: 14rpx;
+  width: 136rpx;
+  height: 44rpx;
+  border-radius: 22rpx;
+  font-size: 24rpx;
+  color: #ffffff;
+  text-align: center;
+  line-height: 44rpx;
+}
+.Modal-tips {
+  width: 514rpx;
+  height: 528rpx;
+  background: #ffffff;
+  border-radius: 16rpx;
+  text-align: center;
+  padding-top: 40rpx;
+}
+.tips-icon {
+  margin: auto;
+  width: 116rpx;
+  height: 116rpx;
+  line-height: 116rpx;
+  font-size: 70rpx;
+  font-weight: bold;
+  color: #fff;
+  border-radius: 50%;
+  background-color: #ff4d3a;
+}
+.icon-title {
+  margin-top: 24rpx;
+  font-weight: bold;
+  font-size: 40rpx;
+  color: #2b303a;
+}
+.tips-text {
+  margin-top: 28rpx;
+  font-size: 28rpx;
+  color: #2b303a;
+}
+.tips-btn {
+  margin-top: 60rpx;
+  display: flex;
+  align-items: center;
+  gap: 20rpx;
+  justify-content: center;
+}
+.cancel-btn {
+  width: 224rpx;
+  height: 80rpx;
+  background: #f0f0f0;
+  border-radius: 40rpx;
+  line-height: 80rpx;
+  font-size: 28rpx;
+  color: #aaaaaa;
+}
+.confirm-btn {
+  width: 224rpx;
+  height: 80rpx;
+  background: #3eb6f8;
+  border-radius: 40rpx;
+  line-height: 80rpx;
+  font-size: 28rpx;
+  color: #ffffff;
+}

+ 265 - 358
pages/terminal/terminal.vue

@@ -1,24 +1,23 @@
 <template>
-	<ax-body blank="0" hideIndicatorArea>
+	<ax-body blank="0">
 		<image src="@/static/img/page-bg01.png" class="page-background"></image>
-		<view class="body" :class="{visit}">
+		<view class="body" :class="{ visit }">
 			<!-- 主图 -->
 			<view class="app-flex c-center host-graph">
 				<image src="@/static/img/charging-01.png" mode="widthFix" class="image"></image>
 			</view>
-			<view style="height: 400rpx;"></view>
 			<!-- 主参数 -->
 			<view class="parameter">
 				<view class="param">
-					<view class="value">{{deviceInfo.current}}</view>
+					<view class="value">{{ deviceInfo.current }}</view>
 					<view class="name">电流A</view>
 				</view>
 				<view class="param">
-					<view class="value">{{getVolt()}}</view>
+					<view class="value">{{ deviceInfo.currentVoltage || '0' }}</view>
 					<view class="name">电压V</view>
 				</view>
 				<view class="param">
-					<view class="value">{{deviceInfo.power}}</view>
+					<view class="value">{{ deviceInfo.power }}</view>
 					<view class="name">功率KW</view>
 				</view>
 			</view>
@@ -27,19 +26,20 @@
 					<view class="title">
 						<text>我的抵扣券</text>
 						<view class="more" v-if="isEc">
-							<view class="switch" :class="{'personal':personal==1}"><text
+							<view class="switch" :class="{ 'personal': personal == 1 }"><text
 									@click="changeAccount(1)">个人</text><text @click="changeAccount(2)">集团</text></view>
 						</view>
 					</view>
 					<view class="coupon-image-card"
-						:style="{backgroundImage:`url(${personal==1?selectedImg:defaultImg})`}">
+						:style="{ backgroundImage: `url(${personal == 1 ? selectedImg : defaultImg})` }">
 						<view class="coupon-title">充电抵扣券</view>
 						<view class="price-info">
-							<view class="price-numer">{{accountInfo.balance}}</view>
+							<view class="price-numer">{{ accountInfo.balance }}</view>
 							<view class="price-text">剩余可抵扣充电余量</view>
 						</view>
-						<view class="shop-coupon-btn" :style="{backgroundColor: personal==1?'#FF6457':'#3EB6F8'}"
-							@click="gotoCouponBuy">立即购券</view>
+						<view class="shop-coupon-btn"
+							:style="{ backgroundColor: personal == 1 ? '#FF6457' : '#3EB6F8' }" @click="gotoCouponBuy">
+							立即购券</view>
 					</view>
 					<!-- 					<view class="coupon" :class="{'personal':personal==1}">
 						<view class="name">{{personal == 1?'充电抵扣券':'集团抵扣券'}}</view>
@@ -55,49 +55,46 @@
 				<view class="card">
 					<view class="title">
 						<text>费用信息</text>
-						<view @click="$app.url.goto('/pages/site-more/site-more?show=1&stationId='+stationInfo.id)"
+						<view @click="$app.url.goto('/pages/site-more/site-more?show=1&stationId=' + stationInfo.id)"
 							class="more"><text>价格详情</text>
 							<icon class="ax-iconline i-arrow-right icon"></icon>
 						</view>
 					</view>
 					<view class="cell">
-						<view class="lable">{{personal == 1?'当前电价':'集团折扣价'}}</view>
+						<view class="lable">{{ personal == 1 ? '当前电价' : '集团折扣价' }}</view>
 						<view class="contet app-flex middle">
-							<view v-if="personal == 1"><text
-									class="money">{{nowPriceTime.price?parseFloat(nowPriceTime.price).toFixed(4):"0.0000"}}</text><text>
+							<view v-if="personal == 1"><text class="money">{{ deviceInfo.currentPrice }}</text><text>
 									元/度</text></view>
 							<view v-else>
 								<text class="obsolete">
-									{{nowPriceTime.price?parseFloat(nowPriceTime.price).toFixed(4):"0.0000"}} 元/度
+									{{ deviceInfo.enterprisePrice }} 元/度
 								</text>
-								<text class="money">{{getCurrEcPrice()}}</text><text> 元/度</text>
+								<text class="money">{{ getCurrEcPrice() }}</text><text> 元/度</text>
 							</view>
 						</view>
 					</view>
-					<view class="cell" v-if="discountInfo&&personal == 1">
+					<view class="cell" v-if="discountInfo && personal == 1">
 						<view class="lable">优惠</view>
 						<view class="contet app-flex middle">
-							<view>{{discountInfo.temp3}}<text
-									class="money">{{discountInfo.discount?parseFloat(discountInfo.discount).toFixed(4):"0.0000"}}</text><text>
+							<view>{{ discountInfo.temp3 }}<text class="money">{{ discountInfo.discount ?
+								parseFloat(discountInfo.discount).toFixed(4) : "0.0000" }}</text><text>
 									元/度</text></view>
 						</view>
 					</view>
-					<view class="cell" v-if="nowPriceTime.firmPrice||$app.storage.get('USER_INFO').firmType===1">
+					<view class="cell" v-if="deviceInfo.isFirmUser">
 						<view class="lable">企业专享价</view>
 						<view class="contet app-flex middle">
-							<view><text
-									class="money">{{nowPriceTime.firmPrice?parseFloat(nowPriceTime.firmPrice).toFixed(4):"0.0000"}}</text><text>
+							<view><text class="money">{{ deviceInfo.enterprisePrice }}</text><text>
 									元/度</text></view>
 						</view>
 					</view>
 					<view class="cell">
 						<view class="lable">当前时段</view>
-						<view class="contet">{{getPriceLable(nowPriceTime.timeType)}} {{nowPriceTime.time}}</view>
+						<view class="contet">{{ deviceInfo.currentPeriodDesc }}</view>
 					</view>
-					<!-- <view class="cell" style="height: auto;"><view class="lable">停车参考</view><view class="contet" style="flex: 1;padding-left: 5px;" v-html="stationInfo.parkTips"></view></view> -->
 					<view class="cell">
 						<view class="lable">停车参考</view>
-						<view class="contet">充电减免2小时停车费,超出时长部分计时收费</view>
+						<view class="contet">{{ deviceInfo.parkingTips }}</view>
 					</view>
 				</view>
 			</view>
@@ -106,26 +103,27 @@
 					<view class="title">终端信息</view>
 					<view class="cell">
 						<view class="lable">终端状态</view>
-						<view class="contet">{{getDeviceStatusLable(deviceInfo.deviceStatus)}}</view>
+						<view class="contet">{{ deviceInfo.statusName }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">终端编号</view>
-						<view class="contet">{{deviceInfo.deviceNo}}</view>
+						<view class="contet">{{ deviceInfo.connectorCode }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">充电电站</view>
-						<view class="contet">{{deviceInfo.thirdPartyStationName}}</view>
+						<view class="contet">{{ deviceInfo.stationName }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">充电终端</view>
-						<view class="contet">{{deviceInfo.deviceName}}</view>
+						<view class="contet">{{ deviceInfo.connectorName }}</view>
 					</view>
 					<view class="cell">
 						<view class="lable">车位编号</view>
-						<view class="contet">{{deviceInfo.parkNo ? deviceInfo.parkNo : "无"}}</view>
+						<view class="contet">{{ deviceInfo.parkNo ? deviceInfo.parkNo : "无" }}</view>
 					</view>
 				</view>
 			</view>
+
 			<!-- 信息 -->
 			<view class="footer">
 				<view class="tips">账单信息可能会有所延迟,具体以实际结算为准</view>
@@ -139,7 +137,8 @@
 			<view class="Modal-tips">
 				<view class="tips-icon">!</view>
 				<view class="icon-title">温馨提示</view>
-				<view class="tips-text" v-if="payment_msg!=null">您有一笔超充订单{{(payment_msg.maspAmount+payment_msg.maspRealAmount).toFixed(2)}}元待补缴</view>
+				<view class="tips-text" v-if="payment_msg != null">
+					您有一笔超充订单{{ (payment_msg.maspAmount + payment_msg.maspRealAmount).toFixed(2) }}元待补缴</view>
 				<view class="tips-btn">
 					<view class="cancel-btn" @click="$refs.filter.close()">取消</view>
 					<view class="confirm-btn" @click="$app.url.goto('/pages/coupon-buy/coupon-buy')">购券并补缴</view>
@@ -150,358 +149,266 @@
 </template>
 
 <script>
-	export default {
-		onLoad(opts) {
-			console.log("参数信息:", opts)
-			/**
-			 * 判断终端是否占用状态
-			 * 判断占用终端设备的是不是用户自己
-			 */
-			this.deviceId = opts.deviceId
-			this.deviceStatus = opts.deviceStatus
+export default {
+	onLoad(opts) {
+		console.log("参数信息:", opts)
+		/**
+		 * 判断终端是否占用状态
+		 * 判断占用终端设备的是不是用户自己
+		 */
+		this.deviceId = opts.deviceId
+		this.deviceStatus = opts.deviceStatus
 
-		},
-		onShow() {
-			this.queryInChange(this.deviceId, this.deviceStatus);
-			/**
-			 * 刷新用户信息
-			 */
-			this.userInfo = this.$app.storage.get(this.$config.keyname.userInfo);
-			if (!this.userInfo.phone) {
-				this.$app.url.goto('/pages/login/login')
-				return;
+	},
+	onShow() {
+		this.queryInChange(this.deviceId, this.deviceStatus);
+		/**
+		 * 刷新用户信息
+		 */
+		this.userInfo = this.$app.storage.get(this.$config.keyname.userInfo);
+		if (!this.userInfo.phone) {
+			this.$app.url.goto('/pages/login/login')
+			return;
+		}
+		// this.$api.login({
+		// 	"checkStatus": 1
+		// }).then(() => {
+		// 	this.userInfo = this.$app.storage.get(this.$config.keyname.userInfo);
+		// 	if (this.userInfo.ecId) {
+		// 		//查询该集团账户是否正常使用。
+		// 		this.$api.base("post", "/chargeApi/queryEcInfo", {
+		// 			"ecId": this.userInfo.ecId
+		// 		}, {}).then(res => {
+		// 			if (res.ecInfo && res.ecInfo.ecStatus == 1) {
+		// 				this.isEc = true;
+		// 			}
+		// 		})
+		// 	}
+		// })
+	},
+	mounted() {
+		this.get_paymentMsg()
+		setTimeout(() => {
+			if (this.payment_msg != null) {
+				this.$refs.filter.open()
 			}
-			this.$api.login({
-				"checkStatus": 1
-			}).then(() => {
-				this.userInfo = this.$app.storage.get(this.$config.keyname.userInfo);
-				if (this.userInfo.ecId) {
-					//查询该集团账户是否正常使用。
-					this.$api.base("post", "/chargeApi/queryEcInfo", {
-						"ecId": this.userInfo.ecId
-					}, {}).then(res => {
-						if (res.ecInfo && res.ecInfo.ecStatus == 1) {
-							this.isEc = true;
-						}
-					})
-				}
-			})
-		},
-		mounted() {
-			this.get_paymentMsg()
-			setTimeout(()=>{
-				if(this.payment_msg!=null){
-					this.$refs.filter.open()
-				}
-			},500)
+		}, 500)
 
 
-		},
-		data() {
-			return {
-				payment_msg:null,
-				deviceId: 0,
-				deviceStatus: 0,
-				visit: '',
-				personal: 1, // 1 个人订单 2 集团订单
-				isEc: false, //是否集团的用户
-				nowPriceTime: {}, //当前价格时间段信息
-				deviceInfo: {}, //充电桩的信息
-				accountInfo: { //账户信息
-					balance: 0, //可用抵用券余额
-				},
-				userInfo: {},
-				stationInfo: {}, //站点信息
-				orderInfo: {}, //临时订单信息
-				checkNum: 0, //检测订单状态次数
-				ecInfo: {}, //集团信息
-				discountInfo: null, //优惠信息
-				selectedImg: 'https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/AwQTRxpEMqOG50293e26d86888b3e0f7324c429d2019.png/1.png',
-				defaultImg: 'https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/SPh1u3KAqte830a107b2e3c5033b1d1027516d84d780.png/1.png'
+	},
+	data() {
+		return {
+			payment_msg: null,
+			deviceId: 0,
+			deviceStatus: 0,
+			visit: '',
+			personal: 1, // 1 个人订单 2 集团订单
+			isEc: false, //是否集团的用户
+			nowPriceTime: {}, //当前价格时间段信息
+			deviceInfo: {}, //充电桩的信息
+			accountInfo: { //账户信息
+				balance: 0, //可用抵用券余额
+			},
+			userInfo: {},
+			stationInfo: {}, //站点信息
+			orderInfo: {}, //临时订单信息
+			checkNum: 0, //检测订单状态次数
+			ecInfo: {}, //集团信息
+			discountInfo: null, //优惠信息
+			selectedImg: 'https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/AwQTRxpEMqOG50293e26d86888b3e0f7324c429d2019.png/1.png',
+			defaultImg: 'https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/SPh1u3KAqte830a107b2e3c5033b1d1027516d84d780.png/1.png'
+		}
+	},
+	methods: {
+		//通过用户id查询是否还有在充电中的订单
+		queryInChange(deviceId, deviceStatus) {
+			if (deviceStatus == 3 || deviceStatus == 4) {
+				//占用充电状态;终端占用且不是自己,进入访问模式
+				this.visit = true;
 			}
+			this.getDeviceInfo(deviceId); //获取设备、站的详情信息
+			this.getAccountInfo(); //获取账户信息
 		},
-		methods: {
-			//通过用户id查询是否还有在充电中的订单
-			queryInChange(deviceId, deviceStatus) {
-				if (deviceStatus == 3 || deviceStatus == 4) {
-					//占用充电状态;终端占用且不是自己,进入访问模式
-					this.visit = true;
+		//获取设备的详情信息
+		getDeviceInfo(deviceId) {
+			this.$api.base("get", "/applet/v1/station/connector/detail", {
+				"connectorId": deviceId
+			}, {}).then(res => {
+				this.deviceInfo = res.data;
+				this.nowPriceTime = res.nowPriceTime;
+				this.stationInfo = res.stationInfo;
+				if (res.discountInfo) {
+					this.discountInfo = res.discountInfo
 				}
-				this.getDeviceInfo(deviceId); //获取设备、站的详情信息
-				this.getAccountInfo(); //获取账户信息
-				/* this.$api.base("post","/chargeApi/queryInChangeByUserId",{},{}).then(res=>{
-					if(res.isChange == 1){
-						this.orderInfo = res.orderInfo;
-						//用户有充电中的订单
-						//if(res.orderInfo.deviceId == deviceId){
-							// 跳转
-							this.$app.url.goto('/pages/charging/charging?orderId='+this.orderInfo.id+"&deviceId="+deviceId,false);
-						//}
-					}else{
-						
-					}
-					
-					
-				}) */
-			},
-			//获取设备的详情信息
-			getDeviceInfo(deviceId) {
-				this.$api.base("post", "/chargeApi/getDevicesDetial", {
-					"deviceId": deviceId
-				}, {}).then(res => {
-					this.deviceInfo = res.device;
-					this.nowPriceTime = res.nowPriceTime;
-					this.stationInfo = res.stationInfo;
-					if (res.discountInfo) {
-						this.discountInfo = res.discountInfo
-					}
-					if (this.deviceInfo.tipsStatus == 1) {
-						this.$app.popup.alert(this.deviceInfo.tipsContent, "温馨提示");
-					}
-				})
-			},
-			get_paymentMsg(){
-				// maspStatus(1:待补缴,2:已补缴)realPredictServiceCost平台;maspAmount第三方
-				this.$api.base("post","/chargeApi/queryOrderList-arrearage",{},{}).then(res=>{
-					this.payment_msg=res.data
-				})
-			},
-			//获取账户信息
-			getAccountInfo() {
-				if (this.personal == 1) {
-					//获取个人账户信息
-					this.$api.base("post", "/chargeApi/getUserAccount", {}, {}).then(res => {
-						this.accountInfo.balance = res.userAccount.balance;
-					})
-				} else {
-					//获取集团账户信息
-					this.$api.base("post", "/chargeApi/getEcUserAccount", {}, {
-						error: false
-					}).then(res => {
-						this.ecInfo = res.ecInfo;
-						this.accountInfo.balance = res.ecUserAccount.balance;
-					}).catch(err => {
-						this.accountInfo.balance = 0;
-						this.$app.popup.alert(err.msg, "温馨提示");
-					})
+				if (this.deviceInfo.tipsStatus == 1) {
+					this.$app.popup.alert(this.deviceInfo.tipsContent, "温馨提示");
 				}
-			},
-			//切换账户
-			changeAccount(type) {
-				if (this.personal == type) {
-					return;
-				}
-				this.personal = type;
-				this.getAccountInfo();
-			},
-			//当前集团折扣价
-			getCurrEcPrice() {
+			})
+		},
+		// get_paymentMsg() {
+		// 	// maspStatus(1:待补缴,2:已补缴)realPredictServiceCost平台;maspAmount第三方
+		// 	this.$api.base("post", "/chargeApi/queryOrderList-arrearage", {}, {}).then(res => {
+		// 		this.payment_msg = res.data
+		// 	})
+		// },
+		//获取账户信息
+		// getAccountInfo() {
+		// 	if (this.personal == 1) {
+		// 		//获取个人账户信息
+		// 		this.$api.base("post", "/chargeApi/getUserAccount", {}, {}).then(res => {
+		// 			this.accountInfo.balance = res.userAccount.balance;
+		// 		})
+		// 	} else {
+		// 		//获取集团账户信息
+		// 		this.$api.base("post", "/chargeApi/getEcUserAccount", {}, {
+		// 			error: false
+		// 		}).then(res => {
+		// 			this.ecInfo = res.ecInfo;
+		// 			this.accountInfo.balance = res.ecUserAccount.balance;
+		// 		}).catch(err => {
+		// 			this.accountInfo.balance = 0;
+		// 			this.$app.popup.alert(err.msg, "温馨提示");
+		// 		})
+		// 	}
+		// },
+		//切换账户
+		changeAccount(type) {
+			if (this.personal == type) {
+				return;
+			}
+			this.personal = type;
+			this.getAccountInfo();
+		},
+		//当前集团折扣价
+		getCurrEcPrice() {
 
-				if (!this.nowPriceTime) {
-					return 0;
+			if (!this.nowPriceTime) {
+				return 0;
+			}
+			var currEcP = this.nowPriceTime.price;
+			if (this.ecInfo && this.ecInfo.ecDiscount) {
+
+				var realServicePrice = this.nowPriceTime.servicePrice
+				if (this.stationInfo.contractServicePrice) {
+					realServicePrice = this.stationInfo.contractServicePrice
 				}
-				var currEcP = this.nowPriceTime.price;
-				if (this.ecInfo && this.ecInfo.ecDiscount) {
 
-					var realServicePrice = this.nowPriceTime.servicePrice
-					if (this.stationInfo.contractServicePrice) {
-						realServicePrice = this.stationInfo.contractServicePrice
-					}
+				currEcP = (this.nowPriceTime.electrovalence + realServicePrice + this.nowPriceTime.addServicePrice *
+					this.ecInfo.ecDiscount / 100);
+			}
+			console.log("dddd", currEcP)
+			if (currEcP) {
+				currEcP = currEcP.toFixed(2);
+			}
+			return Number(currEcP).toFixed(4);
+		},
+		//转换出电压值
+		getVolt() {
+			if (!this.deviceInfo.power) {
+				return 0;
+			}
+			var v = this.deviceInfo.power / this.deviceInfo.current * 1000;
+			return v;
+		},
+		startup() {
 
-					currEcP = (this.nowPriceTime.electrovalence + realServicePrice + this.nowPriceTime.addServicePrice *
-						this.ecInfo.ecDiscount / 100);
-				}
-				console.log("dddd", currEcP)
-				if (currEcP) {
-					currEcP = currEcP.toFixed(2);
-				}
-				return Number(currEcP).toFixed(4);
-			},
-			//转换出电压值
-			getVolt() {
-				if (!this.deviceInfo.power) {
-					return 0;
-				}
-				var v = this.deviceInfo.power / this.deviceInfo.current * 1000;
-				return v;
-			},
-			//映射 峰  平  谷
-			getPriceLable(type) {
-				//时间类型 1 谷 2 平 3 峰
-				var str = "";
-				switch (type) {
-					case 1:
-						str = "谷";
-						break;
-					case 2:
-						str = "平";
-						break;
-					case 3:
-						str = "峰";
-						break;
-				}
-				return str;
-			},
-			//映射订单状态名称()
-			getDeviceStatusLable(status) {
-				//设备状态 0:离网1:空闲2:占用(未充电)3:占用(充电中)4:占用(预约锁定)255:故障
-				var str = "";
-				switch (status) {
-					case 0:
-						str = "离网";
-						break;
-					case 1:
-						str = "空闲";
-						break;
-					case 2:
-						str = "占用";
-						break;
-					case 3:
-						str = "占用";
-						break;
-					case 4:
-						str = "占用";
-						break;
-					case 255:
-						str = "故障";
-						break;
-				}
-				return str;
-			},
-			startup() {
+			if (this.visit) {
+				this.$app.popup.alert("该充电枪被占用或存在异常,请重新尝试或更换其他充电枪。", "温馨提示");
+				return;
+			}
 
-				if (this.visit) {
-					this.$app.popup.alert("该充电枪被占用或存在异常,请重新尝试或更换其他充电枪。", "温馨提示");
-					return;
+			//判断账户余额是否大于两元
+			if (this.deviceInfo.availableBalance <= 3) {
+				return this.$app.popup.confirm("无法启动充电,抵扣余量需大于3元,请先购买充电券!", "温馨提示!", {
+					confirmText: "立即购券"
+				}).then(confirm => {
+					if (confirm) {
+						this.$app.url.goto('/pages/coupon-buy/coupon-buy', true);
+					}
+				});
+			}
+			//统一下单并启动接口
+			this.get_subMessage();
+		},
+		get_subMessage() {
+			let _this = this
+			uni.requestSubscribeMessage({
+				tmplIds: ['03bv7QSrzH4DSjmNsI9P0lq0Vj3sBwpN5mgfZln7Rc4'],
+				success(res) {
+					_this.startChangeAndOrder();
 				}
-
-				//判断账户余额是否大于两元
-				if ((this.accountInfo.balance - 3) <= 0) {
-					return this.$app.popup.confirm("无法启动充电,抵扣余量需大于3元,请先购买充电券!", "温馨提示!", {
-						confirmText: "立即购券"
-					}).then(confirm => {
-						if (confirm) {
-							this.$app.url.goto('/pages/coupon-buy/coupon-buy', true);
-						}
+			})
+		},
+		// 主动发起购券操作
+		gotoCouponBuy() {
+			this.$app.url.goto('/pages/coupon-buy/coupon-buy', true);
+		},
+		//统一下单并启动接口
+		startChangeAndOrder() {
+			var obj = {
+				orderType: this.deviceInfo.isEcUser ? 1 : 0, //订单类型 0-平台 1-企业
+				equipmentId: this.deviceInfo.equipmentId,
+				stationId: this.deviceInfo.stationId,
+				couponID: null,
+				EquipAuthSeq: '',
+				ConnectorID: ''
+			}
+			this.$api.base("post", "/applet/v1/charge/invokeCharge", obj, {}).then(res => {
+				//下单成功,并进行了订单预充值
+				this.orderInfo = res.orderInfo;
+				if (res.flg && res.flg == 1) {
+					//用户有充电中的订单
+					this.$app.popup.confirm("您有一个进行中充电订单,不可再次启动。", null, {
+						showCancel: false,
+						confirmText: "查看订单"
+					}).then(cres => {
+						this.$app.url.goto('/pages/charging/charging?orderId=' + this.orderInfo.id +
+							"&deviceId=" + this.deviceInfo.id, false);
 					});
+				} else {
+					//正常启动充电订单
+					this.$app.url.goto('/pages/charging/charging?orderId=' + this.orderInfo.id + "&deviceId=" +
+						this.deviceInfo.id, false);
 				}
-				//统一下单并启动接口
-				this.get_subMessage();
-			},
-			get_subMessage(){
-				let _this=this
-				uni.requestSubscribeMessage({
-				  tmplIds: ['03bv7QSrzH4DSjmNsI9P0lq0Vj3sBwpN5mgfZln7Rc4'],
-				  success (res) {
-					 _this.startChangeAndOrder();
-				  }
-				})
-			},
-			// 主动发起购券操作
-			gotoCouponBuy() {
-				this.$app.url.goto('/pages/coupon-buy/coupon-buy', true);
-			},
-			//统一下单并启动接口
-			startChangeAndOrder() {
-				var obj = {
-					userId: this.userInfo.id,
-					deviceId: this.deviceInfo.id,
-					orderType: this.personal == 2 ? 2 : 1, //订单类型 1 个人订单 2 集团订单
-				}
-				this.$api.base("post", "/chargeApi/startChangeAndOrder", obj, {}).then(res => {
-					//下单成功,并进行了订单预充值
-					this.orderInfo = res.orderInfo;
-					if (res.flg && res.flg == 1) {
-						//用户有充电中的订单
-						this.$app.popup.confirm("您有一个进行中充电订单,不可再次启动。", null, {
-							showCancel: false,
-							confirmText: "查看订单"
-						}).then(cres => {
+			})
+		},
+		// 延迟5s查询一下订单,看看是否真的启动成功
+		checkedStartStatus() {
+			this.$api.base("post", "/chargeApi/checkedStartStatus", {
+				"id": this.orderInfo.id
+			}, {}).then(res => {
+
+				if (res.code == 0) {
+					var respObj = res.obj;
+					if (respObj.code == 200) {
+						if (respObj.status == 1) {
+							uni.hideLoading();
+							//状态为1说明正常启动
 							this.$app.url.goto('/pages/charging/charging?orderId=' + this.orderInfo.id +
 								"&deviceId=" + this.deviceInfo.id, false);
-						});
-					} else {
-						//正常启动充电订单
-						this.$app.url.goto('/pages/charging/charging?orderId=' + this.orderInfo.id + "&deviceId=" +
-							this.deviceInfo.id, false);
-					}
-					//this.$app.popup.loading(true,{title:"启动中...."})
-					//延迟5s查询一下订单,看看是否真的启动成功
-					//setTimeout(()=>this.checkedStartStatus(),5000);
-				})
-			},
-			/* // 通过充电桩编号(sn)检测该设备是否插枪,是否可以进行后续的下单,启动操作
-			checkDeviceReady(){
-				this.$api.base("post","/chargeApi/checkDeviceReady",{"sn":this.deviceInfo.deviceNo},{}).then(res=>{
-					if(res.code == 0){
-						//充电桩已经插枪准备好了,可以进行下单充值操作
-						this.chargeAndOrder();
-					}
-				})
-			},
-			// 进行下单,并进行接口充值,准备启动充电
-			chargeAndOrder(){
-				var obj = {
-					userId : this.userInfo.id,
-					deviceId : this.deviceInfo.id,
-					orderType : this.personal == 2 ? 2 : 1,//订单类型 1 个人订单 2 集团订单
-				}
-				this.$api.base("post","/chargeApi/chargeAndOrder",obj,{}).then(res=>{
-					if(res.code == 0){
-						//下单成功,并进行了订单预充值
-						this.orderInfo = res.orderInfo;
-						//通知已经充值成功,可以进行设备充电的启动
-						this.changePayAndStart();
-					}
-				})
-			},
-			// 支付成功启动充电通知
-			changePayAndStart(){
-				this.$api.base("post","/chargeApi/changePayAndStart",{"id":this.orderInfo.id},{}).then(res=>{
-					if(res.code == 0){
-						this.$app.popup.loading(ture,{title:"启动中...."})
-						//延迟5s查询一下订单,看看是否真的启动成功
-						setTimeout(()=>this.checkedStartStatus(),5000);
-					}
-				})
-			}, */
-			// 延迟5s查询一下订单,看看是否真的启动成功
-			checkedStartStatus() {
-				this.$api.base("post", "/chargeApi/checkedStartStatus", {
-					"id": this.orderInfo.id
-				}, {}).then(res => {
-
-					if (res.code == 0) {
-						var respObj = res.obj;
-						if (respObj.code == 200) {
-							if (respObj.status == 1) {
-								uni.hideLoading();
-								//状态为1说明正常启动
-								this.$app.url.goto('/pages/charging/charging?orderId=' + this.orderInfo.id +
-									"&deviceId=" + this.deviceInfo.id, false);
-							} else {
-								//其他状态,说明充电桩,未启动。或其他问题,需要再次进行进行验证
-								if (this.checkNum < 20) {
-									this.checkNum = this.checkNum + 1;
-									//延迟2s查询一下订单,看看是否真的启动成功
-									setTimeout(() => this.checkedStartStatus(), 2000);
-								}
-							}
-
 						} else {
-							uni.hideLoading();
-							this.$app.popup.alert(respObj.msg, "温馨提示");
+							//其他状态,说明充电桩,未启动。或其他问题,需要再次进行进行验证
+							if (this.checkNum < 20) {
+								this.checkNum = this.checkNum + 1;
+								//延迟2s查询一下订单,看看是否真的启动成功
+								setTimeout(() => this.checkedStartStatus(), 2000);
+							}
 						}
 
 					} else {
 						uni.hideLoading();
+						this.$app.popup.alert(respObj.msg, "温馨提示");
 					}
-				})
-			},
-		}
+
+				} else {
+					uni.hideLoading();
+				}
+			})
+		},
 	}
+}
 </script>
 
 <style scoped>
-	@import url("terminal.css");
+@import url("terminal.css");
 </style>

+ 18 - 4
static/js/api.js

@@ -109,7 +109,7 @@ api.base = function (method, url, data, opts) {
                 }
               } else {
                 // 刷新失败,执行登录
-                await api.login();
+                // await api.login();
                 options.header.token = getAccessToken();
                 try {
                   const db = await Request(options);
@@ -133,11 +133,9 @@ api.base = function (method, url, data, opts) {
         }
       })
       .catch(async (err) => {
-        console.log("请求失败", err.data.code);
         if (err.data.code == "A0230") {
           try {
             // 尝试刷新token
-            console.log("进入刷新请求");
             const refreshResult = await refreshToken();
             if (refreshResult) {
               // 刷新成功,更新header中的token并重新请求
@@ -148,14 +146,30 @@ api.base = function (method, url, data, opts) {
               } catch (err) {
                 reject(err);
               }
+            } else {
+              // 刷新失败,执行登录
+              $app.popup
+                .confirm(
+                  `服务器响应失败\r\n${err.data.msg},点击确定去登录`,
+                  "提示",
+                  {
+                    showCancel: true,
+                  }
+                )
+                .then((confirmed) => {
+                  if (confirmed) {
+                    uni.navigateTo({ url: "/pages/login/login" });
+                  }
+                });
             }
           } catch (err) {
             reject(err);
           }
+        } else {
+          $app.popup.alert(`服务器响应失败\r\n${err.data.msg}`, "数据请求");
         }
         /*失败处理,此处为非200状态码引起的错误*/
         options.hideLoading();
-        $app.popup.alert(`服务器响应失败\r\n${err.msg}`, "数据请求");
       });
   });
 };

+ 467 - 373
static/js/app.js

@@ -1,383 +1,477 @@
 const app = {};
 
-app.sys = class appSystem{
-	/**
-	 * 环境版本判定回调
-	 * @param {Object.Function} callbacks 回调执行方法
-	 */
-	static envVersion(callbacks){
-		if(!uni.getAccountInfoSync) return;
-		const current = uni.getAccountInfoSync()?.miniProgram?.envVersion;
-		const fn = callbacks[current];
-		if(fn && typeof fn =='function') fn();
-	}
-}
+app.sys = class appSystem {
+  /**
+   * 环境版本判定回调
+   * @param {Object.Function} callbacks 回调执行方法
+   */
+  static envVersion(callbacks) {
+    if (!uni.getAccountInfoSync) return;
+    const current = uni.getAccountInfoSync()?.miniProgram?.envVersion;
+    const fn = callbacks[current];
+    if (fn && typeof fn == "function") fn();
+  }
+};
 
-app.url = class appUrl{
-	/**
-	 * 跳转到地址
-	 * @param {String} url path字符串
-	 * @param {Boolean} mode 跳转模式; false时关闭当前窗口跳转 | null时关闭所有窗口跳转 | 默认为打开新窗口跳转(最多支持10层,页面栈超过10层后默认为false模式);
-	 */
-	static goto(url,mode){
-		return new Promise((resolve,reject)=>{
-			const fail = (err) => uni.switchTab({url,success});
-			const success = () => resolve();
-			if(mode === false) return uni.redirectTo({url,fail});
-			if(mode === null) return uni.reLaunch({url,fail});
-			if(getCurrentPages().length < 10){
-				uni.navigateTo({url,fail,success});
-			}else{
-				uni.redirectTo({url,fail,success});
-			}
-		});
-	}
-	
-	/**
-	 * 返回页面
-	 * @param {int} delta 返回级数
-	 */
-	static back(delta){
-		return uni.navigateBack({delta: delta || 1});
-	}
-	
-	/**
-	 * 刷新页面,会触发onLoad和onShow等钩子
-	 */
-	static refresh(){
-		const pages = getCurrentPages();
-		const current = pages[pages.length-1];
-		const url = current.$page.fullPath;
-		app.urlGoto(url,false);
-	}
-	
-	/**
-	 * 打开新窗口并传递数据
-	 * @param {String} url path字符串
-	 * @param {any} data 传递数据
-	 */
-	static open(url,data){
-		const pages = getCurrentPages();
-		const current = pages[pages.length-1].$page.fullPath;
-		uni.navigateTo({url,success: res => {
-			res.eventChannel.emit(`OPEN-DATA[${current}]`, data);
-		}});
-	}
-	
-	/**
-	 * 获取open方法发送到数据
-	 * @param {Component} component 组件对象
-	 */
-	static load(component){
-		return new Promise((resolve,reject)=>{
-			if(component == undefined) return console.error(`app.url.load(this);`);
-			const pages = getCurrentPages();
-			const current = pages[pages.length-2]?.$page?.fullPath;
-			const caller = component?.getOpenerEventChannel;
-			const channel = caller && caller.call(component);
-			if(channel && channel.on) channel.on(`OPEN-DATA[${current}]`,data=>resolve(data));
-		});
-	}
-	
-	/**
-	 * 打开其他小程序
-	 * @param {String} appid 小程序APPID
-	 * @param {String} path 要打开的程序路径
-	 * @param {Object} data 要传递给小程序狗子的参数
-	 */
-	static applet(appid,path,data){
-		return new Promise((resolve,reject)=>{
-			uni.navigateToMiniProgram({
-				appId: appid,
-				path: path,
-				extraData: data || {},
-				success: res => resolve(res)
-			});
-		});
-	}
-}
+app.url = class appUrl {
+  /**
+   * 跳转到地址
+   * @param {String} url path字符串
+   * @param {Boolean} mode 跳转模式; false时关闭当前窗口跳转 | null时关闭所有窗口跳转 | 默认为打开新窗口跳转(最多支持10层,页面栈超过10层后默认为false模式);
+   */
+  static goto(url, mode) {
+    return new Promise((resolve, reject) => {
+      const fail = (err) => uni.switchTab({ url, success });
+      const success = () => resolve();
+      if (mode === false) return uni.redirectTo({ url, fail });
+      if (mode === null) return uni.reLaunch({ url, fail });
+      if (getCurrentPages().length < 10) {
+        uni.navigateTo({ url, fail, success });
+      } else {
+        uni.redirectTo({ url, fail, success });
+      }
+    });
+  }
 
-app.storage = class appStorage{
-	/**
-	 * 设置本地缓存数据
-	 * @param {String} key 数据键名
-	 * @param {any} data 存储数据,支持对象
-	 */
-	static set(key,data){
-		try{
-			uni.setStorageSync(key,data);
-		}catch(err){
-			console.error('app.setStorageSync error: ',err);
-		}
-	}
-	
-	/**
-	 * 获取本地缓存数据
-	 * @param {String} key 数据键名
-	 */
-	static get(key){
-		return uni.getStorageSync(key);
-	}
-	
-	/**
-	 * 清除键缓存数据
-	 * @param {Object} key 数据键名
-	 */
-	static remove(key){
-		uni.removeStorageSync(key);
-	}
-	
-	/**
-	 * 清理所有缓存数据
-	 */
-	static clear(){
-		uni.clearStorageSync();
-	}
-}
+  /**
+   * 返回页面
+   * @param {int} delta 返回级数
+   */
+  static back(delta) {
+    const pages = getCurrentPages();
+    const targetPageIndex = pages.length - 1 - (delta || 1);
 
-app.math = class appMath{
-	/**
-	 * 浮点精确相加
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static add(arg1,arg2){
-		var r1,r2,m;
-		try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
-		try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
-		m=Math.pow(10,Math.max(r1,r2));
-		return (arg1*m+arg2*m)/m;
-	}
-	
-	/**
-	 * 浮点精确相减
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static sub(arg1,arg2){
-		var r1,r2,m,n;
-		try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
-		try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
-		m=Math.pow(10,Math.max(r1,r2));
-		n=(r1=r2)?r1:r2;
-		return ((arg1*m-arg2*m)/m).toFixed(n);
-	}
-	
-	/**
-	 * 浮点精确相乘
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static mul(arg1,arg2){
-		var m=0,s1=arg1.toString(),s2=arg2.toString();
-		try{m+=s1.split(".")[1].length}catch(e){}
-		try{m+=s2.split(".")[1].length}catch(e){}
-		return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
-	}
-	
-	/**
-	 * 浮点精确相除
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static div(arg1,arg2){
-		var t1=0,t2=0,r1,r2;
-		try{t1=arg1.toString().split(".")[1].length}catch(e){};
-		try{t2=arg2.toString().split(".")[1].length}catch(e){};
-		r1=Number(arg1.toString().replace(".",""));
-		r2=Number(arg2.toString().replace(".",""));
-		return (r1/r2)*Math.pow(10,t2-t1);
-	}
-}
+    if (targetPageIndex >= 0 && targetPageIndex < pages.length) {
+      const targetPage = pages[targetPageIndex];
+      uni.navigateBack({
+        delta: delta || 1,
+        success: () => {
+          // 延迟执行刷新,确保页面已经返回
+          setTimeout(() => {
+            if (targetPage.onLoad) targetPage.onLoad(targetPage.options);
+            if (targetPage.onShow) targetPage.onShow();
+          }, 100);
+        },
+      });
+    } else {
+      uni.navigateBack({ delta: delta || 1 });
+    }
+  }
 
-app.date = class appDate{
-	/**
-	 * 日期格式化
-	 * @param {String} fmt 格式规则
-	 * @param {String | Date} date 需要格式化的日期
-	 */
-	static format(fmt,date){ 
-		if(!fmt) fmt = 'yyyy-MM-dd hh:mm:sss';
-		if(typeof(date) === 'string') date = new Date(date.replaceAll('-','/'));
-		if(!date) date = new Date();
-		var o = { 
-			"M+" : date.getMonth()+1,					//月份 
-			"d+" : date.getDate(),						//日 
-			"h+" : date.getHours(),						//小时 
-			"m+" : date.getMinutes(),					//分 
-			"s+" : date.getSeconds(),					//秒 
-			"q+" : Math.floor((date.getMonth()+3)/3),	//季度 
-			"S"  : date.getMilliseconds()				//毫秒 
-		};
-		if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); 
-		for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
-		return fmt; 
-	}
-}
+  /**
+   * 刷新页面,会触发onLoad和onShow等钩子
+   */
+  static refresh() {
+    const pages = getCurrentPages();
+    const current = pages[pages.length - 1];
+    const url = current.$page.fullPath;
+    app.urlGoto(url, false);
+  }
 
-app.popup = class appPopup{
-	/**
-	 * 对话框
-	 * @param {String} content 弹窗内容
-	 * @param {String} title 弹窗标题
-	 * @param {Object} opts 参数
-	 */
-	static confirm(content,title,opts){
-		return new Promise((resolve,reject)=>{
-			if(!title && title==null) title = '温馨提示';
-			opts = Object.assign({
-				title: title,
-				content: content,
-				success: res => resolve(res.confirm==true),
-				fail: err => reject(err)
-			},opts);
-			uni.showModal(opts);
-		});
-	}
-	
-	/**
-	 * 提示框
-	 * @param {String} content 弹窗内容
-	 * @param {String} title 弹窗标题
-	 */
-	static alert(content,title){
-		return appPopup.confirm(content,title||null,{showCancel:false});
-	};
-	
-	/**
-	 * 轻提示
-	 * @param {String} content 提示内容
-	 * @param {Object} opts 参数
-	 */
-	static toast(content,opts){
-		uni.showToast(Object.assign({
-			title: content,
-			position: 'bottom',
-			duration: 2000,
-			icon: 'none',
-		},opts));
-	}
-	
-	/**
-	 * 加载条
-	 * @param {Boolean} visible 显示
-	 * @param {Object} opts 参数
-	 */
-	static loading(visible,opts){
-		if(visible){
-			uni.showLoading(Object.assign({title:'载入中',mask:true},opts));
-			const timeout = opts?.timeout || (45 * 1000);
-			setTimeout(()=>appPopup.loading(false),timeout);
-		}else{
-			uni.hideLoading();
-		}
-	}
-	
-	/**
-	 * 操作菜单
-	 * @param {Array} data 列表数据
-	 * @param {String} key 指定显示字段
-	 * @param {Object} opts 参数
-	 */
-	static sheet(data,key,opts){
-		return new Promise((resolve,reject)=>{
-			uni.showActionSheet(Object.assign({
-				title: '',
-				itemList: data.map(item=>key? item[key] || String(item) : String(item)),
-				success: res => resolve({index:res.tapIndex,data:data[res.tapIndex]})
-			},opts));
-		});
-	}
-}
+  /**
+   * 打开新窗口并传递数据
+   * @param {String} url path字符串
+   * @param {any} data 传递数据
+   */
+  static open(url, data) {
+    const pages = getCurrentPages();
+    const current = pages[pages.length - 1].$page.fullPath;
+    uni.navigateTo({
+      url,
+      success: (res) => {
+        res.eventChannel.emit(`OPEN-DATA[${current}]`, data);
+      },
+    });
+  }
 
-app.map = class appMap{
-	/**
-	 * 获取当前位置坐标
-	 * @param {Boolean} high 是否调用高精度接口
-	 * @param {Object} opts 参数
-	 */
-	static get(high,opts){
-		return new Promise((resolve,reject)=>{
-			const OPTS = Object.assign({
-				success: res =>{
-					console.log(res);
-				},
-				fail: err =>{
-					console.log(err);
-				}
-			},opts);
-			high ? uni.getLocation(OPTS) : uni.getFuzzyLocation(OPTS);
-		});
-	}
-}
+  /**
+   * 获取open方法发送到数据
+   * @param {Component} component 组件对象
+   */
+  static load(component) {
+    return new Promise((resolve, reject) => {
+      if (component == undefined) return console.error(`app.url.load(this);`);
+      const pages = getCurrentPages();
+      const current = pages[pages.length - 2]?.$page?.fullPath;
+      const caller = component?.getOpenerEventChannel;
+      const channel = caller && caller.call(component);
+      if (channel && channel.on)
+        channel.on(`OPEN-DATA[${current}]`, (data) => resolve(data));
+    });
+  }
 
-app.act = class appAct{
-	/**
-	 * 拨打电话
-	 * @param {String} phone
-	 */
-	static callPhone(phone){
-		uni.makePhoneCall({phoneNumber:phone});
-	}
-	
-	/**
-	 * 调用扫描
-	 * @param {Object} opts 参数配置,详细查看 https://uniapp.dcloud.net.cn/api/system/barcode.html
-	 */
-	static scan(opts){
-		return new Promise((resolve,reject)=>{
-			uni.scanCode(Object.assign({},{
-				success: res=>resolve(res),
-				// fail: err=>reject(err),
-			},opts));
-		});
-	}
-	
-	/**
-	 * 获取节点信息
-	 * @param {Component} component 组件
-	 * @param {String} selector 类似于 CSS 的选择器
-	 * @param {Boolean} multi 是否多节点
-	 */
-	static selectorQuery(component,selector,multi){
-		return new Promise((resolve,reject)=>{
-			const query = uni.createSelectorQuery().in(component)[multi?'selectAll':'select'](selector);
-			query.boundingClientRect(data=>{
-				if(data) resolve(data);
-			}).exec();
-		});
-	}
-	
-	/**
-	 * 复制文本到剪贴板
-	 * @param {String} str 需要复制的文本
-	 */
-	static copy(str){
-		return new Promise((resolve,reject)=>{
-			uni.setClipboardData({
-				data: 'hello',
-				success: resolve(),
-				fail: err => reject(err)
-			});
-		});
-	}
-	
-	/**
-	 * 客服服务
-	 * @param {Object} id
-	 * @param {Object} url
-	 */
-	static customerService(id,url){
-		return new Promise((resolve,reject)=>{
-			wx.openCustomerServiceChat({
-				extInfo: {url: url},
-				corpId: id,
-				success: res => resolve(res),
-				fail: err => reject(err)
-			});
-		});
-	}
-	
-}
+  /**
+   * 打开其他小程序
+   * @param {String} appid 小程序APPID
+   * @param {String} path 要打开的程序路径
+   * @param {Object} data 要传递给小程序狗子的参数
+   */
+  static applet(appid, path, data) {
+    return new Promise((resolve, reject) => {
+      uni.navigateToMiniProgram({
+        appId: appid,
+        path: path,
+        extraData: data || {},
+        success: (res) => resolve(res),
+      });
+    });
+  }
+};
 
-module.exports = app;
+app.storage = class appStorage {
+  /**
+   * 设置本地缓存数据
+   * @param {String} key 数据键名
+   * @param {any} data 存储数据,支持对象
+   */
+  static set(key, data) {
+    try {
+      uni.setStorageSync(key, data);
+    } catch (err) {
+      console.error("app.setStorageSync error: ", err);
+    }
+  }
+
+  /**
+   * 获取本地缓存数据
+   * @param {String} key 数据键名
+   */
+  static get(key) {
+    return uni.getStorageSync(key);
+  }
+
+  /**
+   * 清除键缓存数据
+   * @param {Object} key 数据键名
+   */
+  static remove(key) {
+    uni.removeStorageSync(key);
+  }
+
+  /**
+   * 清理所有缓存数据
+   */
+  static clear() {
+    uni.clearStorageSync();
+  }
+};
+
+app.math = class appMath {
+  /**
+   * 浮点精确相加
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static add(arg1, arg2) {
+    var r1, r2, m;
+    try {
+      r1 = arg1.toString().split(".")[1].length;
+    } catch (e) {
+      r1 = 0;
+    }
+    try {
+      r2 = arg2.toString().split(".")[1].length;
+    } catch (e) {
+      r2 = 0;
+    }
+    m = Math.pow(10, Math.max(r1, r2));
+    return (arg1 * m + arg2 * m) / m;
+  }
+
+  /**
+   * 浮点精确相减
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static sub(arg1, arg2) {
+    var r1, r2, m, n;
+    try {
+      r1 = arg1.toString().split(".")[1].length;
+    } catch (e) {
+      r1 = 0;
+    }
+    try {
+      r2 = arg2.toString().split(".")[1].length;
+    } catch (e) {
+      r2 = 0;
+    }
+    m = Math.pow(10, Math.max(r1, r2));
+    n = (r1 = r2) ? r1 : r2;
+    return ((arg1 * m - arg2 * m) / m).toFixed(n);
+  }
+
+  /**
+   * 浮点精确相乘
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static mul(arg1, arg2) {
+    var m = 0,
+      s1 = arg1.toString(),
+      s2 = arg2.toString();
+    try {
+      m += s1.split(".")[1].length;
+    } catch (e) {}
+    try {
+      m += s2.split(".")[1].length;
+    } catch (e) {}
+    return (
+      (Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) /
+      Math.pow(10, m)
+    );
+  }
+
+  /**
+   * 浮点精确相除
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static div(arg1, arg2) {
+    var t1 = 0,
+      t2 = 0,
+      r1,
+      r2;
+    try {
+      t1 = arg1.toString().split(".")[1].length;
+    } catch (e) {}
+    try {
+      t2 = arg2.toString().split(".")[1].length;
+    } catch (e) {}
+    r1 = Number(arg1.toString().replace(".", ""));
+    r2 = Number(arg2.toString().replace(".", ""));
+    return (r1 / r2) * Math.pow(10, t2 - t1);
+  }
+};
+
+app.date = class appDate {
+  /**
+   * 日期格式化
+   * @param {String} fmt 格式规则
+   * @param {String | Date} date 需要格式化的日期
+   */
+  static format(fmt, date) {
+    if (!fmt) fmt = "yyyy-MM-dd hh:mm:sss";
+    if (typeof date === "string") date = new Date(date.replaceAll("-", "/"));
+    if (!date) date = new Date();
+    var o = {
+      "M+": date.getMonth() + 1, //月份
+      "d+": date.getDate(), //日
+      "h+": date.getHours(), //小时
+      "m+": date.getMinutes(), //分
+      "s+": date.getSeconds(), //秒
+      "q+": Math.floor((date.getMonth() + 3) / 3), //季度
+      S: date.getMilliseconds(), //毫秒
+    };
+    if (/(y+)/.test(fmt))
+      fmt = fmt.replace(
+        RegExp.$1,
+        (date.getFullYear() + "").substr(4 - RegExp.$1.length)
+      );
+    for (var k in o)
+      if (new RegExp("(" + k + ")").test(fmt))
+        fmt = fmt.replace(
+          RegExp.$1,
+          RegExp.$1.length == 1
+            ? o[k]
+            : ("00" + o[k]).substr(("" + o[k]).length)
+        );
+    return fmt;
+  }
+};
+
+app.popup = class appPopup {
+  /**
+   * 对话框
+   * @param {String} content 弹窗内容
+   * @param {String} title 弹窗标题
+   * @param {Object} opts 参数
+   */
+  static confirm(content, title, opts) {
+    return new Promise((resolve, reject) => {
+      if (!title && title == null) title = "温馨提示";
+      opts = Object.assign(
+        {
+          title: title,
+          content: content,
+          confirmColor: "#007AFF",
+          success: (res) => resolve(res.confirm == true),
+          fail: (err) => reject(err),
+        },
+        opts
+      );
+      uni.showModal(opts);
+    });
+  }
+
+  /**
+   * 提示框
+   * @param {String} content 弹窗内容
+   * @param {String} title 弹窗标题
+   */
+  static alert(content, title) {
+    return appPopup.confirm(content, title || null, { showCancel: false });
+  }
+
+  /**
+   * 轻提示
+   * @param {String} content 提示内容
+   * @param {Object} opts 参数
+   */
+  static toast(content, opts) {
+    uni.showToast(
+      Object.assign(
+        {
+          title: content,
+          position: "bottom",
+          duration: 2000,
+          icon: "none",
+        },
+        opts
+      )
+    );
+  }
+
+  /**
+   * 加载条
+   * @param {Boolean} visible 显示
+   * @param {Object} opts 参数
+   */
+  static loading(visible, opts) {
+    if (visible) {
+      uni.showLoading(Object.assign({ title: "载入中", mask: true }, opts));
+      const timeout = opts?.timeout || 45 * 1000;
+      setTimeout(() => appPopup.loading(false), timeout);
+    } else {
+      uni.hideLoading();
+    }
+  }
+
+  /**
+   * 操作菜单
+   * @param {Array} data 列表数据
+   * @param {String} key 指定显示字段
+   * @param {Object} opts 参数
+   */
+  static sheet(data, key, opts) {
+    return new Promise((resolve, reject) => {
+      uni.showActionSheet(
+        Object.assign(
+          {
+            title: "",
+            itemList: data.map((item) =>
+              key ? item[key] || String(item) : String(item)
+            ),
+            success: (res) =>
+              resolve({ index: res.tapIndex, data: data[res.tapIndex] }),
+          },
+          opts
+        )
+      );
+    });
+  }
+};
+
+app.map = class appMap {
+  /**
+   * 获取当前位置坐标
+   * @param {Boolean} high 是否调用高精度接口
+   * @param {Object} opts 参数
+   */
+  static get(high, opts) {
+    return new Promise((resolve, reject) => {
+      const OPTS = Object.assign(
+        {
+          success: (res) => {
+            console.log(res);
+          },
+          fail: (err) => {
+            console.log(err);
+          },
+        },
+        opts
+      );
+      high ? uni.getLocation(OPTS) : uni.getFuzzyLocation(OPTS);
+    });
+  }
+};
+
+app.act = class appAct {
+  /**
+   * 拨打电话
+   * @param {String} phone
+   */
+  static callPhone(phone) {
+    uni.makePhoneCall({ phoneNumber: phone });
+  }
+
+  /**
+   * 调用扫描
+   * @param {Object} opts 参数配置,详细查看 https://uniapp.dcloud.net.cn/api/system/barcode.html
+   */
+  static scan(opts) {
+    return new Promise((resolve, reject) => {
+      uni.scanCode(
+        Object.assign(
+          {},
+          {
+            success: (res) => resolve(res),
+            // fail: err=>reject(err),
+          },
+          opts
+        )
+      );
+    });
+  }
+
+  /**
+   * 获取节点信息
+   * @param {Component} component 组件
+   * @param {String} selector 类似于 CSS 的选择器
+   * @param {Boolean} multi 是否多节点
+   */
+  static selectorQuery(component, selector, multi) {
+    return new Promise((resolve, reject) => {
+      const query = uni
+        .createSelectorQuery()
+        .in(component)
+        [multi ? "selectAll" : "select"](selector);
+      query
+        .boundingClientRect((data) => {
+          if (data) resolve(data);
+        })
+        .exec();
+    });
+  }
+
+  /**
+   * 复制文本到剪贴板
+   * @param {String} str 需要复制的文本
+   */
+  static copy(str) {
+    return new Promise((resolve, reject) => {
+      uni.setClipboardData({
+        data: "hello",
+        success: resolve(),
+        fail: (err) => reject(err),
+      });
+    });
+  }
+
+  /**
+   * 客服服务
+   * @param {Object} id
+   * @param {Object} url
+   */
+  static customerService(id, url) {
+    return new Promise((resolve, reject) => {
+      wx.openCustomerServiceChat({
+        extInfo: { url: url },
+        corpId: id,
+        success: (res) => resolve(res),
+        fail: (err) => reject(err),
+      });
+    });
+  }
+};
+
+module.exports = app;

+ 2 - 2
static/js/config.js

@@ -11,8 +11,8 @@ config.url = {
   // request : 'http://192.168.110.3:80/',
   // request : 'http://192.168.1.253:80/',
   // request : 'http://120.78.228.211:8866/',
-  // request: "http://192.168.0.11:8989/",
-  request: "http://192.168.0.217:8989/",
+  request: "http://192.168.0.11:8989/",
+  // request: "http://192.168.0.217:8989/",
   // request : 'https://charge.dev.hub.zswlgz.com/',
   // 上传地址
   upload: "http://127.0.0.1:3000/upload/",

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/app-navigation/app-navigation.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-body/ax-body.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-custom-title/ax-custom-title.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-ios-indicator/ax-ios-indicator.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/ax-popup/ax-popup.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/banner-page/banner-page.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/charging/charging.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/coupon-buy/coupon-buy.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/coupons/coupons.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/feedback-reply/feedback-reply.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/feedback/feedback.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/map.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/my.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/new-site/new-site.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/order-detail/order-detail.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/order.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/recharge-log/recharge-log.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/search/search.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/site-more/site-more.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/site/site.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/terminal/terminal.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/lime-painter/components/l-painter/l-painter.js.map


+ 103 - 74
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -12478,11 +12478,11 @@ api.base = function (method, url, data, opts) {
                             options.hideLoading();
                           }
                           _context.t0 = res.code;
-                          _context.next = _context.t0 === "00000" ? 4 : _context.t0 === "A0230" ? 6 : 44;
+                          _context.next = _context.t0 === "00000" ? 4 : _context.t0 === "A0230" ? 6 : 42;
                           break;
                         case 4:
                           resolve(res);
-                          return _context.abrupt("break", 46);
+                          return _context.abrupt("break", 44);
                         case 6:
                           _context.prev = 6;
                           // 尝试刷新token
@@ -12510,47 +12510,46 @@ api.base = function (method, url, data, opts) {
                           _context.t1 = _context["catch"](13);
                           reject(_context.t1);
                         case 23:
-                          _context.next = 38;
+                          _context.next = 36;
                           break;
                         case 25:
-                          _context.next = 27;
-                          return api.login();
-                        case 27:
+                          // 刷新失败,执行登录
+                          // await api.login();
                           options.header.token = getAccessToken();
-                          _context.prev = 28;
-                          _context.next = 31;
+                          _context.prev = 26;
+                          _context.next = 29;
                           return Request(options);
-                        case 31:
+                        case 29:
                           _db = _context.sent;
                           resolve(_db);
-                          _context.next = 38;
+                          _context.next = 36;
                           break;
-                        case 35:
-                          _context.prev = 35;
-                          _context.t2 = _context["catch"](28);
+                        case 33:
+                          _context.prev = 33;
+                          _context.t2 = _context["catch"](26);
                           reject(_context.t2);
-                        case 38:
-                          _context.next = 43;
+                        case 36:
+                          _context.next = 41;
                           break;
-                        case 40:
-                          _context.prev = 40;
+                        case 38:
+                          _context.prev = 38;
                           _context.t3 = _context["catch"](6);
                           reject(_context.t3);
-                        case 43:
-                          return _context.abrupt("break", 46);
-                        case 44:
+                        case 41:
+                          return _context.abrupt("break", 44);
+                        case 42:
                           if (options.error) {
                             _app.default.popup.alert(res.msg || "".concat(url, "\r\n\u672A\u77E5\u9519\u8BEF"), "数据请求");
                           } else {
                             reject(res);
                           }
-                          return _context.abrupt("break", 46);
-                        case 46:
+                          return _context.abrupt("break", 44);
+                        case 44:
                         case "end":
                           return _context.stop();
                       }
                     }
-                  }, _callee, null, [[6, 40], [13, 20], [28, 35]]);
+                  }, _callee, null, [[6, 38], [13, 20], [26, 33]]);
                 }));
                 return function (_x3) {
                   return _ref2.apply(this, arguments);
@@ -12562,17 +12561,14 @@ api.base = function (method, url, data, opts) {
                     while (1) {
                       switch (_context2.prev = _context2.next) {
                         case 0:
-                          console.log("请求失败", err.data.code);
                           if (!(err.data.code == "A0230")) {
-                            _context2.next = 24;
+                            _context2.next = 27;
                             break;
                           }
-                          _context2.prev = 2;
-                          // 尝试刷新token
-                          console.log("进入刷新请求");
-                          _context2.next = 6;
+                          _context2.prev = 1;
+                          _context2.next = 4;
                           return refreshToken();
-                        case 6:
+                        case 4:
                           refreshResult = _context2.sent;
                           if (!refreshResult) {
                             _context2.next = 19;
@@ -12580,35 +12576,53 @@ api.base = function (method, url, data, opts) {
                           }
                           // 刷新成功,更新header中的token并重新请求
                           options.header.token = getAccessToken();
-                          _context2.prev = 9;
-                          _context2.next = 12;
+                          _context2.prev = 7;
+                          _context2.next = 10;
                           return Request(options);
-                        case 12:
+                        case 10:
                           db = _context2.sent;
                           resolve(db);
-                          _context2.next = 19;
+                          _context2.next = 17;
                           break;
-                        case 16:
-                          _context2.prev = 16;
-                          _context2.t0 = _context2["catch"](9);
+                        case 14:
+                          _context2.prev = 14;
+                          _context2.t0 = _context2["catch"](7);
                           reject(_context2.t0);
+                        case 17:
+                          _context2.next = 20;
+                          break;
                         case 19:
-                          _context2.next = 24;
+                          // 刷新失败,执行登录
+                          _app.default.popup.confirm("\u670D\u52A1\u5668\u54CD\u5E94\u5931\u8D25\r\n".concat(err.data.msg, ",\u70B9\u51FB\u786E\u5B9A\u53BB\u767B\u5F55"), "提示", {
+                            showCancel: true
+                          }).then(function (confirmed) {
+                            if (confirmed) {
+                              uni.navigateTo({
+                                url: "/pages/login/login"
+                              });
+                            }
+                          });
+                        case 20:
+                          _context2.next = 25;
                           break;
-                        case 21:
-                          _context2.prev = 21;
-                          _context2.t1 = _context2["catch"](2);
+                        case 22:
+                          _context2.prev = 22;
+                          _context2.t1 = _context2["catch"](1);
                           reject(_context2.t1);
-                        case 24:
+                        case 25:
+                          _context2.next = 28;
+                          break;
+                        case 27:
+                          _app.default.popup.alert("\u670D\u52A1\u5668\u54CD\u5E94\u5931\u8D25\r\n".concat(err.data.msg), "数据请求");
+                        case 28:
                           /*失败处理,此处为非200状态码引起的错误*/
                           options.hideLoading();
-                          _app.default.popup.alert("\u670D\u52A1\u5668\u54CD\u5E94\u5931\u8D25\r\n".concat(err.msg), "数据请求");
-                        case 26:
+                        case 29:
                         case "end":
                           return _context2.stop();
                       }
                     }
-                  }, _callee2, null, [[2, 21], [9, 16]]);
+                  }, _callee2, null, [[1, 22], [7, 14]]);
                 }));
                 return function (_x4) {
                   return _ref3.apply(this, arguments);
@@ -13268,7 +13282,7 @@ app.sys = /*#__PURE__*/function () {
       if (!uni.getAccountInfoSync) return;
       var current = (_uni$getAccountInfoSy = uni.getAccountInfoSync()) === null || _uni$getAccountInfoSy === void 0 ? void 0 : (_uni$getAccountInfoSy2 = _uni$getAccountInfoSy.miniProgram) === null || _uni$getAccountInfoSy2 === void 0 ? void 0 : _uni$getAccountInfoSy2.envVersion;
       var fn = callbacks[current];
-      if (fn && typeof fn == 'function') fn();
+      if (fn && typeof fn == "function") fn();
     }
   }]);
   return appSystem;
@@ -13329,9 +13343,25 @@ app.url = /*#__PURE__*/function () {
   }, {
     key: "back",
     value: function back(delta) {
-      return uni.navigateBack({
-        delta: delta || 1
-      });
+      var pages = getCurrentPages();
+      var targetPageIndex = pages.length - 1 - (delta || 1);
+      if (targetPageIndex >= 0 && targetPageIndex < pages.length) {
+        var targetPage = pages[targetPageIndex];
+        uni.navigateBack({
+          delta: delta || 1,
+          success: function success() {
+            // 延迟执行刷新,确保页面已经返回
+            setTimeout(function () {
+              if (targetPage.onLoad) targetPage.onLoad(targetPage.options);
+              if (targetPage.onShow) targetPage.onShow();
+            }, 100);
+          }
+        });
+      } else {
+        uni.navigateBack({
+          delta: delta || 1
+        });
+      }
     }
 
     /**
@@ -13425,7 +13455,7 @@ app.storage = /*#__PURE__*/function () {
       try {
         uni.setStorageSync(key, data);
       } catch (err) {
-        console.error('app.setStorageSync error: ', err);
+        console.error("app.setStorageSync error: ", err);
       }
     }
 
@@ -13549,11 +13579,9 @@ app.math = /*#__PURE__*/function () {
       try {
         t1 = arg1.toString().split(".")[1].length;
       } catch (e) {}
-      ;
       try {
         t2 = arg2.toString().split(".")[1].length;
       } catch (e) {}
-      ;
       r1 = Number(arg1.toString().replace(".", ""));
       r2 = Number(arg2.toString().replace(".", ""));
       return r1 / r2 * Math.pow(10, t2 - t1);
@@ -13576,23 +13604,23 @@ app.date = /*#__PURE__*/function () {
      * @param {String | Date} date 需要格式化的日期
      */
     function format(fmt, date) {
-      if (!fmt) fmt = 'yyyy-MM-dd hh:mm:sss';
-      if (typeof date === 'string') date = new Date(date.replaceAll('-', '/'));
+      if (!fmt) fmt = "yyyy-MM-dd hh:mm:sss";
+      if (typeof date === "string") date = new Date(date.replaceAll("-", "/"));
       if (!date) date = new Date();
       var o = {
         "M+": date.getMonth() + 1,
-        //月份 
+        //月份
         "d+": date.getDate(),
-        //日 
+        //日
         "h+": date.getHours(),
-        //小时 
+        //小时
         "m+": date.getMinutes(),
-        //分 
+        //分
         "s+": date.getSeconds(),
-        //秒 
+        //秒
         "q+": Math.floor((date.getMonth() + 3) / 3),
-        //季度 
-        "S": date.getMilliseconds() //毫秒 
+        //季度
+        S: date.getMilliseconds() //毫秒
       };
 
       if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
@@ -13621,10 +13649,11 @@ app.popup = /*#__PURE__*/function () {
      */
     function confirm(content, title, opts) {
       return new Promise(function (resolve, reject) {
-        if (!title && title == null) title = '温馨提示';
+        if (!title && title == null) title = "温馨提示";
         opts = Object.assign({
           title: title,
           content: content,
+          confirmColor: "#007AFF",
           success: function success(res) {
             return resolve(res.confirm == true);
           },
@@ -13648,20 +13677,20 @@ app.popup = /*#__PURE__*/function () {
         showCancel: false
       });
     }
-  }, {
-    key: "toast",
-    value:
+
     /**
      * 轻提示
      * @param {String} content 提示内容
      * @param {Object} opts 参数
      */
-    function toast(content, opts) {
+  }, {
+    key: "toast",
+    value: function toast(content, opts) {
       uni.showToast(Object.assign({
         title: content,
-        position: 'bottom',
+        position: "bottom",
         duration: 2000,
-        icon: 'none'
+        icon: "none"
       }, opts));
     }
 
@@ -13675,7 +13704,7 @@ app.popup = /*#__PURE__*/function () {
     value: function loading(visible, opts) {
       if (visible) {
         uni.showLoading(Object.assign({
-          title: '载入中',
+          title: "载入中",
           mask: true
         }, opts));
         var timeout = (opts === null || opts === void 0 ? void 0 : opts.timeout) || 45 * 1000;
@@ -13698,7 +13727,7 @@ app.popup = /*#__PURE__*/function () {
     value: function sheet(data, key, opts) {
       return new Promise(function (resolve, reject) {
         uni.showActionSheet(Object.assign({
-          title: '',
+          title: "",
           itemList: data.map(function (item) {
             return key ? item[key] || String(item) : String(item);
           }),
@@ -13790,7 +13819,7 @@ app.act = /*#__PURE__*/function () {
     key: "selectorQuery",
     value: function selectorQuery(component, selector, multi) {
       return new Promise(function (resolve, reject) {
-        var query = uni.createSelectorQuery().in(component)[multi ? 'selectAll' : 'select'](selector);
+        var query = uni.createSelectorQuery().in(component)[multi ? "selectAll" : "select"](selector);
         query.boundingClientRect(function (data) {
           if (data) resolve(data);
         }).exec();
@@ -13806,7 +13835,7 @@ app.act = /*#__PURE__*/function () {
     value: function copy(str) {
       return new Promise(function (resolve, reject) {
         uni.setClipboardData({
-          data: 'hello',
+          data: "hello",
           success: resolve(),
           fail: function fail(err) {
             return reject(err);
@@ -13876,8 +13905,8 @@ config.url = {
   // request : 'http://192.168.110.3:80/',
   // request : 'http://192.168.1.253:80/',
   // request : 'http://120.78.228.211:8866/',
-  // request: "http://192.168.0.11:8989/",
-  request: "http://192.168.0.217:8989/",
+  request: "http://192.168.0.11:8989/",
+  // request: "http://192.168.0.217:8989/",
   // request : 'https://charge.dev.hub.zswlgz.com/',
   // 上传地址
   upload: "http://127.0.0.1:3000/upload/",

+ 1 - 1
unpackage/dist/dev/mp-weixin/components/app-navigation/app-navigation.js

@@ -80,7 +80,7 @@ var components
 try {
   components = {
     axIosIndicator: function () {
-      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 241))
+      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 246))
     },
   }
 } catch (e) {

+ 2 - 2
unpackage/dist/dev/mp-weixin/components/ax-body/ax-body.js

@@ -80,10 +80,10 @@ var components
 try {
   components = {
     axCustomTitle: function () {
-      return Promise.all(/*! import() | components/ax-custom-title/ax-custom-title */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/ax-custom-title/ax-custom-title")]).then(__webpack_require__.bind(null, /*! @/components/ax-custom-title/ax-custom-title.vue */ 248))
+      return Promise.all(/*! import() | components/ax-custom-title/ax-custom-title */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/ax-custom-title/ax-custom-title")]).then(__webpack_require__.bind(null, /*! @/components/ax-custom-title/ax-custom-title.vue */ 253))
     },
     axIosIndicator: function () {
-      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 241))
+      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 246))
     },
   }
 } catch (e) {

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 11 - 11
unpackage/dist/dev/mp-weixin/components/ax-custom-title/ax-custom-title.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 11 - 11
unpackage/dist/dev/mp-weixin/components/ax-ios-indicator/ax-ios-indicator.js


+ 37 - 38
unpackage/dist/dev/mp-weixin/pages/charging/charging.js

@@ -359,12 +359,12 @@ var _default = {
   methods: {
     //获取设备的详情信息
     getDeviceInfo: function getDeviceInfo(deviceId) {
-      var _this2 = this;
+      var _this = this;
       this.$api.base("post", "/chargeApi/getDevicesDetial", {
         "deviceId": this.deviceInfo.id
       }, {}).then(function (res) {
-        _this2.deviceInfo = res.device;
-        _this2.nowPriceTime = res.nowPriceTime;
+        _this.deviceInfo = res.device;
+        _this.nowPriceTime = res.nowPriceTime;
       });
     },
     //是否显示长按结束按钮
@@ -379,45 +379,45 @@ var _default = {
     },
     //查询订单详情并进行订单状态的检测
     getOrderInfo: function getOrderInfo() {
-      var _this3 = this;
+      var _this2 = this;
       this.$api.base("post", "/chargeApi/queryIsSuccessStop", {
         "id": this.orderInfo.id
       }, {
         loading: false
       }).then(function (res) {
-        _this3.orderInfo = res.obj.orderInfo;
-        _this3.timer.start = res.obj.orderInfo.startTime.replaceAll("-", "/");
-        _this3.isShowEendBtn(res.obj.orderInfo.startTime.replaceAll("-", "/"));
+        _this2.orderInfo = res.obj.orderInfo;
+        _this2.timer.start = res.obj.orderInfo.startTime.replaceAll("-", "/");
+        _this2.isShowEendBtn(res.obj.orderInfo.startTime.replaceAll("-", "/"));
         //充电的度数
-        if (_this3.orderInfo.totalCharge != null) {
-          _this3.statInfo.electricity = _this3.orderInfo.totalCharge;
+        if (_this2.orderInfo.totalCharge != null) {
+          _this2.statInfo.electricity = _this2.orderInfo.totalCharge;
         }
 
         //费用
-        var cost = (_this3.statInfo.electricity * _this3.nowPriceTime.price).toFixed(2);
-        if (!isNaN(cost) && _this3.orderInfo.thirdPartyElecfee == 0) {
+        var cost = (_this2.statInfo.electricity * _this2.nowPriceTime.price).toFixed(2);
+        if (!isNaN(cost) && _this2.orderInfo.thirdPartyElecfee == 0) {
           //如果后台,第三方返回的电费是0按照自己的方式进行计算
-          _this3.statInfo.cost = cost;
+          _this2.statInfo.cost = cost;
         }
-        if (!isNaN(_this3.orderInfo.realCost) && _this3.orderInfo.thirdPartyElecfee > 0) {
+        if (!isNaN(_this2.orderInfo.realCost) && _this2.orderInfo.thirdPartyElecfee > 0) {
           //如果后台有返回第三方的电费,取后台计算的值
-          _this3.statInfo.cost = _this3.orderInfo.realCost.toFixed(4);
+          _this2.statInfo.cost = _this2.orderInfo.realCost.toFixed(4);
         }
-        if (_this3.orderInfo.status == 3 || _this3.orderInfo.status == 5) {
+        if (_this2.orderInfo.status == 3 || _this2.orderInfo.status == 5) {
           uni.hideLoading();
-          clearInterval(_this3.timer.id);
-          clearInterval(_this3.orderTimer.id);
-          _this3.$app.url.goto('/pages/order-detail/order-detail?orderId=' + _this3.orderInfo.id, false);
+          clearInterval(_this2.timer.id);
+          clearInterval(_this2.orderTimer.id);
+          _this2.$app.url.goto('/pages/order-detail/order-detail?orderId=' + _this2.orderInfo.id, false);
           return;
         }
-        if (_this3.orderInfo.status == 1 && !_this3.timer.isSatrt) {
+        if (_this2.orderInfo.status == 1 && !_this2.timer.isSatrt) {
           //状态为充电中
-          _this3.startup();
+          _this2.startup();
         }
-        if (!_this3.orderTimer.isSatrt) {
-          _this3.orderTimer.isSatrt = true;
+        if (!_this2.orderTimer.isSatrt) {
+          _this2.orderTimer.isSatrt = true;
           //开启定时器每隔5s查询订单
-          _this3.startCheckOrderTimer();
+          _this2.startCheckOrderTimer();
         }
       });
     },
@@ -430,15 +430,15 @@ var _default = {
     },
     //启动检测订单的定时器,每隔5S
     startCheckOrderTimer: function startCheckOrderTimer() {
-      var _this4 = this;
+      var _this3 = this;
       clearInterval(this.orderTimer.id);
       this.orderTimer.id = setInterval(function () {
-        _this4.getOrderInfo(_this4.orderInfo.id);
+        _this3.getOrderInfo(_this3.orderInfo.id);
       }, this.orderTimer.timeInterval * 1000);
     },
     // 启动定时器
     startup: function startup() {
-      var _this5 = this;
+      var _this4 = this;
       var start = new Date(this.timer.start);
       var obj = {
         hour: 0,
@@ -446,12 +446,12 @@ var _default = {
         second: 0
       };
       var handle = function handle() {
-        _this5.timer.isSatrt = true;
+        _this4.timer.isSatrt = true;
         var diff = Date.now() - start.getTime();
         obj.hour = Math.floor(diff / 1000 / 60 / 60);
         obj.minute = Math.floor(diff / 1000 / 60 % 60);
         obj.second = Math.floor(diff / 1000 % 60);
-        _this5.timer.text = "".concat(String(obj.hour).padStart(2, '0'), "\uFF1A").concat(String(obj.minute).padStart(2, '0'), "\uFF1A").concat(String(obj.second).padStart(2, '0'));
+        _this4.timer.text = "".concat(String(obj.hour).padStart(2, '0'), "\uFF1A").concat(String(obj.minute).padStart(2, '0'), "\uFF1A").concat(String(obj.second).padStart(2, '0'));
         //console.log(diff,Math.floor(diff / 1000 ))
         /* //计算在该功率下,
         var mill = diff / 1000;//充电时间秒
@@ -470,23 +470,22 @@ var _default = {
     },
     // 退出充电
     exit: function exit() {
-      var _this6 = this;
+      var _this5 = this;
       /* this.$app.popup.toast("测试环境,请等待自动结束")
       			return; */
-      var _this = this;
-      this.$api.base("post", "/chargeApi/stopCharge", {
-        "id": this.orderInfo.id
+      this.$api.base("post", "/applet/v1/charge/stopCharge", {
+        "chargeOrderId": 1234
       }, {}).then(function (res) {
-        _this6.exiting.lock = false;
-        clearInterval(_this6.orderTimer.id);
-        _this6.orderTimer.isSatrt = false;
-        _this6.orderTimer.timeInterval = 2;
-        _this6.$app.popup.loading(true, {
+        _this5.exiting.lock = false;
+        clearInterval(_this5.orderTimer.id);
+        _this5.orderTimer.isSatrt = false;
+        _this5.orderTimer.timeInterval = 2;
+        _this5.$app.popup.loading(true, {
           title: "结算中,请稍候",
           timeout: 120 * 1000
         });
         setTimeout(function () {
-          _this6.getOrderInfo(_this6.orderInfo.id);
+          _this5.getOrderInfo(_this5.orderInfo.id);
         }, 2000);
 
         /* clearInterval(this.timer.id);

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/coupon-buy/coupon-buy.js

@@ -104,7 +104,7 @@ try {
       return __webpack_require__.e(/*! import() | components/ax-body/ax-body */ "components/ax-body/ax-body").then(__webpack_require__.bind(null, /*! @/components/ax-body/ax-body.vue */ 194))
     },
     axIosIndicator: function () {
-      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 241))
+      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 246))
     },
   }
 } catch (e) {

+ 3 - 3
unpackage/dist/dev/mp-weixin/pages/coupons/coupons.js

@@ -274,7 +274,7 @@ var _default = {
   methods: {
     handleTabClick: function handleTabClick(e) {
       this.currentIndex = e.id;
-      this.form_submit.status = e.id + 1;
+      this.form_submit.status = e.id;
       this.toBeclaimedCoupons = [];
       this.get_TobeclaimedCoupons();
     },
@@ -325,8 +325,8 @@ var _default = {
       });
       var timer = setInterval(function () {
         clearInterval(timer);
-        _this3.$api.base("post", "/couponApi/receive", {
-          templateId: e.id
+        _this3.$api.base("post", "/applet/v1/user/gainCoupon", {
+          couponCode: e.code
         }, {}).then(function (res) {
           uni.hideLoading();
           if (res.code == 0) {

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

@@ -813,7 +813,7 @@ var _default = {
         sortType: this.sorts.index + 1,
         longitude: lng,
         latitude: lat,
-        userId: parseInt(this.$app.storage.get('USER_INFO').id)
+        userId: parseInt(this.$app.storage.get('USER_INFO').appletUserId)
       }, {}).then(function (res) {
         if (_this10.pageNum == 1) {
           _this10.list.data = res.data.list;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxml


+ 75 - 62
unpackage/dist/dev/mp-weixin/pages/login/login.js

@@ -172,6 +172,8 @@ Object.defineProperty(exports, "__esModule", {
 exports.default = void 0;
 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 31));
 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 33));
+var _config = _interopRequireDefault(__webpack_require__(/*! @/static/js/config.js */ 35));
+//
 //
 //
 //
@@ -232,69 +234,80 @@ var _default = {
       console.log(e);
       // let channelUrl='http://192.168.110.241:9120/zs/channel/admin/'
       var channelUrl = 'https://channel-api.zonelife.cn/zs/channel/admin/';
-      if (e.detail.code) {
-        this.$api.base("post", '/userApi/getPhone', {
-          code: e.detail.code
-        }).then( /*#__PURE__*/function () {
-          var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
-            return _regenerator.default.wrap(function _callee$(_context) {
-              while (1) {
-                switch (_context.prev = _context.next) {
-                  case 0:
-                    _context.next = 2;
-                    return _this2.$app.storage.set('USER_INFO', res.userInfo);
-                  case 2:
-                    // 识别用户是否通过分销码进入小程序
-                    if (uni.getStorageSync('ADMIN_USERID')) {
-                      uni.request({
-                        url: channelUrl + 'ums/umsAdminUser/distributionBindUser',
-                        method: 'POST',
-                        header: {
-                          'content-type': 'application/json'
-                        },
-                        data: {
-                          userId: res.userInfo.id,
-                          adminUserId: uni.getStorageSync('ADMIN_USERID')
-                        },
-                        success: function success(res) {
-                          console.info(res.data, '----扫码接口调用');
-                          setTimeout(function () {
-                            _this2.$app.storage.remove('ADMIN_USERID');
-                          }, 500);
-                        },
-                        fail: function fail(err) {
-                          console.log(err, '----错误信息');
-                        }
-                      });
-                    }
-                    if (_this2.$app.storage.get('FRIM_ID')) {
-                      _this2.$api.base("post", "/userApi/add-firm-user?firmId=" + parseInt(_this2.$app.storage.get('FRIM_ID')), {}, {
-                        error: false
-                      }).then(function (res) {
-                        _this2.$app.popup.alert(res.msg);
-                        setTimeout(function () {
-                          _this2.$app.storage.remove('FRIM_ID');
-                        }, 500);
-                        console.log(res, '----企业用户通过扫码进入');
-                      }).catch(function (err) {
-                        setTimeout(function () {
-                          _this2.$app.storage.remove('FRIM_ID');
-                        }, 500);
-                      });
+      uni.login({
+        provider: 'weixin',
+        success: function success(res) {
+          if (res.code) {
+            if (e.detail.code) {
+              _this2.$api.base("post", '/api/v1/auth/wx/miniapp/phone-code-login', {
+                code: res.code,
+                phoneCode: e.detail.code
+              }).then( /*#__PURE__*/function () {
+                var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
+                  var _res$data, _res$data2;
+                  return _regenerator.default.wrap(function _callee$(_context) {
+                    while (1) {
+                      switch (_context.prev = _context.next) {
+                        case 0:
+                          uni.setStorageSync(_config.default.keyname.accessToken, res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.accessToken);
+                          uni.setStorageSync(_config.default.keyname.refreshToken, res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.refreshToken);
+                          // 识别用户是否通过分销码进入小程序
+                          if (uni.getStorageSync('ADMIN_USERID')) {
+                            uni.request({
+                              url: channelUrl + 'ums/umsAdminUser/distributionBindUser',
+                              method: 'POST',
+                              header: {
+                                'content-type': 'application/json'
+                              },
+                              data: {
+                                userId: res.userInfo.id,
+                                adminUserId: uni.getStorageSync('ADMIN_USERID')
+                              },
+                              success: function success(res) {
+                                console.info(res.data, '----扫码接口调用');
+                                setTimeout(function () {
+                                  _this2.$app.storage.remove('ADMIN_USERID');
+                                }, 500);
+                              },
+                              fail: function fail(err) {
+                                console.log(err, '----错误信息');
+                              }
+                            });
+                          }
+                          if (_this2.$app.storage.get('FRIM_ID')) {
+                            _this2.$api.base("post", "/userApi/add-firm-user?firmId=" + parseInt(_this2.$app.storage.get('FRIM_ID')), {}, {
+                              error: false
+                            }).then(function (res) {
+                              _this2.$app.popup.alert(res.msg);
+                              setTimeout(function () {
+                                _this2.$app.storage.remove('FRIM_ID');
+                              }, 500);
+                              console.log(res, '----企业用户通过扫码进入');
+                            }).catch(function (err) {
+                              setTimeout(function () {
+                                _this2.$app.storage.remove('FRIM_ID');
+                              }, 500);
+                            });
+                          }
+                          _this2.$app.url.back();
+                        case 5:
+                        case "end":
+                          return _context.stop();
+                      }
                     }
-                    _this2.$app.url.back();
-                  case 5:
-                  case "end":
-                    return _context.stop();
-                }
-              }
-            }, _callee);
-          }));
-          return function (_x) {
-            return _ref.apply(this, arguments);
-          };
-        }());
-      }
+                  }, _callee);
+                }));
+                return function (_x) {
+                  return _ref.apply(this, arguments);
+                };
+              }());
+            }
+          }
+        }
+      });
+    },
+    cancelLogin: function cancelLogin() {
+      this.$app.url.back();
     }
   }
 };

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

@@ -1 +1 @@
-<ax-body vue-id="35a7246c-1" blank="0" hideIndicatorArea="{{true}}" class="data-v-b237504c" bind:__l="__l" vue-slots="{{['default']}}"><image class="page-background data-v-b237504c" src="/static/img/page-bg01.png"></image><view class="body data-v-b237504c"><view class="title data-v-b237504c"><view class="data-v-b237504c"><view class="h1 data-v-b237504c">您好!</view><view class="h2 data-v-b237504c">欢迎使用中数电动</view></view><image class="logo data-v-b237504c" src="/static/img/logo.svg" mode="widthFix"></image></view><view class="logo-wrap data-v-b237504c"><image class="bg data-v-b237504c" src="/static/img/login-bg.svg" mode="widthFix"></image></view><view class="footer data-v-b237504c" style="padding-left:0;padding-right:0;"><button class="submit data-v-b237504c" style="margin-left:35px;width:calc(100% - 70px);" open-type="getPhoneNumber" disabled="{{!agreement}}" data-event-opts="{{[['getphonenumber',[['onGetPhoneNumber',['$event']]]]]}}" bindgetphonenumber="__e"><text class="ax ax-iconblock i-weixin data-v-b237504c"></text><text class="data-v-b237504c">微信用户一键登录</text></button><view class="cancel data-v-b237504c">取消返回</view><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="agreement data-v-b237504c" style="font-size:17px;" bindtap="__e"><view class="{{['mask','data-v-b237504c',(agreement)?'active':'']}}"><text class="ax ax-iconline i-select data-v-b237504c"></text></view><text class="data-v-b237504c">我已阅读并理解和同意</text><text data-event-opts="{{[['tap',[['checkPrivacy']]]]}}" class="em data-v-b237504c" catchtap="__e">《隐私政策协议》</text></view></view></view></ax-body>
+<ax-body vue-id="35a7246c-1" blank="0" hideIndicatorArea="{{true}}" class="data-v-b237504c" bind:__l="__l" vue-slots="{{['default']}}"><image class="page-background data-v-b237504c" src="/static/img/page-bg01.png"></image><view class="body data-v-b237504c"><view class="title data-v-b237504c"><view class="data-v-b237504c"><view class="h1 data-v-b237504c">您好!</view><view class="h2 data-v-b237504c">欢迎使用中数电动</view></view><image class="logo data-v-b237504c" src="/static/img/logo.svg" mode="widthFix"></image></view><view class="logo-wrap data-v-b237504c"><image class="bg data-v-b237504c" src="/static/img/login-bg.svg" mode="widthFix"></image></view><view class="footer data-v-b237504c" style="padding-left:0;padding-right:0;"><button class="submit data-v-b237504c" style="margin-left:35px;width:calc(100% - 70px);" open-type="getPhoneNumber" disabled="{{!agreement}}" data-event-opts="{{[['getphonenumber',[['onGetPhoneNumber',['$event']]]]]}}" bindgetphonenumber="__e"><text class="ax ax-iconblock i-weixin data-v-b237504c"></text><text class="data-v-b237504c">微信用户一键登录</text></button><view data-event-opts="{{[['tap',[['cancelLogin',['$event']]]]]}}" class="cancel data-v-b237504c" bindtap="__e">取消登录</view><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="agreement data-v-b237504c" style="font-size:17px;" bindtap="__e"><view class="{{['mask','data-v-b237504c',(agreement)?'active':'']}}"><text class="ax ax-iconline i-select data-v-b237504c"></text></view><text class="data-v-b237504c">我已阅读并理解和同意</text><text data-event-opts="{{[['tap',[['checkPrivacy']]]]}}" class="em data-v-b237504c" catchtap="__e">《隐私政策协议》</text></view></view></view></ax-body>

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/map/map.js

@@ -407,7 +407,7 @@ var _default = {
       this.list.index = -1;
     },
     gotoSiteDetail: function gotoSiteDetail() {
-      this.$app.url.goto('/pages/site/site?item=' + JSON.stringify(this.list.data[this.list.index]));
+      this.$app.url.goto('/pages/new-site/new-site?item=' + JSON.stringify(this.list.data[this.list.index]));
     }
   }
 };

+ 28 - 61
unpackage/dist/dev/mp-weixin/pages/my/my.js

@@ -115,8 +115,11 @@ try {
     lPainterImage: function () {
       return Promise.all(/*! import() | uni_modules/lime-painter/components/l-painter-image/l-painter-image */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/lime-painter/components/l-painter-image/l-painter-image")]).then(__webpack_require__.bind(null, /*! @/uni_modules/lime-painter/components/l-painter-image/l-painter-image.vue */ 231))
     },
+    lPainterQrcode: function () {
+      return Promise.all(/*! import() | uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode")]).then(__webpack_require__.bind(null, /*! @/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue */ 236))
+    },
     lPainterText: function () {
-      return Promise.all(/*! import() | uni_modules/lime-painter/components/l-painter-text/l-painter-text */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/lime-painter/components/l-painter-text/l-painter-text")]).then(__webpack_require__.bind(null, /*! @/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue */ 236))
+      return Promise.all(/*! import() | uni_modules/lime-painter/components/l-painter-text/l-painter-text */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/lime-painter/components/l-painter-text/l-painter-text")]).then(__webpack_require__.bind(null, /*! @/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue */ 241))
     },
     appNavigation: function () {
       return Promise.all(/*! import() | components/app-navigation/app-navigation */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/app-navigation/app-navigation")]).then(__webpack_require__.bind(null, /*! @/components/app-navigation/app-navigation.vue */ 208))
@@ -212,7 +215,7 @@ __webpack_require__.r(__webpack_exports__);
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(uni, wx) {
+/* WEBPACK VAR INJECTION */(function(uni) {
 
 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
 Object.defineProperty(exports, "__esModule", {
@@ -347,19 +350,11 @@ var _config = _interopRequireDefault(__webpack_require__(/*! @/static/js/config.
 //
 //
 //
-//
-//
-//
-//
-//
-//
-//
 var _default = {
   data: function data() {
     return {
       userinfo: {},
       playbil_img: 'https://hyxhsh.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/bdb/user/avatar/XVsEVGuCCbNv4aee36cc2f76e7050f62ebad3080ad88.jpg/1.jpg',
-      qrCode: null,
       banners: []
     };
   },
@@ -371,7 +366,7 @@ var _default = {
   },
   methods: {
     openFilter: function openFilter() {
-      this.get_qrCode();
+      this.$refs.filter.open();
     },
     // 版头加载完成
     bannerLoadCompleted: function bannerLoadCompleted() {
@@ -386,34 +381,6 @@ var _default = {
         _this.banners = res.data;
       });
     },
-    get_qrCode: function get_qrCode() {
-      var _this2 = this;
-      uni.showLoading();
-      uni.request({
-        url: _config.default.url.request + 'userApi/get-invite-qr',
-        method: 'GET',
-        responseType: 'arraybuffer',
-        header: {
-          'content-type': 'application/json',
-          'token': uni.getStorageSync(_config.default.keyname.userToken)
-        },
-        data: {},
-        success: function success(res) {
-          console.log(res);
-          uni.hideLoading();
-          var arrayBuffer = res.data;
-          var base64 = wx.arrayBufferToBase64(arrayBuffer);
-          _this2.qrCode = 'data:image/png;base64,' + base64;
-          _this2.$refs.filter.open();
-        },
-        fail: function fail(err) {
-          uni.showToast({
-            icon: "error",
-            title: '获取二维码失败' + err
-          });
-        }
-      });
-    },
     savePainter: function savePainter() {
       this.$refs.painter.canvasToTempFilePathSync({
         fileType: "png",
@@ -435,16 +402,16 @@ var _default = {
       });
     },
     refund: function refund() {
-      var _this3 = this;
+      var _this2 = this;
       this.$app.popup.confirm("退款按照购券记录进行逐笔退款,可能产生多笔退款到账记录,请注意查收。", "退款说明").then(function (confirm) {
         if (confirm) {
-          _this3.$api.base("post", '/orderApi/refund', {}).then(function (res) {
-            if (res.code == 0) {
-              _this3.$app.popup.alert('退款成功!').then(function () {
-                _this3.getMyAccount();
+          _this2.$api.base("put", '/applet/v1/order/refundOrder', {}).then(function (res) {
+            if (res.code == '00000') {
+              _this2.$app.popup.alert(res.data).then(function () {
+                _this2.getMyAccount();
               });
             } else {
-              _this3.$app.popup.alert(res.msg);
+              _this2.$app.popup.alert(res.data);
             }
           });
         }
@@ -456,23 +423,23 @@ var _default = {
     },
     // 打开客服
     customerService: function customerService() {
-      var _this4 = this;
+      var _this3 = this;
       var cs = this.$config.customerService;
       this.$app.act.customerService(cs.id, cs.url).catch(function (err) {
         console.log(err);
-        _this4.$app.popup.alert('客服中心失联啦,请联系管理员!');
+        _this3.$app.popup.alert('客服中心失联啦,请联系管理员!');
       });
     },
     getMyAccount: function getMyAccount() {
-      var _this5 = this;
+      var _this4 = this;
       // let channelUrl = 'http://192.168.110.241:9120/zs/channel/admin/'
       var channelUrl = 'https://channel-api.zonelife.cn/zs/channel/admin/';
       this.$api.base("get", "/applet/v1/user/getUserInfo", {}, {
         error: false
       }).then(function (res) {
         console.log(res);
-        _this5.userinfo = res.data;
-        _this5.$app.storage.set('USER_INFO', res.data);
+        _this4.userinfo = res.data;
+        _this4.$app.storage.set('USER_INFO', res.data);
         // 识别用户是否通过分销码进入小程序
         if (uni.getStorageSync('ADMIN_USERID')) {
           uni.request({
@@ -487,7 +454,7 @@ var _default = {
             },
             success: function success(res) {
               setTimeout(function () {
-                _this5.$app.storage.remove('ADMIN_USERID');
+                _this4.$app.storage.remove('ADMIN_USERID');
               }, 500);
             },
             fail: function fail(err) {
@@ -498,31 +465,31 @@ var _default = {
       });
     },
     get_firmId: function get_firmId() {
-      var _this6 = this;
+      var _this5 = this;
       if (this.$app.storage.get('FRIM_ID')) {
         this.$api.base("post", "/userApi/add-firm-user?firmId=" + parseInt(this.$app.storage.get('FRIM_ID')), {}, {
           error: false
         }).then(function (res) {
-          _this6.$app.popup.alert(res.msg);
+          _this5.$app.popup.alert(res.msg);
           setTimeout(function () {
-            _this6.$app.storage.remove('FRIM_ID');
+            _this5.$app.storage.remove('FRIM_ID');
           }, 500);
         }).catch(function (err) {
           setTimeout(function () {
-            _this6.$app.storage.remove('FRIM_ID');
+            _this5.$app.storage.remove('FRIM_ID');
           }, 500);
         });
       }
     },
     onGetPhoneNumber: function onGetPhoneNumber(e) {
-      var _this7 = this;
+      var _this6 = this;
       uni.login({
         provider: 'weixin',
         success: function success(result) {
           console.log(result, '微信登录');
           if (result.code) {
             if (e.detail.code) {
-              _this7.$api.base("post", '/api/v1/auth/wx/miniapp/phone-code-login', {
+              _this6.$api.base("post", '/api/v1/auth/wx/miniapp/phone-code-login', {
                 code: result.code,
                 phoneCode: e.detail.code
               }).then(function (res) {
@@ -530,9 +497,9 @@ var _default = {
                 console.log(res);
                 uni.setStorageSync(_config.default.keyname.accessToken, res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.accessToken);
                 uni.setStorageSync(_config.default.keyname.refreshToken, res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.refreshToken);
-                _this7.$app.storage.set('USER_INFO', res.data);
-                _this7.getMyAccount();
-                _this7.get_firmId();
+                _this6.$app.storage.set('USER_INFO', res.data);
+                _this6.getMyAccount();
+                _this6.get_firmId();
               });
             }
           }
@@ -543,7 +510,7 @@ var _default = {
   }
 };
 exports.default = _default;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js */ 1)["default"]))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
 

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

@@ -6,6 +6,7 @@
     "l-painter": "/uni_modules/lime-painter/components/l-painter/l-painter",
     "l-painter-view": "/uni_modules/lime-painter/components/l-painter-view/l-painter-view",
     "l-painter-image": "/uni_modules/lime-painter/components/l-painter-image/l-painter-image",
+    "l-painter-qrcode": "/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode",
     "l-painter-text": "/uni_modules/lime-painter/components/l-painter-text/l-painter-text",
     "app-navigation": "/components/app-navigation/app-navigation"
   }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/my/my.wxml


+ 9 - 2
unpackage/dist/dev/mp-weixin/pages/my/my.wxss

@@ -237,9 +237,16 @@ app-navigation.data-v-0be17cc6 {
   color: #fff;
 }
 .enterprise-tips.data-v-0be17cc6 {
+  margin: auto;
+  margin-top: 10rpx;
+  background: linear-gradient(to right, #8ff8fb, #47aeff);
+  width: 140rpx;
+  height: 60rpx;
   text-align: center;
-  font-size: 28rpx;
-  color: #ff0004;
+  line-height: 60rpx;
+  font-size: 24rpx;
+  border-radius: 10rpx;
+  color: #fff;
 }
 .refund_btn.data-v-0be17cc6 {
 	position: absolute;

+ 2 - 9
unpackage/dist/dev/mp-weixin/pages/new-site/new-site.js

@@ -125,7 +125,7 @@ var render = function () {
   var _vm = this
   var _h = _vm.$createElement
   var _c = _vm._self._c || _h
-  var g0 = _vm.stationDetail.pictures.length
+  var g0 = _vm.stationDetail.pictures ? _vm.stationDetail.pictures.length : null
   var l0 = _vm.__map(_vm.filteredConnectorList, function (item, index) {
     var $orig = _vm.__get_orig(item)
     var m0 = _vm.getSatesObj(item)
@@ -367,13 +367,6 @@ var _default = {
   onLoad: function onLoad(option) {
     console.log(option); //打印出上个页面传递的参数。
     this.stationInfo = JSON.parse(option.item);
-    if (this.stationInfo.pictures) {
-      //添加站点图片
-      var imgArr = this.stationInfo.pictures.split(",");
-      if (imgArr.length > 0) {
-        this.tops = imgArr;
-      }
-    }
     this.getStationsInfo();
     this.getConfigStationInfo();
   },
@@ -553,7 +546,7 @@ var _default = {
       if (item.deviceStatus == 0 || item.deviceStatus == 255) {
         return;
       }
-      this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.id + "&deviceStatus=" + item.deviceStatus);
+      this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.connectorId + "&deviceStatus=" + item.status);
     },
     //去查看全部电站
     toDeiceAll: function toDeiceAll() {

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/new-site/new-site.wxml


+ 1 - 2
unpackage/dist/dev/mp-weixin/pages/new-site/new-site.wxss

@@ -13,7 +13,6 @@ ax-body.data-v-b6cbd5f4 {
   right: 0;
   z-index: 0;
   width: 100%;
-  height: 520rpx;
   /* position: relative; */
 }
 .banner-swiper.data-v-b6cbd5f4 {
@@ -44,7 +43,7 @@ ax-body.data-v-b6cbd5f4 {
 .site-content.data-v-b6cbd5f4 {
   width: 100%;
   position: absolute;
-  top: 320rpx;
+  /* top: 320rpx; */
   background: linear-gradient(180deg, #ffffff 0%, #f6faff 82%, #f6faff 100%);
   border-radius: 32rpx 32rpx 0rpx 0rpx;
   padding: 0 20rpx 0 20rpx;

+ 20 - 11
unpackage/dist/dev/mp-weixin/pages/order/order.js

@@ -292,6 +292,15 @@ exports.default = void 0;
 //
 //
 //
+//
+//
+//
+//
+//
+//
+//
+//
+//
 var _default = {
   onLoad: function onLoad(options) {
     this.shortcut({
@@ -299,7 +308,7 @@ var _default = {
     });
     if (options.index) {
       this.tabs.index = options.index;
-      this.formSubmitPara.type = 1;
+      this.formSubmitPara.status = 1;
     } else {
       this.loadData();
     }
@@ -311,13 +320,13 @@ var _default = {
         index: 0,
         data: [{
           name: '全部订单',
-          type: -1
+          status: ''
         }, {
           name: '进行中',
-          type: 1
+          status: 1
         }, {
           name: '已完成',
-          type: 2
+          status: 3
         }]
       },
       shortcuts: [{
@@ -343,11 +352,11 @@ var _default = {
       },
       formSubmitPara: {
         //提交的参数信息
-        startDate: '',
-        endDate: '',
+        startTime: '',
+        endTime: '',
         pageNum: 1,
         pageSize: 10,
-        type: -1 //全部订单
+        status: '' //全部订单
       }
     };
   },
@@ -390,8 +399,8 @@ var _default = {
     },
     submit: function submit() {
       console.log(this.filter);
-      this.formSubmitPara.startDate = this.filter.start;
-      this.formSubmitPara.endDate = this.filter.end;
+      this.formSubmitPara.startTime = this.filter.start + ' 00:00:00';
+      this.formSubmitPara.endTime = this.filter.end + ' 23:59:59';
       this.loadData();
       this.$refs.filter.close();
     },
@@ -400,7 +409,7 @@ var _default = {
     },
     loadData: function loadData(append) {
       var _this = this;
-      this.formSubmitPara.type = this.tabs.data[this.tabs.index].type;
+      this.formSubmitPara.status = this.tabs.data[this.tabs.index].status;
       if (append) {
         //点击加载更多的调用
         this.formSubmitPara.pageNum = this.formSubmitPara.pageNum + 1;
@@ -409,7 +418,7 @@ var _default = {
         this.orders.data = [];
         this.orders.total = 0;
       }
-      this.$api.base("post", "/chargeApi/queryOrderList", this.formSubmitPara, {}).then(function (res) {
+      this.$api.base("post", "/applet/v1/charge/getPage", this.formSubmitPara, {}).then(function (res) {
         console.log("订单列表:", res);
         _this.orders.data = _this.orders.data.concat(res.table.rows);
         _this.orders.total = res.table.total;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/order/order.wxml


+ 22 - 12
unpackage/dist/dev/mp-weixin/pages/recharge-log/recharge-log.js

@@ -220,6 +220,11 @@ exports.default = void 0;
 //
 //
 //
+//
+//
+//
+//
+//
 var _default = {
   onLoad: function onLoad() {
     this.loadData();
@@ -232,9 +237,7 @@ var _default = {
       },
       search_data: {
         pageNum: 1,
-        pageSize: 10,
-        orderByColumn: 'payTime',
-        isAsc: 'desc'
+        pageSize: 10
       }
     };
   },
@@ -250,20 +253,27 @@ var _default = {
     },
     loadData: function loadData(append) {
       var _this = this;
+      var currentPage = this.search_data.pageNum;
       if (append) {
         this.search_data.pageNum++;
-        // 追加模式,由loadmore触发
-        this.$api.base("post", "/orderApi/getOrderList", this.search_data, {}).then(function (res) {
-          _this.logs.data = _this.logs.data.concat(res.orderLsit.rows);
-        });
       } else {
         this.search_data.pageNum = 1;
-        // 初始化模式,一般由onLoad触发
-        this.$api.base("post", "/orderApi/getOrderList", this.search_data, {}).then(function (res) {
-          _this.logs.total = res.orderLsit.total;
-          _this.logs.data = res.orderLsit.rows;
-        });
       }
+      this.$api.base("post", "/applet/v1/order/getTicketRecords", this.search_data, {}).then(function (res) {
+        if (!append || currentPage + 1 === _this.search_data.pageNum) {
+          if (append) {
+            _this.logs.data = _this.logs.data.concat(res.data.records);
+          } else {
+            _this.logs.total = res.data.total;
+            _this.logs.data = res.data.records;
+          }
+        }
+      }).catch(function (error) {
+        if (append) {
+          _this.search_data.pageNum = currentPage;
+        }
+        console.error('获取充值记录失败:', error);
+      });
     },
     topage_order: function topage_order(item) {
       this.$app.url.goto('/pages/order-detail/order-detail?orderId=' + item.chargeOrderId);

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/recharge-log/recharge-log.wxml


+ 2 - 2
unpackage/dist/dev/mp-weixin/pages/site-more/site-more.js

@@ -104,7 +104,7 @@ try {
       return __webpack_require__.e(/*! import() | components/ax-body/ax-body */ "components/ax-body/ax-body").then(__webpack_require__.bind(null, /*! @/components/ax-body/ax-body.vue */ 194))
     },
     axIosIndicator: function () {
-      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 241))
+      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 246))
     },
   }
 } catch (e) {
@@ -403,7 +403,7 @@ var _default = {
       if (item.deviceStatus == 0 || item.deviceStatus == 255) {
         return;
       }
-      this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.id + "&deviceStatus=" + item.deviceStatus);
+      this.$app.url.goto('/pages/terminal/terminal?deviceId=' + item.connectorId + "&deviceStatus=" + item.status);
     },
     //扫一扫
     sacn: function sacn() {

+ 77 - 198
unpackage/dist/dev/mp-weixin/pages/terminal/terminal.js

@@ -104,7 +104,7 @@ try {
       return __webpack_require__.e(/*! import() | components/ax-body/ax-body */ "components/ax-body/ax-body").then(__webpack_require__.bind(null, /*! @/components/ax-body/ax-body.vue */ 194))
     },
     axIosIndicator: function () {
-      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 241))
+      return __webpack_require__.e(/*! import() | components/ax-ios-indicator/ax-ios-indicator */ "components/ax-ios-indicator/ax-ios-indicator").then(__webpack_require__.bind(null, /*! @/components/ax-ios-indicator/ax-ios-indicator.vue */ 246))
     },
     axPopup: function () {
       return __webpack_require__.e(/*! import() | components/ax-popup/ax-popup */ "components/ax-popup/ax-popup").then(__webpack_require__.bind(null, /*! @/components/ax-popup/ax-popup.vue */ 201))
@@ -131,30 +131,12 @@ var render = function () {
   var _vm = this
   var _h = _vm.$createElement
   var _c = _vm._self._c || _h
-  var m0 = _vm.getVolt()
+  var m0 = !(_vm.personal == 1) ? _vm.getCurrEcPrice() : null
   var g0 =
-    _vm.personal == 1 && _vm.nowPriceTime.price
-      ? parseFloat(_vm.nowPriceTime.price).toFixed(4)
-      : null
-  var g1 =
-    !(_vm.personal == 1) && _vm.nowPriceTime.price
-      ? parseFloat(_vm.nowPriceTime.price).toFixed(4)
-      : null
-  var m1 = !(_vm.personal == 1) ? _vm.getCurrEcPrice() : null
-  var g2 =
     _vm.discountInfo && _vm.personal == 1 && _vm.discountInfo.discount
       ? parseFloat(_vm.discountInfo.discount).toFixed(4)
       : null
-  var g3 =
-    _vm.nowPriceTime.firmPrice ||
-    _vm.$app.storage.get("USER_INFO").firmType === 1
-  var g4 =
-    g3 && _vm.nowPriceTime.firmPrice
-      ? parseFloat(_vm.nowPriceTime.firmPrice).toFixed(4)
-      : null
-  var m2 = _vm.getPriceLable(_vm.nowPriceTime.timeType)
-  var m3 = _vm.getDeviceStatusLable(_vm.deviceInfo.deviceStatus)
-  var g5 =
+  var g1 =
     _vm.payment_msg != null
       ? (_vm.payment_msg.maspAmount + _vm.payment_msg.maspRealAmount).toFixed(2)
       : null
@@ -178,13 +160,6 @@ var render = function () {
         m0: m0,
         g0: g0,
         g1: g1,
-        m1: m1,
-        g2: g2,
-        g3: g3,
-        g4: g4,
-        m2: m2,
-        m3: m3,
-        g5: g5,
       },
     }
   )
@@ -377,7 +352,6 @@ exports.default = void 0;
 //
 //
 //
-//
 var _default = {
   onLoad: function onLoad(opts) {
     console.log("参数信息:", opts);
@@ -389,7 +363,6 @@ var _default = {
     this.deviceStatus = opts.deviceStatus;
   },
   onShow: function onShow() {
-    var _this2 = this;
     this.queryInChange(this.deviceId, this.deviceStatus);
     /**
      * 刷新用户信息
@@ -399,28 +372,28 @@ var _default = {
       this.$app.url.goto('/pages/login/login');
       return;
     }
-    this.$api.login({
-      "checkStatus": 1
-    }).then(function () {
-      _this2.userInfo = _this2.$app.storage.get(_this2.$config.keyname.userInfo);
-      if (_this2.userInfo.ecId) {
-        //查询该集团账户是否正常使用。
-        _this2.$api.base("post", "/chargeApi/queryEcInfo", {
-          "ecId": _this2.userInfo.ecId
-        }, {}).then(function (res) {
-          if (res.ecInfo && res.ecInfo.ecStatus == 1) {
-            _this2.isEc = true;
-          }
-        });
-      }
-    });
+    // this.$api.login({
+    // 	"checkStatus": 1
+    // }).then(() => {
+    // 	this.userInfo = this.$app.storage.get(this.$config.keyname.userInfo);
+    // 	if (this.userInfo.ecId) {
+    // 		//查询该集团账户是否正常使用。
+    // 		this.$api.base("post", "/chargeApi/queryEcInfo", {
+    // 			"ecId": this.userInfo.ecId
+    // 		}, {}).then(res => {
+    // 			if (res.ecInfo && res.ecInfo.ecStatus == 1) {
+    // 				this.isEc = true;
+    // 			}
+    // 		})
+    // 	}
+    // })
   },
   mounted: function mounted() {
-    var _this3 = this;
+    var _this2 = this;
     this.get_paymentMsg();
     setTimeout(function () {
-      if (_this3.payment_msg != null) {
-        _this3.$refs.filter.open();
+      if (_this2.payment_msg != null) {
+        _this2.$refs.filter.open();
       }
     }, 500);
   },
@@ -467,66 +440,50 @@ var _default = {
       }
       this.getDeviceInfo(deviceId); //获取设备、站的详情信息
       this.getAccountInfo(); //获取账户信息
-      /* this.$api.base("post","/chargeApi/queryInChangeByUserId",{},{}).then(res=>{
-      	if(res.isChange == 1){
-      		this.orderInfo = res.orderInfo;
-      		//用户有充电中的订单
-      		//if(res.orderInfo.deviceId == deviceId){
-      			// 跳转
-      			this.$app.url.goto('/pages/charging/charging?orderId='+this.orderInfo.id+"&deviceId="+deviceId,false);
-      		//}
-      	}else{
-      		
-      	}
-      	
-      	
-      }) */
     },
     //获取设备的详情信息
     getDeviceInfo: function getDeviceInfo(deviceId) {
-      var _this4 = this;
-      this.$api.base("post", "/chargeApi/getDevicesDetial", {
-        "deviceId": deviceId
+      var _this3 = this;
+      this.$api.base("get", "/applet/v1/station/connector/detail", {
+        "connectorId": deviceId
       }, {}).then(function (res) {
-        _this4.deviceInfo = res.device;
-        _this4.nowPriceTime = res.nowPriceTime;
-        _this4.stationInfo = res.stationInfo;
+        _this3.deviceInfo = res.data;
+        _this3.nowPriceTime = res.nowPriceTime;
+        _this3.stationInfo = res.stationInfo;
         if (res.discountInfo) {
-          _this4.discountInfo = res.discountInfo;
+          _this3.discountInfo = res.discountInfo;
         }
-        if (_this4.deviceInfo.tipsStatus == 1) {
-          _this4.$app.popup.alert(_this4.deviceInfo.tipsContent, "温馨提示");
+        if (_this3.deviceInfo.tipsStatus == 1) {
+          _this3.$app.popup.alert(_this3.deviceInfo.tipsContent, "温馨提示");
         }
       });
     },
-    get_paymentMsg: function get_paymentMsg() {
-      var _this5 = this;
-      // maspStatus(1:待补缴,2:已补缴)realPredictServiceCost平台;maspAmount第三方
-      this.$api.base("post", "/chargeApi/queryOrderList-arrearage", {}, {}).then(function (res) {
-        _this5.payment_msg = res.data;
-      });
-    },
+    // get_paymentMsg() {
+    // 	// maspStatus(1:待补缴,2:已补缴)realPredictServiceCost平台;maspAmount第三方
+    // 	this.$api.base("post", "/chargeApi/queryOrderList-arrearage", {}, {}).then(res => {
+    // 		this.payment_msg = res.data
+    // 	})
+    // },
     //获取账户信息
-    getAccountInfo: function getAccountInfo() {
-      var _this6 = this;
-      if (this.personal == 1) {
-        //获取个人账户信息
-        this.$api.base("post", "/chargeApi/getUserAccount", {}, {}).then(function (res) {
-          _this6.accountInfo.balance = res.userAccount.balance;
-        });
-      } else {
-        //获取集团账户信息
-        this.$api.base("post", "/chargeApi/getEcUserAccount", {}, {
-          error: false
-        }).then(function (res) {
-          _this6.ecInfo = res.ecInfo;
-          _this6.accountInfo.balance = res.ecUserAccount.balance;
-        }).catch(function (err) {
-          _this6.accountInfo.balance = 0;
-          _this6.$app.popup.alert(err.msg, "温馨提示");
-        });
-      }
-    },
+    // getAccountInfo() {
+    // 	if (this.personal == 1) {
+    // 		//获取个人账户信息
+    // 		this.$api.base("post", "/chargeApi/getUserAccount", {}, {}).then(res => {
+    // 			this.accountInfo.balance = res.userAccount.balance;
+    // 		})
+    // 	} else {
+    // 		//获取集团账户信息
+    // 		this.$api.base("post", "/chargeApi/getEcUserAccount", {}, {
+    // 			error: false
+    // 		}).then(res => {
+    // 			this.ecInfo = res.ecInfo;
+    // 			this.accountInfo.balance = res.ecUserAccount.balance;
+    // 		}).catch(err => {
+    // 			this.accountInfo.balance = 0;
+    // 			this.$app.popup.alert(err.msg, "温馨提示");
+    // 		})
+    // 	}
+    // },
     //切换账户
     changeAccount: function changeAccount(type) {
       if (this.personal == type) {
@@ -562,63 +519,20 @@ var _default = {
       var v = this.deviceInfo.power / this.deviceInfo.current * 1000;
       return v;
     },
-    //映射 峰  平  谷
-    getPriceLable: function getPriceLable(type) {
-      //时间类型 1 谷 2 平 3 峰
-      var str = "";
-      switch (type) {
-        case 1:
-          str = "谷";
-          break;
-        case 2:
-          str = "平";
-          break;
-        case 3:
-          str = "峰";
-          break;
-      }
-      return str;
-    },
-    //映射订单状态名称()
-    getDeviceStatusLable: function getDeviceStatusLable(status) {
-      //设备状态 0:离网1:空闲2:占用(未充电)3:占用(充电中)4:占用(预约锁定)255:故障
-      var str = "";
-      switch (status) {
-        case 0:
-          str = "离网";
-          break;
-        case 1:
-          str = "空闲";
-          break;
-        case 2:
-          str = "占用";
-          break;
-        case 3:
-          str = "占用";
-          break;
-        case 4:
-          str = "占用";
-          break;
-        case 255:
-          str = "故障";
-          break;
-      }
-      return str;
-    },
     startup: function startup() {
-      var _this7 = this;
+      var _this4 = this;
       if (this.visit) {
         this.$app.popup.alert("该充电枪被占用或存在异常,请重新尝试或更换其他充电枪。", "温馨提示");
         return;
       }
 
       //判断账户余额是否大于两元
-      if (this.accountInfo.balance - 3 <= 0) {
+      if (this.deviceInfo.availableBalance <= 3) {
         return this.$app.popup.confirm("无法启动充电,抵扣余量需大于3元,请先购买充电券!", "温馨提示!", {
           confirmText: "立即购券"
         }).then(function (confirm) {
           if (confirm) {
-            _this7.$app.url.goto('/pages/coupon-buy/coupon-buy', true);
+            _this4.$app.url.goto('/pages/coupon-buy/coupon-buy', true);
           }
         });
       }
@@ -640,71 +554,36 @@ var _default = {
     },
     //统一下单并启动接口
     startChangeAndOrder: function startChangeAndOrder() {
-      var _this8 = this;
+      var _this5 = this;
       var obj = {
-        userId: this.userInfo.id,
-        deviceId: this.deviceInfo.id,
-        orderType: this.personal == 2 ? 2 : 1 //订单类型 1 个人订单 2 集团订单
+        orderType: this.deviceInfo.isEcUser ? 1 : 0,
+        //订单类型 0-平台 1-企业
+        equipmentId: this.deviceInfo.equipmentId,
+        stationId: this.deviceInfo.stationId,
+        couponID: null,
+        EquipAuthSeq: '',
+        ConnectorID: ''
       };
-
-      this.$api.base("post", "/chargeApi/startChangeAndOrder", obj, {}).then(function (res) {
+      this.$api.base("post", "/applet/v1/charge/invokeCharge", obj, {}).then(function (res) {
         //下单成功,并进行了订单预充值
-        _this8.orderInfo = res.orderInfo;
+        _this5.orderInfo = res.orderInfo;
         if (res.flg && res.flg == 1) {
           //用户有充电中的订单
-          _this8.$app.popup.confirm("您有一个进行中充电订单,不可再次启动。", null, {
+          _this5.$app.popup.confirm("您有一个进行中充电订单,不可再次启动。", null, {
             showCancel: false,
             confirmText: "查看订单"
           }).then(function (cres) {
-            _this8.$app.url.goto('/pages/charging/charging?orderId=' + _this8.orderInfo.id + "&deviceId=" + _this8.deviceInfo.id, false);
+            _this5.$app.url.goto('/pages/charging/charging?orderId=' + _this5.orderInfo.id + "&deviceId=" + _this5.deviceInfo.id, false);
           });
         } else {
           //正常启动充电订单
-          _this8.$app.url.goto('/pages/charging/charging?orderId=' + _this8.orderInfo.id + "&deviceId=" + _this8.deviceInfo.id, false);
+          _this5.$app.url.goto('/pages/charging/charging?orderId=' + _this5.orderInfo.id + "&deviceId=" + _this5.deviceInfo.id, false);
         }
-        //this.$app.popup.loading(true,{title:"启动中...."})
-        //延迟5s查询一下订单,看看是否真的启动成功
-        //setTimeout(()=>this.checkedStartStatus(),5000);
       });
     },
-    /* // 通过充电桩编号(sn)检测该设备是否插枪,是否可以进行后续的下单,启动操作
-    checkDeviceReady(){
-    	this.$api.base("post","/chargeApi/checkDeviceReady",{"sn":this.deviceInfo.deviceNo},{}).then(res=>{
-    		if(res.code == 0){
-    			//充电桩已经插枪准备好了,可以进行下单充值操作
-    			this.chargeAndOrder();
-    		}
-    	})
-    },
-    // 进行下单,并进行接口充值,准备启动充电
-    chargeAndOrder(){
-    	var obj = {
-    		userId : this.userInfo.id,
-    		deviceId : this.deviceInfo.id,
-    		orderType : this.personal == 2 ? 2 : 1,//订单类型 1 个人订单 2 集团订单
-    	}
-    	this.$api.base("post","/chargeApi/chargeAndOrder",obj,{}).then(res=>{
-    		if(res.code == 0){
-    			//下单成功,并进行了订单预充值
-    			this.orderInfo = res.orderInfo;
-    			//通知已经充值成功,可以进行设备充电的启动
-    			this.changePayAndStart();
-    		}
-    	})
-    },
-    // 支付成功启动充电通知
-    changePayAndStart(){
-    	this.$api.base("post","/chargeApi/changePayAndStart",{"id":this.orderInfo.id},{}).then(res=>{
-    		if(res.code == 0){
-    			this.$app.popup.loading(ture,{title:"启动中...."})
-    			//延迟5s查询一下订单,看看是否真的启动成功
-    			setTimeout(()=>this.checkedStartStatus(),5000);
-    		}
-    	})
-    }, */
     // 延迟5s查询一下订单,看看是否真的启动成功
     checkedStartStatus: function checkedStartStatus() {
-      var _this9 = this;
+      var _this6 = this;
       this.$api.base("post", "/chargeApi/checkedStartStatus", {
         "id": this.orderInfo.id
       }, {}).then(function (res) {
@@ -714,20 +593,20 @@ var _default = {
             if (respObj.status == 1) {
               uni.hideLoading();
               //状态为1说明正常启动
-              _this9.$app.url.goto('/pages/charging/charging?orderId=' + _this9.orderInfo.id + "&deviceId=" + _this9.deviceInfo.id, false);
+              _this6.$app.url.goto('/pages/charging/charging?orderId=' + _this6.orderInfo.id + "&deviceId=" + _this6.deviceInfo.id, false);
             } else {
               //其他状态,说明充电桩,未启动。或其他问题,需要再次进行进行验证
-              if (_this9.checkNum < 20) {
-                _this9.checkNum = _this9.checkNum + 1;
+              if (_this6.checkNum < 20) {
+                _this6.checkNum = _this6.checkNum + 1;
                 //延迟2s查询一下订单,看看是否真的启动成功
                 setTimeout(function () {
-                  return _this9.checkedStartStatus();
+                  return _this6.checkedStartStatus();
                 }, 2000);
               }
             }
           } else {
             uni.hideLoading();
-            _this9.$app.popup.alert(respObj.msg, "温馨提示");
+            _this6.$app.popup.alert(respObj.msg, "温馨提示");
           }
         } else {
           uni.hideLoading();

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/terminal/terminal.wxml


+ 345 - 343
unpackage/dist/dev/mp-weixin/pages/terminal/terminal.wxss

@@ -1,370 +1,372 @@
 .data-v-26d32206 ax-custom-title {
-	z-index: 9999 !important;
+  z-index: 9999 !important;
 }
-.page-background.data-v-26d32206{
-	display: block;
-	position: fixed;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
+.page-background.data-v-26d32206 {
+  /* display: block; */
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  pointer-events: none;
 }
-.body.data-v-26d32206{
-	width: 100%;
-	height: 100%;
-	overflow: auto;
-	padding-bottom: 130px;
-	position: relative;
-	z-index: 1;
+.body.data-v-26d32206 {
+  width: 100%;
+  min-height: 100vh;
+  overflow: auto;
+  padding-bottom: 130px;
+  position: relative;
+  z-index: 1;
 }
-.body.data-v-26d32206::-webkit-scrollbar{
-	display: none;
+.body.data-v-26d32206::-webkit-scrollbar {
+  display: none;
 }
-.body.visit.data-v-26d32206{
-	padding-bottom: 0px;
+.body.visit.data-v-26d32206 {
+  padding-bottom: 0px;
 }
-.block.data-v-26d32206{
-	padding: 0 10px;
+.block.data-v-26d32206 {
+  padding: 0 10px;
 }
-.block + .block.data-v-26d32206{
-	margin-top: 10px;
+.block + .block.data-v-26d32206 {
+  margin-top: 10px;
 }
 /* 主图 */
-.host-graph.data-v-26d32206{
-	display: block;
-	position: fixed;
-	top: 100rpx;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	z-index: 100;
+.host-graph.data-v-26d32206 {
+  display: block;
+  width: 100%;
+  height: 100%;
+  z-index: 100;
+  pointer-events: none;
 }
 /* 主参数 */
-.parameter.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	padding: 0 10px;
-	margin: 0 20px;
-	margin-top: 10px;
-	margin-bottom: 20px;
-}
-.parameter .param.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	flex-direction: column;
-}
-.parameter .param .value.data-v-26d32206{
-	font-size: 20px;
-	font-weight: bold;
-}
-.parameter .param .name.data-v-26d32206{
-	font-size: 14px;
-	color: #aaa;
-	margin-top: 7px;
+.parameter.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 10px;
+  margin: 0 20px;
+  margin-top: 10px;
+  margin-bottom: 20px;
+}
+.parameter .param.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+.parameter .param .value.data-v-26d32206 {
+  font-size: 20px;
+  font-weight: bold;
+}
+.parameter .param .name.data-v-26d32206 {
+  font-size: 14px;
+  color: #aaa;
+  margin-top: 7px;
+}
+.lable.data-v-26d32206 {
+  width: 200rpx;
 }
 /* 卡片 */
-.card.data-v-26d32206{
-	background-color: #fff;
-	border-radius: 8px;
-	padding: 10px;
-	box-shadow: 0 0 10px rgba(0,0,0,0.05);
-}
-.card .title.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	font-size: 15px;
-	font-weight: bold;
-	padding-bottom: 10px;
-	padding-left: 10px;
-	border-bottom: 1px solid #ddd;
-}
-.card .title .more.data-v-26d32206{
-	font-size: 14px;
-	color: #aaa;
-	font-weight: normal;
-}
-.card .title .more .icon.data-v-26d32206{
-	margin-left: 5px;
-}
-.card .cell.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	font-size: 14px;
-	height: 32px;
-	padding: 0 10px;
-}
-.cell .contet.data-v-26d32206{
-	color: #aaa;
-}
-.cell .obsolete.data-v-26d32206{
-	font-size: 12px;
-	text-decoration: line-through;
-	color: #aaa;
-	margin-right: 5px;
-}
-.cell .obsolete .money.data-v-26d32206{
-	font-size: inherit;
-	color: inherit;
-	font-weight: normal;
-}
-.cell .money.data-v-26d32206{
-	font-size: 16px;
-	font-weight: bold;
-	color: #f44033;
+.card.data-v-26d32206 {
+  background-color: #fff;
+  border-radius: 8px;
+  padding: 10px;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
+}
+.card .title.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 15px;
+  font-weight: bold;
+  padding-bottom: 10px;
+  padding-left: 10px;
+  border-bottom: 1px solid #ddd;
+}
+.card .title .more.data-v-26d32206 {
+  font-size: 14px;
+  color: #aaa;
+  font-weight: normal;
+}
+.card .title .more .icon.data-v-26d32206 {
+  margin-left: 5px;
+}
+.card .cell.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 14px;
+  height: 32px;
+  padding: 0 10px;
+}
+.cell .contet.data-v-26d32206 {
+  color: #aaa;
+}
+.cell .obsolete.data-v-26d32206 {
+  font-size: 12px;
+  text-decoration: line-through;
+  color: #aaa;
+  margin-right: 5px;
+}
+.cell .obsolete .money.data-v-26d32206 {
+  font-size: inherit;
+  color: inherit;
+  font-weight: normal;
+}
+.cell .money.data-v-26d32206 {
+  font-size: 16px;
+  font-weight: bold;
+  color: #f44033;
 }
 /* 开关 */
-.switch.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	width: 110px;
-	height: 30px;
-	font-size: 14px;
-	border-radius: 100pc;
-	background-color: #fff;
-	position: relative;
-	color: #333;
-}
-.switch > text.data-v-26d32206{
-	flex: 1;
-	display: flex;
-	justify-content: center;
-	-webkit-transform: translateY(-1px);
-	        transform: translateY(-1px);
-	transition: all 300ms ease;
-	position: relative;
-	z-index: 2;
+.switch.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  width: 110px;
+  height: 30px;
+  font-size: 14px;
+  border-radius: 100pc;
+  background-color: #fff;
+  position: relative;
+  color: #333;
+}
+.switch > text.data-v-26d32206 {
+  flex: 1;
+  display: flex;
+  justify-content: center;
+  -webkit-transform: translateY(-1px);
+          transform: translateY(-1px);
+  transition: all 300ms ease;
+  position: relative;
+  z-index: 2;
 }
 .switch.personal > text.data-v-26d32206:first-child,
-.switch > text.data-v-26d32206:last-child{
-	color: #fff;
-}
-.switch.personal > text.data-v-26d32206:last-child{
-	color: inherit;
-}
-.switch.data-v-26d32206::after{
-	content: '';
-	display: block;
-	width: calc(50% - 3px);
-	height: calc(100% - 6px);
-	border-radius: 100pc;
-	background-color: #3eb6f8;
-	position: absolute;
-	top: 3px;
-	right: 3px;
-	transition: all 200ms ease;
-}
-.switch.personal.data-v-26d32206::after{
-	-webkit-transform: translateX(-100%);
-	        transform: translateX(-100%);
+.switch > text.data-v-26d32206:last-child {
+  color: #fff;
+}
+.switch.personal > text.data-v-26d32206:last-child {
+  color: inherit;
+}
+.switch.data-v-26d32206::after {
+  content: "";
+  display: block;
+  width: calc(50% - 3px);
+  height: calc(100% - 6px);
+  border-radius: 100pc;
+  background-color: #3eb6f8;
+  position: absolute;
+  top: 3px;
+  right: 3px;
+  transition: all 200ms ease;
+}
+.switch.personal.data-v-26d32206::after {
+  -webkit-transform: translateX(-100%);
+          transform: translateX(-100%);
 }
 /* 提示 */
-.tips.data-v-26d32206{
-	font-size: 14px;
-	margin-top: 10px;
-	padding: 0 10px;
+.tips.data-v-26d32206 {
+  font-size: 14px;
+  margin-top: 10px;
+  padding: 0 10px;
 }
 /* 优惠券 */
-.coupon.data-v-26d32206{
-	--coupon-height: 80px;
-	--coupon-cut-size: 16px;
-	
-	display: flex;
-	align-items: center;
-	width: 100%;
-	height: var(--coupon-height);
-	padding: 5px;
-	border-radius: 8px;
-	background-color: #3eb6f8;
-	margin-top: 10px;
-}
-.coupon .name.data-v-26d32206{
-	padding: 0 10px;
-}
-.coupon .info.data-v-26d32206{
-	flex: 1;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	flex-direction: column;
-}
-.coupon .info .value.data-v-26d32206{
-	font-size: 30px;
-	font-weight: bold;
-}
-.coupon .info .describe.data-v-26d32206{
-	font-size: 12px;
-}
-.coupon .feature.data-v-26d32206{
-	display: block;
-	position: relative;
-	width: var(--coupon-cut-size);
-	height: var(--coupon-height);
-	overflow: hidden;
-}
-.coupon .feature .line.data-v-26d32206{
-	display: block;
-	width: 1px;
-	position: absolute;
-	left: 50%;
-	top: var(--coupon-cut-size);
-	bottom: var(--coupon-cut-size);
-	border-left: 1px dashed #fff;
+.coupon.data-v-26d32206 {
+  --coupon-height: 80px;
+  --coupon-cut-size: 16px;
+
+  display: flex;
+  align-items: center;
+  width: 100%;
+  height: var(--coupon-height);
+  padding: 5px;
+  border-radius: 8px;
+  background-color: #3eb6f8;
+  margin-top: 10px;
+}
+.coupon .name.data-v-26d32206 {
+  padding: 0 10px;
+}
+.coupon .info.data-v-26d32206 {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+.coupon .info .value.data-v-26d32206 {
+  font-size: 30px;
+  font-weight: bold;
+}
+.coupon .info .describe.data-v-26d32206 {
+  font-size: 12px;
+}
+.coupon .feature.data-v-26d32206 {
+  display: block;
+  position: relative;
+  width: var(--coupon-cut-size);
+  height: var(--coupon-height);
+  overflow: hidden;
+}
+.coupon .feature .line.data-v-26d32206 {
+  display: block;
+  width: 1px;
+  position: absolute;
+  left: 50%;
+  top: var(--coupon-cut-size);
+  bottom: var(--coupon-cut-size);
+  border-left: 1px dashed #fff;
 }
 .coupon .feature.data-v-26d32206::after,
-.coupon .feature.data-v-26d32206::before{
-	content: '';
-	display: block;
-	width: var(--coupon-cut-size);
-	height: var(--coupon-cut-size);
-	border-radius: 100pc;
-	background-color: #fff;
-	position: absolute;
-}
-.coupon .feature.data-v-26d32206::before{
-	top: 0;
-	-webkit-transform: translateY(-50%);
-	        transform: translateY(-50%);
-}
-.coupon .feature.data-v-26d32206::after{
-	bottom: 0;
-	-webkit-transform: translateY(50%);
-	        transform: translateY(50%);
-}
-.coupon.personal.data-v-26d32206{
-	background-color: #ff7043;
-	color: #fff;
+.coupon .feature.data-v-26d32206::before {
+  content: "";
+  display: block;
+  width: var(--coupon-cut-size);
+  height: var(--coupon-cut-size);
+  border-radius: 100pc;
+  background-color: #fff;
+  position: absolute;
+}
+.coupon .feature.data-v-26d32206::before {
+  top: 0;
+  -webkit-transform: translateY(-50%);
+          transform: translateY(-50%);
+}
+.coupon .feature.data-v-26d32206::after {
+  bottom: 0;
+  -webkit-transform: translateY(50%);
+          transform: translateY(50%);
+}
+.coupon.personal.data-v-26d32206 {
+  background-color: #ff7043;
+  color: #fff;
 }
 /* 主信息 */
-.footer.data-v-26d32206{
-	display: flex;
-	flex-direction: column;
-	background-color: #fff;
-	border-radius: 16px 16px 0 0;
-	height: 120px;
-	padding: 10px;
-	position: fixed;
-	left: 0;
-	right: 0;
-	bottom: 0;
-	box-shadow: 0 0 10px rgba(0,0,0,0.1);
-	z-index: 99999;
-}
-.footer .tips.data-v-26d32206{
-	flex: 1;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	font-size: 12px;
-	color: #aaa;
-	margin-bottom: 10px;
-}
-.footer .startup.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	font-size: 14px;
-	border-radius: 8px;
-	height: 50px;
-	background: linear-gradient(to right,#8FF8FB,#47AEFF);
-}
-.coupon-image-card.data-v-26d32206{
-	display: flex;
-	align-items: center;
-	margin-top: 28rpx;
-	width: 664rpx;
-	height: 160rpx;
-	/* background-image: url('@/static/img/coupon-gr.png'); */
-	background-repeat: no-repeat;
-	background-size: cover;
-	background-position: center;
-}
-.coupon-title.data-v-26d32206{
-	width:220rpx;
-	text-align: center;
-	font-weight: bold;
-	font-size: 32rpx;
-	color: #FFFFFF;
-}
-.price-info.data-v-26d32206{
-	width: 270rpx;
-	text-align: center;
-	color: #222222;
-}
-.price-numer.data-v-26d32206{
-	font-weight: 800;
-	font-size: 48rpx;
-}
-.price-text.data-v-26d32206{
-	font-size: 22rpx;
-}
-.shop-coupon-btn.data-v-26d32206{
-	margin-left: 14rpx;
-	width: 136rpx;
-	height: 44rpx;
-	border-radius: 22rpx;
-	font-size: 24rpx;
-	color: #FFFFFF;
-	text-align: center;
-	line-height: 44rpx;
-}
-.Modal-tips.data-v-26d32206{
-	width: 514rpx;
-	height: 528rpx;
-	background: #FFFFFF;
-	border-radius: 16rpx;
-	text-align: center;
-	padding-top: 40rpx;
-}
-.tips-icon.data-v-26d32206{
-	margin: auto;
-	width: 116rpx;
-	height: 116rpx;
-	line-height: 116rpx;
-	font-size: 70rpx;
-	font-weight: bold;
-	color: #fff;
-	border-radius: 50%;
-	background-color: #FF4D3A ;
-}
-.icon-title.data-v-26d32206{
-	margin-top: 24rpx;
-	font-weight: bold;
-	font-size: 40rpx;
-	color: #2B303A;
-}
-.tips-text.data-v-26d32206{
-	margin-top: 28rpx;
-	font-size: 28rpx;
-	color: #2B303A;
-}
-.tips-btn.data-v-26d32206{
-	margin-top:60rpx;
-	display: flex;
-	align-items: center;
-	gap: 20rpx;
-	justify-content: center;
-}
-.cancel-btn.data-v-26d32206{
-	width: 224rpx;
-	height: 80rpx;
-	background: #F0F0F0;
-	border-radius: 40rpx;
-	line-height: 80rpx;
-	font-size: 28rpx;
-	color: #AAAAAA;
-}
-.confirm-btn.data-v-26d32206{
-	width: 224rpx;
-	height: 80rpx;
-	background: #3EB6F8;
-	border-radius: 40rpx;
-	line-height: 80rpx;
-	font-size: 28rpx;
-	color: #FFFFFF;
+.footer.data-v-26d32206 {
+  display: flex;
+  flex-direction: column;
+  background-color: #fff;
+  border-radius: 16px 16px 0 0;
+  height: 120px;
+  padding: 10px;
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+  z-index: 99999;
+}
+.footer .tips.data-v-26d32206 {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 12px;
+  color: #aaa;
+  margin-bottom: 10px;
+}
+.footer .startup.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 14px;
+  border-radius: 8px;
+  height: 50px;
+  background: linear-gradient(to right, #8ff8fb, #47aeff);
+}
+.coupon-image-card.data-v-26d32206 {
+  display: flex;
+  align-items: center;
+  margin-top: 28rpx;
+  width: 664rpx;
+  height: 160rpx;
+  /* background-image: url('@/static/img/coupon-gr.png'); */
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-position: center;
+}
+.coupon-title.data-v-26d32206 {
+  width: 220rpx;
+  text-align: center;
+  font-weight: bold;
+  font-size: 32rpx;
+  color: #ffffff;
+}
+.price-info.data-v-26d32206 {
+  width: 270rpx;
+  text-align: center;
+  color: #222222;
+}
+.price-numer.data-v-26d32206 {
+  font-weight: 800;
+  font-size: 48rpx;
+}
+.price-text.data-v-26d32206 {
+  font-size: 22rpx;
+}
+.shop-coupon-btn.data-v-26d32206 {
+  margin-left: 14rpx;
+  width: 136rpx;
+  height: 44rpx;
+  border-radius: 22rpx;
+  font-size: 24rpx;
+  color: #ffffff;
+  text-align: center;
+  line-height: 44rpx;
+}
+.Modal-tips.data-v-26d32206 {
+  width: 514rpx;
+  height: 528rpx;
+  background: #ffffff;
+  border-radius: 16rpx;
+  text-align: center;
+  padding-top: 40rpx;
+}
+.tips-icon.data-v-26d32206 {
+  margin: auto;
+  width: 116rpx;
+  height: 116rpx;
+  line-height: 116rpx;
+  font-size: 70rpx;
+  font-weight: bold;
+  color: #fff;
+  border-radius: 50%;
+  background-color: #ff4d3a;
+}
+.icon-title.data-v-26d32206 {
+  margin-top: 24rpx;
+  font-weight: bold;
+  font-size: 40rpx;
+  color: #2b303a;
+}
+.tips-text.data-v-26d32206 {
+  margin-top: 28rpx;
+  font-size: 28rpx;
+  color: #2b303a;
+}
+.tips-btn.data-v-26d32206 {
+  margin-top: 60rpx;
+  display: flex;
+  align-items: center;
+  gap: 20rpx;
+  justify-content: center;
+}
+.cancel-btn.data-v-26d32206 {
+  width: 224rpx;
+  height: 80rpx;
+  background: #f0f0f0;
+  border-radius: 40rpx;
+  line-height: 80rpx;
+  font-size: 28rpx;
+  color: #aaaaaa;
+}
+.confirm-btn.data-v-26d32206 {
+  width: 224rpx;
+  height: 80rpx;
+  background: #3eb6f8;
+  border-radius: 40rpx;
+  line-height: 80rpx;
+  font-size: 28rpx;
+  color: #ffffff;
 }
 

+ 18 - 4
unpackage/dist/dev/mp-weixin/static/js/api.js

@@ -109,7 +109,7 @@ api.base = function (method, url, data, opts) {
                 }
               } else {
                 // 刷新失败,执行登录
-                await api.login();
+                // await api.login();
                 options.header.token = getAccessToken();
                 try {
                   const db = await Request(options);
@@ -133,11 +133,9 @@ api.base = function (method, url, data, opts) {
         }
       })
       .catch(async (err) => {
-        console.log("请求失败", err.data.code);
         if (err.data.code == "A0230") {
           try {
             // 尝试刷新token
-            console.log("进入刷新请求");
             const refreshResult = await refreshToken();
             if (refreshResult) {
               // 刷新成功,更新header中的token并重新请求
@@ -148,14 +146,30 @@ api.base = function (method, url, data, opts) {
               } catch (err) {
                 reject(err);
               }
+            } else {
+              // 刷新失败,执行登录
+              $app.popup
+                .confirm(
+                  `服务器响应失败\r\n${err.data.msg},点击确定去登录`,
+                  "提示",
+                  {
+                    showCancel: true,
+                  }
+                )
+                .then((confirmed) => {
+                  if (confirmed) {
+                    uni.navigateTo({ url: "/pages/login/login" });
+                  }
+                });
             }
           } catch (err) {
             reject(err);
           }
+        } else {
+          $app.popup.alert(`服务器响应失败\r\n${err.data.msg}`, "数据请求");
         }
         /*失败处理,此处为非200状态码引起的错误*/
         options.hideLoading();
-        $app.popup.alert(`服务器响应失败\r\n${err.msg}`, "数据请求");
       });
   });
 };

+ 467 - 373
unpackage/dist/dev/mp-weixin/static/js/app.js

@@ -1,383 +1,477 @@
 const app = {};
 
-app.sys = class appSystem{
-	/**
-	 * 环境版本判定回调
-	 * @param {Object.Function} callbacks 回调执行方法
-	 */
-	static envVersion(callbacks){
-		if(!uni.getAccountInfoSync) return;
-		const current = uni.getAccountInfoSync()?.miniProgram?.envVersion;
-		const fn = callbacks[current];
-		if(fn && typeof fn =='function') fn();
-	}
-}
+app.sys = class appSystem {
+  /**
+   * 环境版本判定回调
+   * @param {Object.Function} callbacks 回调执行方法
+   */
+  static envVersion(callbacks) {
+    if (!uni.getAccountInfoSync) return;
+    const current = uni.getAccountInfoSync()?.miniProgram?.envVersion;
+    const fn = callbacks[current];
+    if (fn && typeof fn == "function") fn();
+  }
+};
 
-app.url = class appUrl{
-	/**
-	 * 跳转到地址
-	 * @param {String} url path字符串
-	 * @param {Boolean} mode 跳转模式; false时关闭当前窗口跳转 | null时关闭所有窗口跳转 | 默认为打开新窗口跳转(最多支持10层,页面栈超过10层后默认为false模式);
-	 */
-	static goto(url,mode){
-		return new Promise((resolve,reject)=>{
-			const fail = (err) => uni.switchTab({url,success});
-			const success = () => resolve();
-			if(mode === false) return uni.redirectTo({url,fail});
-			if(mode === null) return uni.reLaunch({url,fail});
-			if(getCurrentPages().length < 10){
-				uni.navigateTo({url,fail,success});
-			}else{
-				uni.redirectTo({url,fail,success});
-			}
-		});
-	}
-	
-	/**
-	 * 返回页面
-	 * @param {int} delta 返回级数
-	 */
-	static back(delta){
-		return uni.navigateBack({delta: delta || 1});
-	}
-	
-	/**
-	 * 刷新页面,会触发onLoad和onShow等钩子
-	 */
-	static refresh(){
-		const pages = getCurrentPages();
-		const current = pages[pages.length-1];
-		const url = current.$page.fullPath;
-		app.urlGoto(url,false);
-	}
-	
-	/**
-	 * 打开新窗口并传递数据
-	 * @param {String} url path字符串
-	 * @param {any} data 传递数据
-	 */
-	static open(url,data){
-		const pages = getCurrentPages();
-		const current = pages[pages.length-1].$page.fullPath;
-		uni.navigateTo({url,success: res => {
-			res.eventChannel.emit(`OPEN-DATA[${current}]`, data);
-		}});
-	}
-	
-	/**
-	 * 获取open方法发送到数据
-	 * @param {Component} component 组件对象
-	 */
-	static load(component){
-		return new Promise((resolve,reject)=>{
-			if(component == undefined) return console.error(`app.url.load(this);`);
-			const pages = getCurrentPages();
-			const current = pages[pages.length-2]?.$page?.fullPath;
-			const caller = component?.getOpenerEventChannel;
-			const channel = caller && caller.call(component);
-			if(channel && channel.on) channel.on(`OPEN-DATA[${current}]`,data=>resolve(data));
-		});
-	}
-	
-	/**
-	 * 打开其他小程序
-	 * @param {String} appid 小程序APPID
-	 * @param {String} path 要打开的程序路径
-	 * @param {Object} data 要传递给小程序狗子的参数
-	 */
-	static applet(appid,path,data){
-		return new Promise((resolve,reject)=>{
-			uni.navigateToMiniProgram({
-				appId: appid,
-				path: path,
-				extraData: data || {},
-				success: res => resolve(res)
-			});
-		});
-	}
-}
+app.url = class appUrl {
+  /**
+   * 跳转到地址
+   * @param {String} url path字符串
+   * @param {Boolean} mode 跳转模式; false时关闭当前窗口跳转 | null时关闭所有窗口跳转 | 默认为打开新窗口跳转(最多支持10层,页面栈超过10层后默认为false模式);
+   */
+  static goto(url, mode) {
+    return new Promise((resolve, reject) => {
+      const fail = (err) => uni.switchTab({ url, success });
+      const success = () => resolve();
+      if (mode === false) return uni.redirectTo({ url, fail });
+      if (mode === null) return uni.reLaunch({ url, fail });
+      if (getCurrentPages().length < 10) {
+        uni.navigateTo({ url, fail, success });
+      } else {
+        uni.redirectTo({ url, fail, success });
+      }
+    });
+  }
 
-app.storage = class appStorage{
-	/**
-	 * 设置本地缓存数据
-	 * @param {String} key 数据键名
-	 * @param {any} data 存储数据,支持对象
-	 */
-	static set(key,data){
-		try{
-			uni.setStorageSync(key,data);
-		}catch(err){
-			console.error('app.setStorageSync error: ',err);
-		}
-	}
-	
-	/**
-	 * 获取本地缓存数据
-	 * @param {String} key 数据键名
-	 */
-	static get(key){
-		return uni.getStorageSync(key);
-	}
-	
-	/**
-	 * 清除键缓存数据
-	 * @param {Object} key 数据键名
-	 */
-	static remove(key){
-		uni.removeStorageSync(key);
-	}
-	
-	/**
-	 * 清理所有缓存数据
-	 */
-	static clear(){
-		uni.clearStorageSync();
-	}
-}
+  /**
+   * 返回页面
+   * @param {int} delta 返回级数
+   */
+  static back(delta) {
+    const pages = getCurrentPages();
+    const targetPageIndex = pages.length - 1 - (delta || 1);
 
-app.math = class appMath{
-	/**
-	 * 浮点精确相加
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static add(arg1,arg2){
-		var r1,r2,m;
-		try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
-		try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
-		m=Math.pow(10,Math.max(r1,r2));
-		return (arg1*m+arg2*m)/m;
-	}
-	
-	/**
-	 * 浮点精确相减
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static sub(arg1,arg2){
-		var r1,r2,m,n;
-		try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
-		try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
-		m=Math.pow(10,Math.max(r1,r2));
-		n=(r1=r2)?r1:r2;
-		return ((arg1*m-arg2*m)/m).toFixed(n);
-	}
-	
-	/**
-	 * 浮点精确相乘
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static mul(arg1,arg2){
-		var m=0,s1=arg1.toString(),s2=arg2.toString();
-		try{m+=s1.split(".")[1].length}catch(e){}
-		try{m+=s2.split(".")[1].length}catch(e){}
-		return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
-	}
-	
-	/**
-	 * 浮点精确相除
-	 * @param {Number} arg1		参数1
-	 * @param {Number} arg2		参数2
-	 */
-	static div(arg1,arg2){
-		var t1=0,t2=0,r1,r2;
-		try{t1=arg1.toString().split(".")[1].length}catch(e){};
-		try{t2=arg2.toString().split(".")[1].length}catch(e){};
-		r1=Number(arg1.toString().replace(".",""));
-		r2=Number(arg2.toString().replace(".",""));
-		return (r1/r2)*Math.pow(10,t2-t1);
-	}
-}
+    if (targetPageIndex >= 0 && targetPageIndex < pages.length) {
+      const targetPage = pages[targetPageIndex];
+      uni.navigateBack({
+        delta: delta || 1,
+        success: () => {
+          // 延迟执行刷新,确保页面已经返回
+          setTimeout(() => {
+            if (targetPage.onLoad) targetPage.onLoad(targetPage.options);
+            if (targetPage.onShow) targetPage.onShow();
+          }, 100);
+        },
+      });
+    } else {
+      uni.navigateBack({ delta: delta || 1 });
+    }
+  }
 
-app.date = class appDate{
-	/**
-	 * 日期格式化
-	 * @param {String} fmt 格式规则
-	 * @param {String | Date} date 需要格式化的日期
-	 */
-	static format(fmt,date){ 
-		if(!fmt) fmt = 'yyyy-MM-dd hh:mm:sss';
-		if(typeof(date) === 'string') date = new Date(date.replaceAll('-','/'));
-		if(!date) date = new Date();
-		var o = { 
-			"M+" : date.getMonth()+1,					//月份 
-			"d+" : date.getDate(),						//日 
-			"h+" : date.getHours(),						//小时 
-			"m+" : date.getMinutes(),					//分 
-			"s+" : date.getSeconds(),					//秒 
-			"q+" : Math.floor((date.getMonth()+3)/3),	//季度 
-			"S"  : date.getMilliseconds()				//毫秒 
-		};
-		if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); 
-		for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
-		return fmt; 
-	}
-}
+  /**
+   * 刷新页面,会触发onLoad和onShow等钩子
+   */
+  static refresh() {
+    const pages = getCurrentPages();
+    const current = pages[pages.length - 1];
+    const url = current.$page.fullPath;
+    app.urlGoto(url, false);
+  }
 
-app.popup = class appPopup{
-	/**
-	 * 对话框
-	 * @param {String} content 弹窗内容
-	 * @param {String} title 弹窗标题
-	 * @param {Object} opts 参数
-	 */
-	static confirm(content,title,opts){
-		return new Promise((resolve,reject)=>{
-			if(!title && title==null) title = '温馨提示';
-			opts = Object.assign({
-				title: title,
-				content: content,
-				success: res => resolve(res.confirm==true),
-				fail: err => reject(err)
-			},opts);
-			uni.showModal(opts);
-		});
-	}
-	
-	/**
-	 * 提示框
-	 * @param {String} content 弹窗内容
-	 * @param {String} title 弹窗标题
-	 */
-	static alert(content,title){
-		return appPopup.confirm(content,title||null,{showCancel:false});
-	};
-	
-	/**
-	 * 轻提示
-	 * @param {String} content 提示内容
-	 * @param {Object} opts 参数
-	 */
-	static toast(content,opts){
-		uni.showToast(Object.assign({
-			title: content,
-			position: 'bottom',
-			duration: 2000,
-			icon: 'none',
-		},opts));
-	}
-	
-	/**
-	 * 加载条
-	 * @param {Boolean} visible 显示
-	 * @param {Object} opts 参数
-	 */
-	static loading(visible,opts){
-		if(visible){
-			uni.showLoading(Object.assign({title:'载入中',mask:true},opts));
-			const timeout = opts?.timeout || (45 * 1000);
-			setTimeout(()=>appPopup.loading(false),timeout);
-		}else{
-			uni.hideLoading();
-		}
-	}
-	
-	/**
-	 * 操作菜单
-	 * @param {Array} data 列表数据
-	 * @param {String} key 指定显示字段
-	 * @param {Object} opts 参数
-	 */
-	static sheet(data,key,opts){
-		return new Promise((resolve,reject)=>{
-			uni.showActionSheet(Object.assign({
-				title: '',
-				itemList: data.map(item=>key? item[key] || String(item) : String(item)),
-				success: res => resolve({index:res.tapIndex,data:data[res.tapIndex]})
-			},opts));
-		});
-	}
-}
+  /**
+   * 打开新窗口并传递数据
+   * @param {String} url path字符串
+   * @param {any} data 传递数据
+   */
+  static open(url, data) {
+    const pages = getCurrentPages();
+    const current = pages[pages.length - 1].$page.fullPath;
+    uni.navigateTo({
+      url,
+      success: (res) => {
+        res.eventChannel.emit(`OPEN-DATA[${current}]`, data);
+      },
+    });
+  }
 
-app.map = class appMap{
-	/**
-	 * 获取当前位置坐标
-	 * @param {Boolean} high 是否调用高精度接口
-	 * @param {Object} opts 参数
-	 */
-	static get(high,opts){
-		return new Promise((resolve,reject)=>{
-			const OPTS = Object.assign({
-				success: res =>{
-					console.log(res);
-				},
-				fail: err =>{
-					console.log(err);
-				}
-			},opts);
-			high ? uni.getLocation(OPTS) : uni.getFuzzyLocation(OPTS);
-		});
-	}
-}
+  /**
+   * 获取open方法发送到数据
+   * @param {Component} component 组件对象
+   */
+  static load(component) {
+    return new Promise((resolve, reject) => {
+      if (component == undefined) return console.error(`app.url.load(this);`);
+      const pages = getCurrentPages();
+      const current = pages[pages.length - 2]?.$page?.fullPath;
+      const caller = component?.getOpenerEventChannel;
+      const channel = caller && caller.call(component);
+      if (channel && channel.on)
+        channel.on(`OPEN-DATA[${current}]`, (data) => resolve(data));
+    });
+  }
 
-app.act = class appAct{
-	/**
-	 * 拨打电话
-	 * @param {String} phone
-	 */
-	static callPhone(phone){
-		uni.makePhoneCall({phoneNumber:phone});
-	}
-	
-	/**
-	 * 调用扫描
-	 * @param {Object} opts 参数配置,详细查看 https://uniapp.dcloud.net.cn/api/system/barcode.html
-	 */
-	static scan(opts){
-		return new Promise((resolve,reject)=>{
-			uni.scanCode(Object.assign({},{
-				success: res=>resolve(res),
-				// fail: err=>reject(err),
-			},opts));
-		});
-	}
-	
-	/**
-	 * 获取节点信息
-	 * @param {Component} component 组件
-	 * @param {String} selector 类似于 CSS 的选择器
-	 * @param {Boolean} multi 是否多节点
-	 */
-	static selectorQuery(component,selector,multi){
-		return new Promise((resolve,reject)=>{
-			const query = uni.createSelectorQuery().in(component)[multi?'selectAll':'select'](selector);
-			query.boundingClientRect(data=>{
-				if(data) resolve(data);
-			}).exec();
-		});
-	}
-	
-	/**
-	 * 复制文本到剪贴板
-	 * @param {String} str 需要复制的文本
-	 */
-	static copy(str){
-		return new Promise((resolve,reject)=>{
-			uni.setClipboardData({
-				data: 'hello',
-				success: resolve(),
-				fail: err => reject(err)
-			});
-		});
-	}
-	
-	/**
-	 * 客服服务
-	 * @param {Object} id
-	 * @param {Object} url
-	 */
-	static customerService(id,url){
-		return new Promise((resolve,reject)=>{
-			wx.openCustomerServiceChat({
-				extInfo: {url: url},
-				corpId: id,
-				success: res => resolve(res),
-				fail: err => reject(err)
-			});
-		});
-	}
-	
-}
+  /**
+   * 打开其他小程序
+   * @param {String} appid 小程序APPID
+   * @param {String} path 要打开的程序路径
+   * @param {Object} data 要传递给小程序狗子的参数
+   */
+  static applet(appid, path, data) {
+    return new Promise((resolve, reject) => {
+      uni.navigateToMiniProgram({
+        appId: appid,
+        path: path,
+        extraData: data || {},
+        success: (res) => resolve(res),
+      });
+    });
+  }
+};
 
-module.exports = app;
+app.storage = class appStorage {
+  /**
+   * 设置本地缓存数据
+   * @param {String} key 数据键名
+   * @param {any} data 存储数据,支持对象
+   */
+  static set(key, data) {
+    try {
+      uni.setStorageSync(key, data);
+    } catch (err) {
+      console.error("app.setStorageSync error: ", err);
+    }
+  }
+
+  /**
+   * 获取本地缓存数据
+   * @param {String} key 数据键名
+   */
+  static get(key) {
+    return uni.getStorageSync(key);
+  }
+
+  /**
+   * 清除键缓存数据
+   * @param {Object} key 数据键名
+   */
+  static remove(key) {
+    uni.removeStorageSync(key);
+  }
+
+  /**
+   * 清理所有缓存数据
+   */
+  static clear() {
+    uni.clearStorageSync();
+  }
+};
+
+app.math = class appMath {
+  /**
+   * 浮点精确相加
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static add(arg1, arg2) {
+    var r1, r2, m;
+    try {
+      r1 = arg1.toString().split(".")[1].length;
+    } catch (e) {
+      r1 = 0;
+    }
+    try {
+      r2 = arg2.toString().split(".")[1].length;
+    } catch (e) {
+      r2 = 0;
+    }
+    m = Math.pow(10, Math.max(r1, r2));
+    return (arg1 * m + arg2 * m) / m;
+  }
+
+  /**
+   * 浮点精确相减
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static sub(arg1, arg2) {
+    var r1, r2, m, n;
+    try {
+      r1 = arg1.toString().split(".")[1].length;
+    } catch (e) {
+      r1 = 0;
+    }
+    try {
+      r2 = arg2.toString().split(".")[1].length;
+    } catch (e) {
+      r2 = 0;
+    }
+    m = Math.pow(10, Math.max(r1, r2));
+    n = (r1 = r2) ? r1 : r2;
+    return ((arg1 * m - arg2 * m) / m).toFixed(n);
+  }
+
+  /**
+   * 浮点精确相乘
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static mul(arg1, arg2) {
+    var m = 0,
+      s1 = arg1.toString(),
+      s2 = arg2.toString();
+    try {
+      m += s1.split(".")[1].length;
+    } catch (e) {}
+    try {
+      m += s2.split(".")[1].length;
+    } catch (e) {}
+    return (
+      (Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) /
+      Math.pow(10, m)
+    );
+  }
+
+  /**
+   * 浮点精确相除
+   * @param {Number} arg1		参数1
+   * @param {Number} arg2		参数2
+   */
+  static div(arg1, arg2) {
+    var t1 = 0,
+      t2 = 0,
+      r1,
+      r2;
+    try {
+      t1 = arg1.toString().split(".")[1].length;
+    } catch (e) {}
+    try {
+      t2 = arg2.toString().split(".")[1].length;
+    } catch (e) {}
+    r1 = Number(arg1.toString().replace(".", ""));
+    r2 = Number(arg2.toString().replace(".", ""));
+    return (r1 / r2) * Math.pow(10, t2 - t1);
+  }
+};
+
+app.date = class appDate {
+  /**
+   * 日期格式化
+   * @param {String} fmt 格式规则
+   * @param {String | Date} date 需要格式化的日期
+   */
+  static format(fmt, date) {
+    if (!fmt) fmt = "yyyy-MM-dd hh:mm:sss";
+    if (typeof date === "string") date = new Date(date.replaceAll("-", "/"));
+    if (!date) date = new Date();
+    var o = {
+      "M+": date.getMonth() + 1, //月份
+      "d+": date.getDate(), //日
+      "h+": date.getHours(), //小时
+      "m+": date.getMinutes(), //分
+      "s+": date.getSeconds(), //秒
+      "q+": Math.floor((date.getMonth() + 3) / 3), //季度
+      S: date.getMilliseconds(), //毫秒
+    };
+    if (/(y+)/.test(fmt))
+      fmt = fmt.replace(
+        RegExp.$1,
+        (date.getFullYear() + "").substr(4 - RegExp.$1.length)
+      );
+    for (var k in o)
+      if (new RegExp("(" + k + ")").test(fmt))
+        fmt = fmt.replace(
+          RegExp.$1,
+          RegExp.$1.length == 1
+            ? o[k]
+            : ("00" + o[k]).substr(("" + o[k]).length)
+        );
+    return fmt;
+  }
+};
+
+app.popup = class appPopup {
+  /**
+   * 对话框
+   * @param {String} content 弹窗内容
+   * @param {String} title 弹窗标题
+   * @param {Object} opts 参数
+   */
+  static confirm(content, title, opts) {
+    return new Promise((resolve, reject) => {
+      if (!title && title == null) title = "温馨提示";
+      opts = Object.assign(
+        {
+          title: title,
+          content: content,
+          confirmColor: "#007AFF",
+          success: (res) => resolve(res.confirm == true),
+          fail: (err) => reject(err),
+        },
+        opts
+      );
+      uni.showModal(opts);
+    });
+  }
+
+  /**
+   * 提示框
+   * @param {String} content 弹窗内容
+   * @param {String} title 弹窗标题
+   */
+  static alert(content, title) {
+    return appPopup.confirm(content, title || null, { showCancel: false });
+  }
+
+  /**
+   * 轻提示
+   * @param {String} content 提示内容
+   * @param {Object} opts 参数
+   */
+  static toast(content, opts) {
+    uni.showToast(
+      Object.assign(
+        {
+          title: content,
+          position: "bottom",
+          duration: 2000,
+          icon: "none",
+        },
+        opts
+      )
+    );
+  }
+
+  /**
+   * 加载条
+   * @param {Boolean} visible 显示
+   * @param {Object} opts 参数
+   */
+  static loading(visible, opts) {
+    if (visible) {
+      uni.showLoading(Object.assign({ title: "载入中", mask: true }, opts));
+      const timeout = opts?.timeout || 45 * 1000;
+      setTimeout(() => appPopup.loading(false), timeout);
+    } else {
+      uni.hideLoading();
+    }
+  }
+
+  /**
+   * 操作菜单
+   * @param {Array} data 列表数据
+   * @param {String} key 指定显示字段
+   * @param {Object} opts 参数
+   */
+  static sheet(data, key, opts) {
+    return new Promise((resolve, reject) => {
+      uni.showActionSheet(
+        Object.assign(
+          {
+            title: "",
+            itemList: data.map((item) =>
+              key ? item[key] || String(item) : String(item)
+            ),
+            success: (res) =>
+              resolve({ index: res.tapIndex, data: data[res.tapIndex] }),
+          },
+          opts
+        )
+      );
+    });
+  }
+};
+
+app.map = class appMap {
+  /**
+   * 获取当前位置坐标
+   * @param {Boolean} high 是否调用高精度接口
+   * @param {Object} opts 参数
+   */
+  static get(high, opts) {
+    return new Promise((resolve, reject) => {
+      const OPTS = Object.assign(
+        {
+          success: (res) => {
+            console.log(res);
+          },
+          fail: (err) => {
+            console.log(err);
+          },
+        },
+        opts
+      );
+      high ? uni.getLocation(OPTS) : uni.getFuzzyLocation(OPTS);
+    });
+  }
+};
+
+app.act = class appAct {
+  /**
+   * 拨打电话
+   * @param {String} phone
+   */
+  static callPhone(phone) {
+    uni.makePhoneCall({ phoneNumber: phone });
+  }
+
+  /**
+   * 调用扫描
+   * @param {Object} opts 参数配置,详细查看 https://uniapp.dcloud.net.cn/api/system/barcode.html
+   */
+  static scan(opts) {
+    return new Promise((resolve, reject) => {
+      uni.scanCode(
+        Object.assign(
+          {},
+          {
+            success: (res) => resolve(res),
+            // fail: err=>reject(err),
+          },
+          opts
+        )
+      );
+    });
+  }
+
+  /**
+   * 获取节点信息
+   * @param {Component} component 组件
+   * @param {String} selector 类似于 CSS 的选择器
+   * @param {Boolean} multi 是否多节点
+   */
+  static selectorQuery(component, selector, multi) {
+    return new Promise((resolve, reject) => {
+      const query = uni
+        .createSelectorQuery()
+        .in(component)
+        [multi ? "selectAll" : "select"](selector);
+      query
+        .boundingClientRect((data) => {
+          if (data) resolve(data);
+        })
+        .exec();
+    });
+  }
+
+  /**
+   * 复制文本到剪贴板
+   * @param {String} str 需要复制的文本
+   */
+  static copy(str) {
+    return new Promise((resolve, reject) => {
+      uni.setClipboardData({
+        data: "hello",
+        success: resolve(),
+        fail: (err) => reject(err),
+      });
+    });
+  }
+
+  /**
+   * 客服服务
+   * @param {Object} id
+   * @param {Object} url
+   */
+  static customerService(id, url) {
+    return new Promise((resolve, reject) => {
+      wx.openCustomerServiceChat({
+        extInfo: { url: url },
+        corpId: id,
+        success: (res) => resolve(res),
+        fail: (err) => reject(err),
+      });
+    });
+  }
+};
+
+module.exports = app;

+ 2 - 2
unpackage/dist/dev/mp-weixin/static/js/config.js

@@ -11,8 +11,8 @@ config.url = {
   // request : 'http://192.168.110.3:80/',
   // request : 'http://192.168.1.253:80/',
   // request : 'http://120.78.228.211:8866/',
-  // request: "http://192.168.0.11:8989/",
-  request: "http://192.168.0.217:8989/",
+  request: "http://192.168.0.11:8989/",
+  // request: "http://192.168.0.217:8989/",
   // request : 'https://charge.dev.hub.zswlgz.com/',
   // 上传地址
   upload: "http://127.0.0.1:3000/upload/",

+ 157 - 0
unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.js

@@ -0,0 +1,157 @@
+(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode"],{
+
+/***/ 236:
+/*!****************************************************************************************************************************************************!*\
+  !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue ***!
+  \****************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./l-painter-qrcode.vue?vue&type=template&id=24552746& */ 237);
+/* harmony import */ var _l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./l-painter-qrcode.vue?vue&type=script&lang=js& */ 239);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _l_painter_qrcode_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 _l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 39);
+
+var renderjs
+
+
+
+
+/* normalize component */
+
+var component = Object(_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+  _l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  null,
+  null,
+  false,
+  _l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ 237:
+/*!***********************************************************************************************************************************************************************************!*\
+  !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue?vue&type=template&id=24552746& ***!
+  \***********************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./l-painter-qrcode.vue?vue&type=template&id=24552746& */ 238);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_template_id_24552746___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+
+/***/ 238:
+/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./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--17-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:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue?vue&type=template&id=24552746& ***!
+  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function () {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+
+/***/ 239:
+/*!*****************************************************************************************************************************************************************************!*\
+  !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue?vue&type=script&lang=js& ***!
+  \*****************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./l-painter-qrcode.vue?vue&type=script&lang=js& */ 240);
+/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_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 _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+
+/***/ 240:
+/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-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:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue?vue&type=script&lang=js& ***!
+  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _relation = __webpack_require__(/*! ../common/relation */ 220);
+//
+//
+//
+var _default = {
+  name: 'lime-painter-qrcode',
+  mixins: [(0, _relation.children)('painter')],
+  props: {
+    id: String,
+    css: [String, Object],
+    text: String
+  },
+  data: function data() {
+    return {
+      type: 'qrcode',
+      el: {
+        css: {},
+        text: null
+      }
+    };
+  }
+};
+exports.default = _default;
+
+/***/ })
+
+}]);
+//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.js.map
+;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
+    'uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode-create-component',
+    {
+        'uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode-create-component':(function(module, exports, __webpack_require__){
+            __webpack_require__('2')['createComponent'](__webpack_require__(236))
+        })
+    },
+    [['uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode-create-component']]
+]);

+ 4 - 0
unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.json

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

+ 1 - 0
unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.wxml

@@ -0,0 +1 @@
+<view class="_div"></view>

+ 10 - 10
unpackage/dist/dev/mp-weixin/uni_modules/lime-painter/components/l-painter-text/l-painter-text.js

@@ -1,6 +1,6 @@
 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["uni_modules/lime-painter/components/l-painter-text/l-painter-text"],{
 
-/***/ 236:
+/***/ 241:
 /*!************************************************************************************************************************************************!*\
   !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue ***!
   \************************************************************************************************************************************************/
@@ -9,8 +9,8 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _l_painter_text_vue_vue_type_template_id_133934fd___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./l-painter-text.vue?vue&type=template&id=133934fd& */ 237);
-/* harmony import */ var _l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./l-painter-text.vue?vue&type=script&lang=js& */ 239);
+/* harmony import */ var _l_painter_text_vue_vue_type_template_id_133934fd___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./l-painter-text.vue?vue&type=template&id=133934fd& */ 242);
+/* harmony import */ var _l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./l-painter-text.vue?vue&type=script&lang=js& */ 244);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _l_painter_text_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 _l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 39);
 
@@ -39,7 +39,7 @@ component.options.__file = "uni_modules/lime-painter/components/l-painter-text/l
 
 /***/ }),
 
-/***/ 237:
+/***/ 242:
 /*!*******************************************************************************************************************************************************************************!*\
   !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue?vue&type=template&id=133934fd& ***!
   \*******************************************************************************************************************************************************************************/
@@ -48,7 +48,7 @@ component.options.__file = "uni_modules/lime-painter/components/l-painter-text/l
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_template_id_133934fd___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./l-painter-text.vue?vue&type=template&id=133934fd& */ 238);
+/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_template_id_133934fd___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./l-painter-text.vue?vue&type=template&id=133934fd& */ 243);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_template_id_133934fd___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_template_id_133934fd___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -61,7 +61,7 @@ __webpack_require__.r(__webpack_exports__);
 
 /***/ }),
 
-/***/ 238:
+/***/ 243:
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./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--17-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:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue?vue&type=template&id=133934fd& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -88,7 +88,7 @@ render._withStripped = true
 
 /***/ }),
 
-/***/ 239:
+/***/ 244:
 /*!*************************************************************************************************************************************************************************!*\
   !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue?vue&type=script&lang=js& ***!
   \*************************************************************************************************************************************************************************/
@@ -97,14 +97,14 @@ render._withStripped = true
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./l-painter-text.vue?vue&type=script&lang=js& */ 240);
+/* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../../edgeDownload/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./l-painter-text.vue?vue&type=script&lang=js& */ 245);
 /* harmony import */ var _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_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 _edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  /* harmony default export */ __webpack_exports__["default"] = (_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_edgeDownload_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_l_painter_text_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
 
 /***/ }),
 
-/***/ 240:
+/***/ 245:
 /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-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:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue?vue&type=script&lang=js& ***!
   \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -156,7 +156,7 @@ exports.default = _default;
     'uni_modules/lime-painter/components/l-painter-text/l-painter-text-create-component',
     {
         'uni_modules/lime-painter/components/l-painter-text/l-painter-text-create-component':(function(module, exports, __webpack_require__){
-            __webpack_require__('2')['createComponent'](__webpack_require__(236))
+            __webpack_require__('2')['createComponent'](__webpack_require__(241))
         })
     },
     [['uni_modules/lime-painter/components/l-painter-text/l-painter-text-create-component']]

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно