"navigationBarTitleText": "首页", | "navigationBarTitleText": "首页", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES" | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES" | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarBackgroundColor": "#22dbc8", | "navigationBarBackgroundColor": "#22dbc8", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "pages/service/service", | "path": "pages/service/service", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "九州ETC", | "navigationBarTitleText": "九州ETC", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
} | } | ||||
} | } | ||||
], | ], | ||||
"subPackages": [ | |||||
{ | |||||
"subPackages": [{ | |||||
"root": "subpackage/after-sale", //售后相关 | "root": "subpackage/after-sale", //售后相关 | ||||
"pages": [ | |||||
{ | |||||
"pages": [{ | |||||
"path": "account-recharge/recharge", | "path": "account-recharge/recharge", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "充值", | "navigationBarTitleText": "充值", | ||||
}, | }, | ||||
{ | { | ||||
"root": "subpackage/orders", //订单管理模块 | "root": "subpackage/orders", //订单管理模块 | ||||
"pages": [ | |||||
{ | |||||
"pages": [{ | |||||
"path": "essential-information", | "path": "essential-information", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "九州ETC", | "navigationBarTitleText": "九州ETC", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "扣款账户关联", | "navigationBarTitleText": "扣款账户关联", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "支付账户签约", | "navigationBarTitleText": "支付账户签约", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "ETC开户新办申请-单位", | "navigationBarTitleText": "ETC开户新办申请-单位", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "ETC开户新办申请-个人", | "navigationBarTitleText": "ETC开户新办申请-个人", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", // 允许点击穿透后,才能触发导航栏上的 onTap 事件 | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", // 允许点击穿透后,才能触发导航栏上的 onTap 事件 | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "行驶证信息上传", | "navigationBarTitleText": "行驶证信息上传", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "选择产品", | "navigationBarTitleText": "选择产品", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
"navigationBarTitleText": "产品详情", | "navigationBarTitleText": "产品详情", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"path": "moreHighMsg/moreHighMsg", | "path": "moreHighMsg/moreHighMsg", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "高速快讯", | "navigationBarTitleText": "高速快讯", | ||||
"enablePullDownRefresh":true | |||||
"enablePullDownRefresh": true | |||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"navigationBarTitleText": "补卡额申请", | "navigationBarTitleText": "补卡额申请", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "收银", | "navigationBarTitleText": "收银", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "欠费补缴", | "navigationBarTitleText": "欠费补缴", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"navigationBarTitleText": "余额补零", | "navigationBarTitleText": "余额补零", | ||||
"navigationStyle": "custom", | "navigationStyle": "custom", | ||||
"mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | "mp-alipay": { //在支付宝小程序中如果不生效 就加上这两行代码 就会生效啦 | ||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
"transparentTitle": "always", | |||||
"titlePenetrate": "YES", | |||||
"defaultTitle": "" // 将导航栏默认的 title 置空 | |||||
} | } | ||||
} | } | ||||
}, { | |||||
"path": "verify/verify-phone/verify-phone", | |||||
"style": { | |||||
"navigationBarTitleText": "获取短信验证码", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, { | |||||
"path": "verify/verify-phone-code/verify-phone-code", | |||||
"style": { | |||||
"navigationBarTitleText": "短信验证码校验", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
} | } | ||||
] | ] | ||||
}, | }, | ||||
{ | |||||
{ | |||||
"root": "subpackage/personal-center", //个人中心 | "root": "subpackage/personal-center", //个人中心 | ||||
"pages": [ | |||||
{ | |||||
"path": "consumption-record", | |||||
"style": { | |||||
"navigationBarTitleText": "消费明细", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, | |||||
{ | |||||
"path": "remind/remind", | |||||
"style": { | |||||
"navigationBarTitleText": "服务提醒", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, | |||||
{ | |||||
"path": "remind/satisfaction-evaluate", | |||||
"style": { | |||||
"navigationBarTitleText": "满意度评价" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "remind/evaluate-list", | |||||
"style": { | |||||
"navigationBarTitleText": "评价列表" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/carDetail", | |||||
"style": { | |||||
"navigationBarTitleText": "车辆详情" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/etcFlowingWater", | |||||
"style": { | |||||
"navigationBarTitleText": "ETC通行流水记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/select-car", | |||||
"style": { | |||||
"navigationBarTitleText": "选择车辆" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/select-card", | |||||
"style": { | |||||
"navigationBarTitleText": "选择卡号" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/unitUser", | |||||
"style": { | |||||
"navigationBarTitleText": "单位用户信息" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/userInfo", | |||||
"style": { | |||||
"navigationBarTitleText": "个人用户信息" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/obuCancel", | |||||
"style": { | |||||
"navigationBarTitleText": "卡签注销记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/cardCancel", | |||||
"style": { | |||||
"navigationBarTitleText": "卡签注销记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "capital/card-loop", | |||||
"style": { | |||||
"navigationBarTitleText": "存储卡圈存" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "help/help", | |||||
"style": { | |||||
"navigationBarTitleText": "常见问题" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "old-user", | |||||
"style": { | |||||
"navigationBarTitleText": "历史用户申请", | |||||
"enablePullDownRefresh": true | |||||
} | |||||
}, | |||||
{ | |||||
"path": "address", | |||||
"style": { | |||||
"navigationBarTitleText": "邮寄地址", | |||||
"enablePullDownRefresh": true | |||||
} | |||||
}, | |||||
{ | |||||
"path": "install-activation-order", | |||||
"style": { | |||||
"navigationBarTitleText": "安装激活-选择订单", | |||||
"enablePullDownRefresh": true | |||||
} | |||||
}, | |||||
{ | |||||
"path": "car-submit-record", | |||||
"style": { | |||||
"navigationBarTitleText": "车辆提交记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "official-car-issue", | |||||
"style": { | |||||
"navigationBarTitleText": "公务车发行" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "query-company-list", | |||||
"style": { | |||||
"navigationBarTitleText": "单位查询" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "add-company", | |||||
"style": { | |||||
"navigationBarTitleText": "新增单位" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "add-car", | |||||
"style": { | |||||
"navigationBarTitleText": "新增车辆" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "official-car-issue-result", | |||||
"style": { | |||||
"navigationBarTitleText": "公务车发行-查询结果" | |||||
} | |||||
}, | |||||
"pages": [{ | |||||
"path": "consumption-record", | |||||
"style": { | |||||
"navigationBarTitleText": "消费明细", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, | |||||
{ | |||||
"path": "remind/remind", | |||||
"style": { | |||||
"navigationBarTitleText": "服务提醒", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, | |||||
{ | |||||
"path": "remind/satisfaction-evaluate", | |||||
"style": { | |||||
"navigationBarTitleText": "满意度评价" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "remind/evaluate-list", | |||||
"style": { | |||||
"navigationBarTitleText": "评价列表" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/carDetail", | |||||
"style": { | |||||
"navigationBarTitleText": "车辆详情" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/etcFlowingWater", | |||||
"style": { | |||||
"navigationBarTitleText": "ETC通行流水记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/select-car", | |||||
"style": { | |||||
"navigationBarTitleText": "选择车辆" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/select-card", | |||||
"style": { | |||||
"navigationBarTitleText": "选择卡号" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/unitUser", | |||||
"style": { | |||||
"navigationBarTitleText": "单位用户信息" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/userInfo", | |||||
"style": { | |||||
"navigationBarTitleText": "个人用户信息" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/obuCancel", | |||||
"style": { | |||||
"navigationBarTitleText": "卡签注销记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "search/cardCancel", | |||||
"style": { | |||||
"navigationBarTitleText": "卡签注销记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "capital/card-loop", | |||||
"style": { | |||||
"navigationBarTitleText": "存储卡圈存" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "help/help", | |||||
"style": { | |||||
"navigationBarTitleText": "常见问题" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "old-user", | |||||
"style": { | |||||
"navigationBarTitleText": "历史用户申请", | |||||
"enablePullDownRefresh": true | |||||
} | |||||
}, | |||||
{ | |||||
"path": "address", | |||||
"style": { | |||||
"navigationBarTitleText": "邮寄地址", | |||||
"enablePullDownRefresh": true | |||||
} | |||||
}, | |||||
{ | |||||
"path": "install-activation-order", | |||||
"style": { | |||||
"navigationBarTitleText": "安装激活-选择订单", | |||||
"enablePullDownRefresh": true | |||||
} | |||||
}, | |||||
{ | |||||
"path": "car-submit-record", | |||||
"style": { | |||||
"navigationBarTitleText": "车辆提交记录" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "official-car-issue", | |||||
"style": { | |||||
"navigationBarTitleText": "公务车发行" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "query-company-list", | |||||
"style": { | |||||
"navigationBarTitleText": "单位查询" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "add-company", | |||||
"style": { | |||||
"navigationBarTitleText": "新增单位" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "add-car", | |||||
"style": { | |||||
"navigationBarTitleText": "新增车辆" | |||||
} | |||||
}, | |||||
{ | |||||
"path": "official-car-issue-result", | |||||
"style": { | |||||
"navigationBarTitleText": "公务车发行-查询结果" | |||||
} | |||||
}, | |||||
{ | { | ||||
"path": "trajectory/trajectory", | "path": "trajectory/trajectory", | ||||
"style": { | "style": { | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "修改手机号" | "navigationBarTitleText": "修改手机号" | ||||
} | } | ||||
}, | |||||
}, | |||||
{ | { | ||||
"path": "excel", | "path": "excel", | ||||
"style": { | "style": { | ||||
{ | { | ||||
//其他服务模块 | //其他服务模块 | ||||
"root": "subpackage/service", | "root": "subpackage/service", | ||||
"pages": [ | |||||
{ | |||||
"pages": [{ | |||||
"path": "trajectory-map", | "path": "trajectory-map", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "我的轨迹" | "navigationBarTitleText": "我的轨迹" |
<template> | <template> | ||||
<view class="wrapper"> | <view class="wrapper"> | ||||
<image :src="`${$imgUrl}common/reharge-success.png`" class="pic-status" mode="widthFix"></image> | <image :src="`${$imgUrl}common/reharge-success.png`" class="pic-status" mode="widthFix"></image> | ||||
<view class="text-result">付款成功</view> | |||||
<view class="text-result">充值成功</view> | |||||
<view class="sub-text">您办理的账户充值业务已生成订单</view> | <view class="sub-text">您办理的账户充值业务已生成订单</view> | ||||
<view class="btn btn-primary" @click="view">返回查看</view> | <view class="btn btn-primary" @click="view">返回查看</view> | ||||
</view> | </view> |
var devs = []; | var devs = []; | ||||
initBluetoothAdapte(function(res) { | initBluetoothAdapte(function(res) { | ||||
if (res.code == bleCode.bleSuccessCode()) { | if (res.code == bleCode.bleSuccessCode()) { | ||||
uni.startBluetoothDevicesDiscovery({ | |||||
wx.startBluetoothDevicesDiscovery({ | |||||
services: ["FEE7"], | services: ["FEE7"], | ||||
success: function(res) { | success: function(res) { | ||||
uni.onBluetoothDeviceFound(function(res) { | |||||
wx.onBluetoothDeviceFound(function(res) { | |||||
var scandevices = res.devices; | var scandevices = res.devices; | ||||
for (var i = 0; i < scandevices.length; i++) { | for (var i = 0; i < scandevices.length; i++) { | ||||
var scan_dev = scandevices[i]; | var scan_dev = scandevices[i]; | ||||
}) | }) | ||||
}; | }; | ||||
export function scan_stopScanBleDevice(callBack) { | export function scan_stopScanBleDevice(callBack) { | ||||
uni.stopBluetoothDevicesDiscovery({ | |||||
wx.stopBluetoothDevicesDiscovery({ | |||||
success: function(res) { | success: function(res) { | ||||
callBack.call(this, { | callBack.call(this, { | ||||
code: successCode, | code: successCode, | ||||
}; | }; | ||||
function initBluetoothAdapte(callBack) { | function initBluetoothAdapte(callBack) { | ||||
uni.openBluetoothAdapter({ | |||||
wx.openBluetoothAdapter({ | |||||
success: function(res) { | success: function(res) { | ||||
uni.getBluetoothAdapterState({ | |||||
wx.getBluetoothAdapterState({ | |||||
success: function(res) { | success: function(res) { | ||||
if (res.available == true && res.discovering == false) { | if (res.available == true && res.discovering == false) { | ||||
callBack.call(this, { | callBack.call(this, { | ||||
} | } | ||||
function closeBluetoothAdapte(callBack) { | function closeBluetoothAdapte(callBack) { | ||||
uni.getBluetoothAdapterState({ | |||||
wx.getBluetoothAdapterState({ | |||||
success: function(res) { | success: function(res) { | ||||
uni.closeBluetoothAdapter({ | |||||
wx.closeBluetoothAdapter({ | |||||
success: function(res) { | success: function(res) { | ||||
callBack.call(this, { | callBack.call(this, { | ||||
code: successCode, | code: successCode, | ||||
} | } | ||||
}) | }) | ||||
}; | }; | ||||
//dis连接设备 | |||||
export function disConnectDevice(callBack) { | export function disConnectDevice(callBack) { | ||||
wxDisConnectDevice(function(res) { | wxDisConnectDevice(function(res) { | ||||
callBack.call(this, res) | callBack.call(this, res) | ||||
}) | }) | ||||
}; | }; | ||||
export function onDeviceConnectStateChange(callBack) { | export function onDeviceConnectStateChange(callBack) { | ||||
uni.onBLEConnectionStateChange(function(res) { | |||||
wx.onBLEConnectionStateChange(function(res) { | |||||
if (res.connected == true) { | if (res.connected == true) { | ||||
callBack.call(this, { | callBack.call(this, { | ||||
code: bleCode.successCode(), | code: bleCode.successCode(), | ||||
function wxConnectDevice(callBack) { | function wxConnectDevice(callBack) { | ||||
console.log("连接设备对象:" + JSON.stringify(dev)); | console.log("连接设备对象:" + JSON.stringify(dev)); | ||||
uni.createBLEConnection({ | |||||
wx.createBLEConnection({ | |||||
deviceId: dev.deviceId, | deviceId: dev.deviceId, | ||||
success: function(res) { | success: function(res) { | ||||
callBack.call(this, { | callBack.call(this, { | ||||
} | } | ||||
function getConnectedDevice(callBack) { | function getConnectedDevice(callBack) { | ||||
uni.getConnectedBluetoothDevices({ | |||||
wx.getConnectedBluetoothDevices({ | |||||
services: ["fee7"], | services: ["fee7"], | ||||
success: function(res) { | success: function(res) { | ||||
if (res.devices.length > 0) { | if (res.devices.length > 0) { | ||||
function wxDisConnectDevice(callBack) { | function wxDisConnectDevice(callBack) { | ||||
if (dev != null) { | if (dev != null) { | ||||
uni.closeBLEConnection({ | |||||
wx.closeBLEConnection({ | |||||
deviceId: dev.deviceId, | deviceId: dev.deviceId, | ||||
success: function(res) { | success: function(res) { | ||||
uni.closeBluetoothAdapter({ | |||||
wx.closeBluetoothAdapter({ | |||||
success: function(res) { | success: function(res) { | ||||
callBack.call(this, { | callBack.call(this, { | ||||
code: bleCode.bleSuccessCode(), | code: bleCode.bleSuccessCode(), | ||||
callBack1.call(this, res1) | callBack1.call(this, res1) | ||||
}, function(res2) { | }, function(res2) { | ||||
if (res2.code == bleCode.bleSuccessCode()) { | if (res2.code == bleCode.bleSuccessCode()) { | ||||
uni.onBLECharacteristicValueChange(function(res) { | |||||
wx.onBLECharacteristicValueChange(function(res) { | |||||
console.log("接收数据<<=============:" + dataTool.bufferTohex(res.value).toLocaleUpperCase()); | console.log("接收数据<<=============:" + dataTool.bufferTohex(res.value).toLocaleUpperCase()); | ||||
callBack2.call(this, { | callBack2.call(this, { | ||||
code: bleCode.bleSuccessCode(), | code: bleCode.bleSuccessCode(), | ||||
}; | }; | ||||
function getDeviceService(device, callBack) { | function getDeviceService(device, callBack) { | ||||
//获取蓝牙低功耗设备所有服务 (service)。 | |||||
uni.getBLEDeviceServices({ | |||||
deviceId: device.deviceId, //设备ID | |||||
wx.getBLEDeviceServices({ | |||||
deviceId: device.deviceId, | |||||
success: function(res) { | success: function(res) { | ||||
var services = res.services; | var services = res.services; | ||||
for (var i = 0; i < services.length; i++) { | for (var i = 0; i < services.length; i++) { | ||||
} | } | ||||
function getDeviceCharacteristics(device, serviceId, callBack1, callBack2) { | function getDeviceCharacteristics(device, serviceId, callBack1, callBack2) { | ||||
//获取蓝牙低功耗设备某个服务中所有特征 | |||||
uni.getBLEDeviceCharacteristics({ | |||||
wx.getBLEDeviceCharacteristics({ | |||||
deviceId: device.deviceId, | deviceId: device.deviceId, | ||||
serviceId: serviceId, | serviceId: serviceId, | ||||
success: function(res) { | success: function(res) { | ||||
for (var i = 0; i < charactertics.length; i++) { | for (var i = 0; i < charactertics.length; i++) { | ||||
var charact = charactertics[i]; | var charact = charactertics[i]; | ||||
if (charact.properties.read == true) { | if (charact.properties.read == true) { | ||||
//读取蓝牙低功耗设备特征值的二进制数据。注意:必须设备的特征支持 read 才可以成功调用。 | |||||
uni.readBLECharacteristicValue({ | |||||
wx.readBLECharacteristicValue({ | |||||
deviceId: device.deviceId, | deviceId: device.deviceId, | ||||
serviceId: charact_serviceId, | serviceId: charact_serviceId, | ||||
characteristicId: charact.uuid, | characteristicId: charact.uuid, | ||||
}) | }) | ||||
} | } | ||||
if (charact.properties.notify == true || charact.properties.indicate == true) { | if (charact.properties.notify == true || charact.properties.indicate == true) { | ||||
uni.notifyBLECharacteristicValueChange({ | |||||
wx.notifyBLECharacteristicValueChange({ | |||||
deviceId: device.deviceId, | deviceId: device.deviceId, | ||||
serviceId: serviceId, | serviceId: serviceId, | ||||
characteristicId: charact.uuid, | characteristicId: charact.uuid, | ||||
export function sendMessageToDevice(cmdArray, callBack) { | export function sendMessageToDevice(cmdArray, callBack) { | ||||
var cmd = dataTool.strToBuffer(cmdArray[0]); | var cmd = dataTool.strToBuffer(cmdArray[0]); | ||||
var i = 0; | var i = 0; | ||||
uni.writeBLECharacteristicValue({ | |||||
wx.writeBLECharacteristicValue({ | |||||
deviceId: deviceId, | deviceId: deviceId, | ||||
serviceId: serviceId, | serviceId: serviceId, | ||||
characteristicId: characticId, | characteristicId: characticId, | ||||
}); | }); | ||||
onfire.on("send", i => { | onfire.on("send", i => { | ||||
var cmd1 = dataTool.strToBuffer(cmdArray[i]); | var cmd1 = dataTool.strToBuffer(cmdArray[i]); | ||||
uni.writeBLECharacteristicValue({ | |||||
wx.writeBLECharacteristicValue({ | |||||
deviceId: deviceId, | deviceId: deviceId, | ||||
serviceId: serviceId, | serviceId: serviceId, | ||||
characteristicId: characticId, | characteristicId: characticId, |
wxTail: "", | wxTail: "", | ||||
wxTotalData: "" | wxTotalData: "" | ||||
}; | }; | ||||
tempBean_uni.wxMagicNumber = data.substring(0 * 2, 1 * 2); | |||||
tempBean_uni.wxVer = data.substring(1 * 2, 2 * 2); | |||||
tempBean_uni.wxLen = data.substring(2 * 2, 4 * 2); | |||||
tempBean_uni.wxCMD = data.substring(4 * 2, 6 * 2); | |||||
tempBean_uni.wxSeq = data.substring(6 * 2, 8 * 2); | |||||
tempBean_uni.wxExtra = data.substring(8 * 2, 11 * 2); | |||||
tempBean_wx.wxMagicNumber = data.substring(0 * 2, 1 * 2); | |||||
tempBean_wx.wxVer = data.substring(1 * 2, 2 * 2); | |||||
tempBean_wx.wxLen = data.substring(2 * 2, 4 * 2); | |||||
tempBean_wx.wxCMD = data.substring(4 * 2, 6 * 2); | |||||
tempBean_wx.wxSeq = data.substring(6 * 2, 8 * 2); | |||||
tempBean_wx.wxExtra = data.substring(8 * 2, 11 * 2); | |||||
var len = dataTool.hexToTen(data.substring(11 * 2, 12 * 2)); | var len = dataTool.hexToTen(data.substring(11 * 2, 12 * 2)); | ||||
if ((len & 128) == 128) { | if ((len & 128) == 128) { | ||||
var len1 = len & 127; | var len1 = len & 127; | ||||
var len2 = dataTool.hexToTen(data.substring(12 * 2, 13 * 2)) & 127; | var len2 = dataTool.hexToTen(data.substring(12 * 2, 13 * 2)) & 127; | ||||
var len3 = (len2 << 7) + len1; | var len3 = (len2 << 7) + len1; | ||||
tempBean_uni.wxData = data.substring(13 * 2, len3 * 2 + 26) | |||||
tempBean_wx.wxData = data.substring(13 * 2, len3 * 2 + 26) | |||||
} else { | } else { | ||||
tempBean_uni.wxData = data.substring(12 * 2, len * 2 + 24) | |||||
tempBean_wx.wxData = data.substring(12 * 2, len * 2 + 24) | |||||
} | } | ||||
return tempBean_uni.wxData | |||||
return tempBean_wx.wxData | |||||
} | } | ||||
function getwcDATAlen(dataLen) { | function getwcDATAlen(dataLen) { |
wxTail: "", | wxTail: "", | ||||
wxTotalData: "" | wxTotalData: "" | ||||
}; | }; | ||||
tempBean_uni.wxMagicNumber = "FE"; | |||||
tempBean_uni.wxVer = "01"; | |||||
tempBean_uni.wxLen = dataTool.tenToHex(tempBean_33.length / 2 + 14, 4); | |||||
tempBean_uni.wxCMD = "7531"; | |||||
tempBean_uni.wxSeq = "0000"; | |||||
tempBean_uni.wxExtra = "0A0012" + getwcDATAlen(tempBean_33.length / 2); | |||||
tempBean_uni.wxData = tempBean_33; | |||||
tempBean_uni.wxTail = "1800"; | |||||
tempBean_uni.wxTotalData = tempBean_uni.wxMagicNumber + tempBean_uni.wxVer + tempBean_uni.wxLen + tempBean_uni.wxCMD + | |||||
tempBean_uni.wxSeq + tempBean_uni.wxExtra + tempBean_uni.wxData + tempBean_uni.wxTail; | |||||
tempBean_wx.wxMagicNumber = "FE"; | |||||
tempBean_wx.wxVer = "01"; | |||||
tempBean_wx.wxLen = dataTool.tenToHex(tempBean_33.length / 2 + 14, 4); | |||||
tempBean_wx.wxCMD = "7531"; | |||||
tempBean_wx.wxSeq = "0000"; | |||||
tempBean_wx.wxExtra = "0A0012" + getwcDATAlen(tempBean_33.length / 2); | |||||
tempBean_wx.wxData = tempBean_33; | |||||
tempBean_wx.wxTail = "1800"; | |||||
tempBean_wx.wxTotalData = tempBean_wx.wxMagicNumber + tempBean_wx.wxVer + tempBean_wx.wxLen + tempBean_wx.wxCMD + | |||||
tempBean_wx.wxSeq + tempBean_wx.wxExtra + tempBean_wx.wxData + tempBean_wx.wxTail; | |||||
cmdwxconten.push(tempBean_wx) | cmdwxconten.push(tempBean_wx) | ||||
} | } | ||||
} | } |
! function(root, factory) { | |||||
if (typeof module === "object" && module.exports) module.exports = factory(); | |||||
else root.onfire = factory() | |||||
}(typeof window !== "undefined" ? window : this, function() { | |||||
var __onfireEvents = {}, | |||||
__cnt = 0, | |||||
string_str = "string", | |||||
function_str = "function", | |||||
hasOwnKey = Function.call.bind(Object.hasOwnProperty), | |||||
slice = Function.call.bind(Array.prototype.slice); | |||||
function _bind(eventName, callback, is_one, context) { | |||||
if (typeof eventName !== string_str || typeof callback !== function_str) { | |||||
throw new Error("args: " + string_str + ", " + function_str + "") | |||||
} | |||||
if (!hasOwnKey(__onfireEvents, eventName)) { | |||||
__onfireEvents[eventName] = {} | |||||
} | |||||
__onfireEvents[eventName][++__cnt] = [callback, is_one, context]; | |||||
return [eventName, __cnt] | |||||
} | |||||
function _each(obj, callback) { | |||||
for (var key in obj) { | |||||
if (hasOwnKey(obj, key)) callback(key, obj[key]) | |||||
} | |||||
} | |||||
function on(eventName, callback, context) { | |||||
return _bind(eventName, callback, 0, context) | |||||
} | |||||
function one(eventName, callback, context) { | |||||
return _bind(eventName, callback, 1, context) | |||||
} | |||||
function _fire_func(eventName, args) { | |||||
if (hasOwnKey(__onfireEvents, eventName)) { | |||||
_each(__onfireEvents[eventName], function(key, item) { | |||||
item[0].apply(item[2], args); | |||||
if (item[1]) delete __onfireEvents[eventName][key] | |||||
}) | |||||
} | |||||
} | |||||
function fire(eventName) { | |||||
var args = slice(arguments, 1); | |||||
setTimeout(function() { | |||||
_fire_func(eventName, args) | |||||
}) | |||||
} | |||||
function fireSync(eventName) { | |||||
_fire_func(eventName, slice(arguments, 1)) | |||||
} | |||||
function un(event) { | |||||
var eventName, key, r = false, | |||||
type = typeof event; | |||||
if (type === string_str) { | |||||
if (hasOwnKey(__onfireEvents, event)) { | |||||
delete __onfireEvents[event]; | |||||
return true | |||||
} | |||||
return false | |||||
} else if (type === "object") { | |||||
eventName = event[0]; | |||||
key = event[1]; | |||||
if (hasOwnKey(__onfireEvents, eventName) && hasOwnKey(__onfireEvents[eventName], key)) { | |||||
delete __onfireEvents[eventName][key]; | |||||
return true | |||||
} | |||||
return false | |||||
} else if (type === function_str) { | |||||
_each(__onfireEvents, function(key_1, item_1) { | |||||
_each(item_1, function(key_2, item_2) { | |||||
if (item_2[0] === event) { | |||||
delete __onfireEvents[key_1][key_2]; | |||||
r = true | |||||
} | |||||
}) | |||||
}); | |||||
return r | |||||
} | |||||
return true | |||||
} | |||||
function clear() { | |||||
__onfireEvents = {} | |||||
} | |||||
return { | |||||
on: on, | |||||
one: one, | |||||
un: un, | |||||
fire: fire, | |||||
fireSync: fireSync, | |||||
clear: clear | |||||
} | |||||
}); | |||||
!function(root,factory){if(typeof module==="object"&&module.exports)module.exports=factory();else root.onfire=factory()}(typeof window!=="undefined"?window:this,function(){var __onfireEvents={},__cnt=0,string_str="string",function_str="function",hasOwnKey=Function.call.bind(Object.hasOwnProperty),slice=Function.call.bind(Array.prototype.slice);function _bind(eventName,callback,is_one,context){if(typeof eventName!==string_str||typeof callback!==function_str){throw new Error("args: "+string_str+", "+function_str+"")}if(!hasOwnKey(__onfireEvents,eventName)){__onfireEvents[eventName]={}}__onfireEvents[eventName][++__cnt]=[callback,is_one,context];return[eventName,__cnt]}function _each(obj,callback){for(var key in obj){if(hasOwnKey(obj,key))callback(key,obj[key])}}function on(eventName,callback,context){return _bind(eventName,callback,0,context)}function one(eventName,callback,context){return _bind(eventName,callback,1,context)}function _fire_func(eventName,args){if(hasOwnKey(__onfireEvents,eventName)){_each(__onfireEvents[eventName],function(key,item){item[0].apply(item[2],args);if(item[1])delete __onfireEvents[eventName][key]})}}function fire(eventName){var args=slice(arguments,1);setTimeout(function(){_fire_func(eventName,args)})}function fireSync(eventName){_fire_func(eventName,slice(arguments,1))}function un(event){var eventName,key,r=false,type=typeof event;if(type===string_str){if(hasOwnKey(__onfireEvents,event)){delete __onfireEvents[event];return true}return false}else if(type==="object"){eventName=event[0];key=event[1];if(hasOwnKey(__onfireEvents,eventName)&&hasOwnKey(__onfireEvents[eventName],key)){delete __onfireEvents[eventName][key];return true}return false}else if(type===function_str){_each(__onfireEvents,function(key_1,item_1){_each(item_1,function(key_2,item_2){if(item_2[0]===event){delete __onfireEvents[key_1][key_2];r=true}})});return r}return true}function clear(){__onfireEvents={}}return{on:on,one:one,un:un,fire:fire,fireSync:fireSync,clear:clear}}); |
<view class="as-layout-horizontal"> | <view class="as-layout-horizontal"> | ||||
<view v-for="(item, index) in state.radiolist1" :key="index" :label="item.disabled" :name="item.name" | <view v-for="(item, index) in state.radiolist1" :key="index" :label="item.disabled" :name="item.name" | ||||
@click="radioChange(item.name)" style="width: 100%;display: flex;align-items: center;margin-bottom: 30rpx;"> | |||||
@click="radioChange(item.name)" | |||||
style="width: 100%;display: flex;align-items: center;margin-bottom: 30rpx;"> | |||||
<view class="as-layout-vertical as-gravity-center"> | <view class="as-layout-vertical as-gravity-center"> | ||||
<image style="width: 140rpx; height: 100rpx; border-radius: 20rpx;margin-right: 20rpx;" | <image style="width: 140rpx; height: 100rpx; border-radius: 20rpx;margin-right: 20rpx;" | ||||
:src="`${$imgUrl}card2.png`" mode="aspectFill"></image> | :src="`${$imgUrl}card2.png`" mode="aspectFill"></image> | ||||
import { reactive, ref } from "vue"; | import { reactive, ref } from "vue"; | ||||
import { etcQueryProduct, productReCode } from "@/utils/network/api.js"; | import { etcQueryProduct, productReCode } from "@/utils/network/api.js"; | ||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
import { stringToJson } from "@/utils/network/encryption"; | import { stringToJson } from "@/utils/network/encryption"; | ||||
import { fileURL } from "@/datas/fileURL.js"; | import { fileURL } from "@/datas/fileURL.js"; | ||||
import navBgCar from "./components/nav-bg-car1"; | import navBgCar from "./components/nav-bg-car1"; | ||||
import navBar from "@/components/nav-bar/nav-bar2.vue"; | import navBar from "@/components/nav-bar/nav-bar2.vue"; | ||||
import { getItem, StorageKeys, setItem } from "@/utils/storage.ts"; | import { getItem, StorageKeys, setItem } from "@/utils/storage.ts"; | ||||
import { msg } from "@/utils/utils"; | import { msg } from "@/utils/utils"; | ||||
const imgURL = `${fileURL}image/`; | const imgURL = `${fileURL}image/`; | ||||
}); | }); | ||||
} | } | ||||
const savaHandle = (val) => { | const savaHandle = (val) => { | ||||
state.choiceCardShow = true; | |||||
console.log("vAL", val) | console.log("vAL", val) | ||||
setItem("clientFee", val.clientFee); | setItem("clientFee", val.clientFee); | ||||
setItem("promoteId", val.promoteId); | setItem("promoteId", val.promoteId); | ||||
setItem("isValueCard", val.isValueCard); | setItem("isValueCard", val.isValueCard); | ||||
state.isSign = val.isSign; | state.isSign = val.isSign; | ||||
// 判断是几张卡 | // 判断是几张卡 | ||||
console.log("val.cardTypeArr.split(",")",val.cardTypeArr.split(",")) | |||||
console.log("val.cardTypeArr.split(", ")", val.cardTypeArr.split(",")) | |||||
if (val.promoteName.indexOf('选装') != -1) { | |||||
if (val.cardTypeArr.split(",")[0] == "记账卡") { | |||||
state.isValueCard = 2 | |||||
} else if (val.cardTypeArr.split(",")[0] == '储值卡') { | |||||
state.isValueCard = 1 | |||||
} else { | |||||
state.isValueCard = 3 | |||||
} | |||||
uni.redirectTo({ | |||||
url: `/subpackage/orders/verify/verify-phone/verify-phone?promoteId=${getItem("promoteId")}&userType=${state.userType}&type=${state.type}&isValueCard=${state.isValueCard}`, | |||||
}); | |||||
return | |||||
} | |||||
if (val.cardTypeArr.split(",").length == 1) { | if (val.cardTypeArr.split(",").length == 1) { | ||||
if (val.cardTypeArr.split(",")[0] == "记账卡") { | if (val.cardTypeArr.split(",")[0] == "记账卡") { | ||||
state.isValueCard = 2 | state.isValueCard = 2 | ||||
obj["disabled"] = false; | obj["disabled"] = false; | ||||
state.radiolist1.push(obj) | state.radiolist1.push(obj) | ||||
} | } | ||||
state.choiceCardShow = true; | |||||
console.log("state.radiolist1", state.radiolist1) | console.log("state.radiolist1", state.radiolist1) | ||||
} | } | ||||
}; | }; |
<!-- 注册第2步 --> | |||||
<template> | |||||
<view class="register-main"> | |||||
<view class="title">请输入验证码</view> | |||||
<view class="hint">验证码已发送至:{{ phone }}</view> | |||||
<view class="input-code"> | |||||
<verification-code-input v-model="code"></verification-code-input> | |||||
</view> | |||||
<view class="hint2"> | |||||
<view class="green">{{ codeDuration === 0 ? "" : codeDuration }}</view> | |||||
<view class="grey" @click="sendRegisterCode">{{ | |||||
codeDuration === 0 ? "重新发送验证码" : "秒后可重新发送验证码" | |||||
}}</view> | |||||
</view> | |||||
</view> | |||||
<view class="btn"> | |||||
<submit-button title="提交" @submit="nextStep"></submit-button> | |||||
</view> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { | |||||
msg, | |||||
navTo | |||||
} from "@/utils/utils"; | |||||
import { | |||||
onLoad | |||||
} from "@dcloudio/uni-app"; | |||||
import { | |||||
ref, | |||||
reactive | |||||
} from "vue"; | |||||
import { | |||||
request | |||||
} from "@/utils/network/request"; | |||||
import { | |||||
sendCode, | |||||
changePhone | |||||
} from "@/utils/network/api.js"; | |||||
import { | |||||
useUserStore | |||||
} from '@/stores/user'; | |||||
const state = reactive({ | |||||
promoteId: '', | |||||
userType: '', | |||||
type: '', | |||||
isValueCard: '', | |||||
phone: "", //电话 | |||||
checked: false, //是否勾选阅读协议 | |||||
}); | |||||
const userStore = useUserStore(); | |||||
const { | |||||
loginOutNoConfirm | |||||
} = userStore; | |||||
//上个界面传递的电话号码 | |||||
const phone = ref(""); | |||||
const code = ref(null); | |||||
//倒计时时常 | |||||
const codeDuration = ref(0); | |||||
let interval = null; | |||||
onLoad((option) => { | |||||
state.type = option.type; //客车 | |||||
state.userType = option.userType; | |||||
state.promoteId = option.promoteId; | |||||
state.isValueCard=option.isValueCard | |||||
phone.value = option.phone; | |||||
codeInterval(); | |||||
}); | |||||
/* 验证码倒计时 */ | |||||
const codeInterval = () => { | |||||
codeDuration.value = 60; | |||||
interval = setInterval(() => { | |||||
codeDuration.value--; | |||||
if (codeDuration.value === 0) { | |||||
if (interval) { | |||||
clearInterval(interval); | |||||
interval = null; | |||||
} | |||||
} | |||||
}, 1000); | |||||
}; | |||||
/* 发送验证码 */ | |||||
const sendRegisterCode = () => { | |||||
if (codeDuration.value !== 0) { | |||||
return; | |||||
} | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
mobile: phone.value | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(sendCode, options).then((res) => { | |||||
msg("验证码发送成功!"); | |||||
codeInterval(); | |||||
}); | |||||
}; | |||||
/* 下一步 */ | |||||
const nextStep = () => { | |||||
if (!code.value) { | |||||
msg("请先输入验证码!"); | |||||
return; | |||||
} | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
mobile: phone.value, | |||||
code: code.value | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request('966', options).then((res) => { | |||||
uni.redirectTo({ | |||||
url: `/subpackage/orders/essential-information?promoteId=${state.promoteId}&userType=${state.userType}&type=${state.type}&isValueCard=${state.isValueCard}`, | |||||
}); | |||||
}); | |||||
}; | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
.register-main { | |||||
border-top: 1rpx solid #dcdcdc; | |||||
padding: 78rpx 30rpx 50rpx; | |||||
.title { | |||||
font-size: 32rpx; | |||||
color: #333333; | |||||
font-weight: 600; | |||||
} | |||||
.hint { | |||||
font-size: 24rpx; | |||||
color: #999999; | |||||
margin-top: 20rpx; | |||||
} | |||||
} | |||||
.input-code { | |||||
margin: 100rpx -10rpx 0px; | |||||
} | |||||
.hint2 { | |||||
margin-top: 40rpx; | |||||
display: flex; | |||||
.green { | |||||
font-size: 28rpx; | |||||
color: #00b38b; | |||||
} | |||||
.grey { | |||||
font-size: 24rpx; | |||||
color: #999999; | |||||
margin-left: 16rpx; | |||||
} | |||||
} | |||||
.btn { | |||||
margin: 200rpx 40rpx 0px; | |||||
} | |||||
</style> |
<!-- 注册第1步 --> | |||||
<template> | |||||
<view class="register-main"> | |||||
<view class="title">业务办理</view> | |||||
<view class="hint">请输入办理手机号</view> | |||||
<view class="form-input"> | |||||
<view> +86</view> | |||||
<image :src="`${$imgUrl}common/arror_down_black.png`" class="arror" /> | |||||
<input class="input" v-model="state.phone" focus placeholder="请输入手机号" placeholder-class="form-placeholder" | |||||
type="number" maxlength="11" /> | |||||
</view> | |||||
<view class="agreement"> | |||||
<checkbox-group @change="checkboxChange" class="group"> | |||||
<checkbox :checked="state.checked" color="#00B38B" style="transform:scale(0.85)"> | |||||
</checkbox> | |||||
<label>我已阅读并同意</label> | |||||
</checkbox-group> | |||||
<!-- <view class="txt-grey">我已阅读并同意</view> --> | |||||
<view class="txt-green" @click="toRead">《平台用户服务隐私协议》</view> | |||||
</view> | |||||
</view> | |||||
<view class="btn"> | |||||
<submit-button title="同意协议并获取验证码" @submit="nextStep"></submit-button> | |||||
</view> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import uCheckBox from "@/uni_modules/vk-uview-ui/components/u-checkbox/u-checkbox.vue"; | |||||
import { | |||||
reactive | |||||
} from "vue"; | |||||
import { | |||||
checkStr, | |||||
msg, | |||||
navTo | |||||
} from "@/utils/utils"; | |||||
import { | |||||
sendCode, | |||||
regist | |||||
} from "@/utils/network/api.js"; | |||||
import { | |||||
request | |||||
} from "@/utils/network/request.js"; | |||||
import { onLoad } from "@dcloudio/uni-app"; | |||||
const state = reactive({ | |||||
promoteId: '', | |||||
userType: '', | |||||
type: '', | |||||
isValueCard: '', | |||||
phone: "", //电话 | |||||
checked: false, //是否勾选阅读协议 | |||||
}); | |||||
onLoad((option: any) => { | |||||
state.type = option.type; //客车 | |||||
state.userType = option.userType; | |||||
state.promoteId = option.promoteId; | |||||
state.isValueCard=option.isValueCard | |||||
}); | |||||
const checkboxChange = (e) => { | |||||
console.log(e); | |||||
state.checked = !state.checked; | |||||
}; | |||||
// 去协议页面 | |||||
const toRead=()=>{ | |||||
navTo("/login/agreement") | |||||
} | |||||
/* 下一步 */ | |||||
const nextStep = () => { | |||||
if (!state.phone) { | |||||
msg("请输入手机号!"); | |||||
return; | |||||
} | |||||
if (!checkStr(state.phone, "mobile")) { | |||||
msg("请输入正确的手机号!"); | |||||
return; | |||||
} | |||||
if (!state.checked) { | |||||
msg("请勾选我已阅读并同意《平台用户服务隐私协议》"); | |||||
return; | |||||
} | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
mobile: state.phone | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(sendCode, options) | |||||
.then((res) => { | |||||
msg("验证码发送成功!"); | |||||
navTo(`/subpackage/orders/verify/verify-phone-code/verify-phone-code?phone=${state.phone}&promoteId=${state.promoteId}&userType=${state.userType}&type=${state.type}&isValueCard=${state.isValueCard}`); | |||||
}) | |||||
.catch((err) => { | |||||
console.log(err); | |||||
}); | |||||
}; | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
.group { | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.register-main { | |||||
border-top: 1rpx solid #dcdcdc; | |||||
padding: 78rpx 30rpx 50rpx; | |||||
.title { | |||||
font-size: 32rpx; | |||||
color: #333333; | |||||
font-weight: 600; | |||||
} | |||||
.hint { | |||||
font-size: 24rpx; | |||||
color: #999999; | |||||
margin-top: 20rpx; | |||||
} | |||||
.form-input { | |||||
margin-top: 80rpx; | |||||
display: flex; | |||||
flex-direction: row; | |||||
align-items: center; | |||||
height: 90rpx; | |||||
border-bottom: 1rpx solid #dcdcdc; | |||||
padding: 0rpx 12rpx; | |||||
font-size: 28rpx; | |||||
color: #333333; | |||||
&:last-child { | |||||
margin-top: 50rpx; | |||||
} | |||||
.input { | |||||
flex: 1; | |||||
padding-right: 48rpx; | |||||
background: transparent; | |||||
} | |||||
.arror { | |||||
width: 28rpx; | |||||
height: 25rpx; | |||||
margin-left: 16rpx; | |||||
margin-right: 40rpx; | |||||
} | |||||
.eye { | |||||
width: 48rpx; | |||||
height: 48rpx; | |||||
} | |||||
} | |||||
.form-placeholder { | |||||
color: #999999; | |||||
} | |||||
.agreement { | |||||
font-size: 24rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
margin-top: 60rpx; | |||||
.txt-grey { | |||||
color: #666666; | |||||
} | |||||
.txt-green { | |||||
color: #00b38b; | |||||
} | |||||
:deep(.u-checkbox) { | |||||
margin-right: -20rpx; | |||||
} | |||||
} | |||||
} | |||||
.btn { | |||||
margin: 200rpx 40rpx 0px; | |||||
} | |||||
</style> |
//开发环境配置 | //开发环境配置 | ||||
development: { | development: { | ||||
baseUrl: "http://192.168.100.63:8087", | baseUrl: "http://192.168.100.63:8087", | ||||
<<<<<<< HEAD | |||||
// baseUrl: "https://qtzl.etcjz.cn", | // baseUrl: "https://qtzl.etcjz.cn", | ||||
// baseUrl: "https://testmedusa.etcjz.cn", | // baseUrl: "https://testmedusa.etcjz.cn", | ||||
// baseUrl: "http://192.168.100.158:8085", | // baseUrl: "http://192.168.100.158:8085", | ||||
production: { | production: { | ||||
// baseUrl: "http://192.168.100.63:8087", | // baseUrl: "http://192.168.100.63:8087", | ||||
baseUrl: "http://222.85.144.89:19002", | baseUrl: "http://222.85.144.89:19002", | ||||
======= | |||||
// baseUrl: "http://192.168.100.158:8085/html/", | |||||
// baseUrl: "https://qtzl.etcjz.cn", | |||||
// baseUrl: "https://testmedusa.etcjz.cn", | |||||
}, | |||||
//生产环境配置 | |||||
production: { | |||||
// baseUrl: "htttp://222.85.144.89:19002", | |||||
baseUrl: "http://192.168.100.63:8087" | |||||
// baseUrl: "http://192.168.100.158:8085/html/", | |||||
// baseUrl: "https://qtzl.etcjz.cn", | |||||
>>>>>>> 0abd00b5e5b4a432dd4a058dee7543b5785ae948 | |||||
// baseUrl: "https://testmedusa.etcjz.cn", | // baseUrl: "https://testmedusa.etcjz.cn", | ||||
} | } | ||||
} | } | ||||
export const loginTime = 86400; //登录有效时间(单位s) 1天 | export const loginTime = 86400; //登录有效时间(单位s) 1天 | ||||
export const wechatPayConfigId = "6a9a54bc01f6443faea7ffe132b19f6"; //支付配置编号 微信小程序支付:6a9a54bc01f6443faea7ffe132b19f6 | export const wechatPayConfigId = "6a9a54bc01f6443faea7ffe132b19f6"; //支付配置编号 微信小程序支付:6a9a54bc01f6443faea7ffe132b19f6 | ||||
export const aliPayConfigId = "6a9a54bc01f6443123452b1234"; //支付配置编号 支付宝小程序支付:6a9a54bc01f6443123452b1234 | export const aliPayConfigId = "6a9a54bc01f6443123452b1234"; //支付配置编号 支付宝小程序支付:6a9a54bc01f6443123452b1234 | ||||
export const wechatAppID = "wx8fba957179c1329a"; //九州小程序APPid:wx008c60533388527a | |||||
export const wechatAppID = "wx8fba957179c1329a"; //九州小程序APPid:wx008c60533388527a | |||||
export const wechatSecret = "699c10826113ddb350fbe58a96e2b015"; //九州小程序AppSecret:95197718b43b497f02732bd9f8011080 | export const wechatSecret = "699c10826113ddb350fbe58a96e2b015"; //九州小程序AppSecret:95197718b43b497f02732bd9f8011080 | ||||
// export const sm4Key = "5dc11f854ceca1473e1a5075ed16eb226b4543a9a05fe50f7fba40f898099ce34abba69a07a20509f315f94d808a4d0e988935588858f65a"; | // export const sm4Key = "5dc11f854ceca1473e1a5075ed16eb226b4543a9a05fe50f7fba40f898099ce34abba69a07a20509f315f94d808a4d0e988935588858f65a"; | ||||
export const sm4Key = "5dc11f854ceca147"; | export const sm4Key = "5dc11f854ceca147"; |