Quellcode durchsuchen

高速快讯字典

yxb
DESKTOP-2IO5MST\huting vor 1 Jahr
Ursprung
Commit
52714eaab5

+ 210
- 201
pages.json Datei anzeigen

"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": "我的轨迹"

+ 845
- 849
pages/recharge/recharge.vue
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 1
- 1
pages/recharge/result.vue Datei anzeigen

<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>

+ 20
- 24
static/etc/JLAPI/JLBleManagerTool.js Datei anzeigen

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,

+ 9
- 9
static/etc/JLAPI/JLObuWecha33UnPackt.js Datei anzeigen

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) {

+ 10
- 10
static/etc/JLAPI/JLObuWechat33Pack.js Datei anzeigen

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)
} }
} }

+ 1
- 99
static/etc/JLAPI/onfire.js Datei anzeigen

! 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}});

+ 18
- 5
subpackage/orders/choice-product.vue Datei anzeigen



<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)
} }
}; };

+ 578
- 607
subpackage/orders/essential-information.vue
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 175
- 0
subpackage/orders/verify/verify-phone-code/verify-phone-code.vue Datei anzeigen

<!-- 注册第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>

+ 193
- 0
subpackage/orders/verify/verify-phone/verify-phone.vue Datei anzeigen

<!-- 注册第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>

+ 14
- 1
utils/network/api.js Datei anzeigen

//开发环境配置 //开发环境配置
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";

Laden…
Abbrechen
Speichern