Bladeren bron

提交

yxb
DESKTOP-2IO5MST\huting 1 jaar geleden
bovenliggende
commit
4f5ce9d480

+ 0
- 700
components/bluetooth/bluetooth.vue Bestand weergeven

@@ -1,700 +0,0 @@
<!--设备选择 -->
<template>
<view class="devices">
<view class="device" v-for="(item, index) in deviceList" :key="index" @click="connectDevice(item)">
<image :src="`${$imgUrl}bluetooth/card1.png`" class="head" mode="aspectFill"></image>
<view class="center">
<view class="name">{{ item._name }}</view>
<view class="desc">编号 {{ item.name }}</view>
</view>
<image :src="item.selected ? selectedUrl : unSelectedUrl" class="icon" mode="aspectFill"></image>
</view>

<view class="hint">
<view class="orange-txt as-layout-horizontal as-gravity-center-start">
<image :src="`${$imgUrl}common/icon-hint.png`" mode="aspectFill"></image>
<view>温馨提示:</view>
</view>
<view class="grey-txt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
指令执行过程中,请勿关闭蓝牙,勿将手机远离电子标签,以免导致写卡、写签失败。</view>
</view>
<view class="btn">
<submit-button title="点击重新搜索蓝牙" @submit="load"></submit-button>
</view>
</view>


</template>

<script setup lang="ts">
import { ref, reactive } from "vue";
import { onLoad, onReady } from "@dcloudio/uni-app";
import { fileURL } from "@/datas/fileURL.js";

const imgURL = `${fileURL}image/`;
const selectedUrl = "common/selected.png`";
const unSelectedUrl = "common/unselected.png`";
const jyApi = require("../../static/etc/JYAPI/GenvictBleUtil.js");
const jlQZApi = require("../../static/etc/JLQZAPI/JLObuSDK.js");
const atApi = require("../../static/etc/ATAPI/ArtcBleUtil.js");
const wqApi = require("../../static/etc/WQAPI/WCDObuSdk.js");
const cgApi = require("../../static/etc/CGAPI/cguBle.js");

const tools = require("../../static/etcUtil/tools.js");
const datas = require("../../static/etcUtil/datas.js");
const bluetoothUtil = require("../../static/etcUtil/index.js");

let jlApi = require("../../static/etc/JLAPI/JLObuSDK.js"); //聚力SDK
let wjApi = require("../../static/etc/WJAPI/wjBleAPI");
let tdApi = require("../../static/etc/TDAPI/TDRObuSDK.js");
let zzApi = require("../../static/etc/WJAPI/wjBleAPI.js");
let jtApi = require("../../static/etc/JTAPI/BleUtil.js");
// #ifdef MP-ALIPAY
// 这部分代码将仅在支付宝小程序平台下执行
jlApi = require("../../static/etc/JLObuSDK/JLObuSDK.js");
wjApi = require("../../static/etc/wjBle/WJBleAPI");
zzApi = require("../../static/etc/wjBle/WJBleAPI.js");
tdApi = require("../../static/etc/TDRAPI/TDRObuSDK.js");
jtApi = require("../../static/etc/JTAPIS/BleUtil.js");
// 执行支付宝小程序的特定功能
// #endif

const state = reactive({
fee: "",
cardId: "",
showPopup: false, //显示激活成功提示
curDeviceId: "", //当前选中的设备ID
deviceList: [
//设备列表
{
id: "1",
image: imgURL + "bluetooth/card1.png`",
name: "聚力",
number: "235564444558855",
},
],
});

const deviceList = ref([]);
const connectPrefixName = ref(null);
const routeType = ref(null); //来源 1激活 2圈存 3信息重写 4信息读取

interface DeviceType {
name : string; //设备名称
deviceId : string; //uuid
prefixName : string; //前缀名称
selected : boolean; //判断点击次数
_name : string; //中文名称
}

let device : DeviceType = reactive({
name: "", //设备名称
deviceId: "", //uuid
prefixName: "", //前缀名称
selected: false, //判断点击次数
_name: "", //中文名称
});

onReady(() => {
load();
});
const props = defineProps({
//手机号
routeType: {
type: String,
default: "",
},

//短信模板编码
cardId: {
type: String,
default: "",
},
});
onLoad((option) => {
routeType.value = props.routeType ? props.routeType : "1";
state.cardId = props.cardId;
console.log("props", props)
});

/*
* 蓝牙初始化
*/
const load = () => {
deviceList.value = [];
console.log("****************蓝牙getsetting******************");
//断开蓝牙
bluetoothUtil.disconnectDevice();
uni.getSetting({
success(res) {
console.log("****************成功******************");
console.log("scopebluetooth:" + res.authSetting["scope.bluetooth"]);
console.log("成功结果:" + JSON.stringify(res));
if (res.authSetting["scope.bluetooth"] == undefined) {
//不存在
uni.authorize({
scope: "scope.bluetooth",
success() {
console.log("扫描蓝牙中");
tools.showLoadingAlert("扫描蓝牙中");
console.log("11111111")
openBluetooth();
},
fail() {
uni.showToast({
title: "蓝牙授权失败",
icon: "error",
duration: 1500,
});
},
});
} else if (!res.authSetting["scope.bluetooth"]) {
//false
uni.showModal({
title: "是否授权读取蓝牙",
content: "需要获取你的蓝牙,请确认授权,否则无法获取蓝牙",
success: function (mres) {
if (mres.confirm) {
uni.openSetting({
success(authData) {
if (authData.authSetting["scope.bluetooth"] == true) {
tools.showLoadingAlert("扫描蓝牙中");
console.log("2222222")
openBluetooth();
} else {
uni.closeBluetoothAdapter();
uni.showToast({
title: "蓝牙授权失败",
icon: "error",
duration: 1500,
});
}
},
});
} else if (mres.cancel) {
uni.showToast({
title: "蓝牙授权失败",
icon: "error",
duration: 1000,
});
}
},
});
} else {
tools.showLoadingAlert("扫描蓝牙中");
openBluetooth();
}
},
fail(res) {
console.log("****************失败******************");
console.log("失败结果:" + JSON.stringify(res));
},
});
};

/*
* 打开蓝牙
*/
const openBluetooth = () => {
console.log("进来了")
let foundDevices = []; //扫描到的蓝牙列表
uni.closeBluetoothAdapter(); //先关闭蓝牙
//打开蓝牙
uni.openBluetoothAdapter({
success: function (res) {
uni.startBluetoothDevicesDiscovery({
success: function (res) {
console.log(res);
//扫描结果的监听
uni.onBluetoothDeviceFound(function (res) {
// console.log(res.devices);
for (let i = 0; i < res.devices.length; i++) {
let name = res.devices[i]["name"];
let prefixName = "";
let deviceId = res.devices[i]["deviceId"];
console.log(res.devices[i]["name"]);
if (name != "" && name != undefined && name != "undefined") {
if (
name.indexOf("G-WJ") != -1 ||
name.indexOf("ETC") != -1 ||
name.indexOf("G-JL") != -1
) {
//前装设备
prefixName = "ETC";
} else {
//聚力临时设备
if (name.indexOf("5201121") != -1) {
prefixName = "JL";
} else {
prefixName = name.substring(0, 2);
}
}
prefixName = prefixName.toUpperCase();
if (
prefixName == "WJ" ||
prefixName == "JL" ||
prefixName == "JY" ||
prefixName == "AT" ||
prefixName == "JT" ||
prefixName == "WQ" ||
prefixName == "CG" ||
prefixName == "TD" ||
prefixName == "ZZ" ||
prefixName == "ETC"
) {
// //隐藏加载框
tools.hideLoadingAlert();

device.name = name;
device.deviceId = deviceId;
device.prefixName = prefixName;
device.selected = false; //防止重复点击
console.log("device._prefixName", prefixName)
let _name = "";
switch (prefixName) {
case "WJ":
_name = "万集";
break;
case "JL":
_name = "聚利";
break;
case "JY":
_name = "金溢";
break;
case "AT":
_name = "埃特斯";
break;
case "JT":
_name = "建投";
break;
case "WQ":
_name = "握奇";
break;
case "CG":
_name = "成谷";
break;
case "TD":
_name = "天地融";
break;
case "ZZ":
_name = "智载";
break;
case "ETC":
_name = "前装";
break;
default:
_name = "未知";
break;
}
device._name = _name;
console.log("device._name11111", device._name)
if (deviceList.value.length == 0) {
// #ifdef MP-ALIPAY
if (device._name == '聚利' || device._name == '万集' || device._name == '天地融') {
foundDevices.push(device);
console.log("device._name", device._name)
}
// #endif

// #ifdef MP-WEIXIN
foundDevices.push(device);
// #endif
} else {
let isHave = false;
for (let j = 0; j < foundDevices.length; j++) {
if (name == foundDevices[j].deviceId) {
isHave = true;
break;
}
}
if (!isHave) {
foundDevices.push(device);
}
}
console.log("deviceList.value", foundDevices)
// deviceList.value = foundDevices;
foundDevices = [];
// console.log(foundDevices);
}
}
}
});
},
fail: function (res) {
console.log(res);
},
});
},
fail: function (res) {
console.log(res);
alertF("手机蓝牙未打开或不支持蓝牙");
},
});
};

/**
* 连接蓝牙
*/
const connectDevice = (e) => {
console.log(e);
let item = e;
//停止扫描蓝牙
console.info("停止扫描蓝牙");
uni.stopBluetoothDevicesDiscovery({
success: function (res) {
console.log(device, item);
if (item.selected == false) {
console.log("第一次点击了");
item.selected = true;
setTimeout(function () {
if (device.selected == undefined) {
console.info("selected is undefined");
linkFail(); //未找到设备, 请重新搜索
return;
}
item.selected = false;
}, 4000);
} else {
console.log("第二次点击了");
return;
}

if (
item.prefixName == undefined ||
item.prefixName == "undefined" ||
item.prefixName == ""
) {
console.info("device.prefixName is undefined");
linkFail(); //未找到设备, 请重新搜索
return;
}

let prefixName = item.prefixName;

connectPrefixName.value = item.prefixName;
// delete device.prefixName
// delete device._name

console.log(item);
datas.setData("deviceId", device, device.deviceId);
tools.showLoadingAlert("蓝牙连接中");
console.info("连接的是" + prefixName);
switch (prefixName) {
case "WJ":
wjApi.connectDevice(
device,
function (res) {
console.log('WJ输出内容1', res)
connectSuccess(res);
},
function (res) {
console.log('WJ输出内容2', res)
listenStatus(res);
}
);
break;
case "JL":
jlApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;
case "ETC":
jlQZApi.connectDevice(
device,
function (res) {
preDevice(res);
},
function (res) {
listenStatus(res);
}
);
break;
case "JY":
jyApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;
case "AT":
atApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;
case "JT":
jtApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;
case "WQ":
wqApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;
case "CG":
cgApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;

case "TD":
tdApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;

case "ZZ":
zzApi.connectDevice(
device,
function (res) {
connectSuccess(res);
},
function (res) {
listenStatus(res);
}
);
break;

default: //未找到设备, 请重新搜索
linkFail();
break;
}
},
fail: function (res) {
console.log(res);
linkFail(); //未找到设备, 请重新搜索
},
});
};

/**
* 未找到设备, 请重新搜索
*/
const linkFail = () => {
datas.setData("bluLinkStatus", false);
datas.setData("connectPrefixName", "");

tools.showModalAlert("未找到设备, 请重新搜索", function successFunc() {
load();
});
};

/**
* 连接成功
*/
const emit = defineEmits<{
(e : "submit", connectSuccess : any, cardId : any) : void;
}>();
const connectSuccess = (res) => {
console.log("================================================")
console.log("连接回调函数func1");
console.log(res);
if (res.code == 0) {
console.log("连接成功");
datas.setData("bluLinkStatus", true);
datas.setData("connectPrefixName", connectPrefixName.value);

//routeType 1.激活(订单来) 2.圈存 (/pages/recharge/recharge来)3.信息重写 4.信息读取 5从哪里来回哪里去监听bluetoothLink
if (routeType.value == "1") {
uni.navigateTo({
url: "/subpackage/after-sale/activation/activate",
});
} else if (routeType.value == "2") {
// uni.navigateTo({
// url: `/pages/recharge/recharge?connectSuccess=1&&cardId=${state.cardId}`,
// });
emit("submit", 1, state.cardId);
} else if (routeType.value == "3") {

} else if (routeType.value == "4") {
uni.navigateTo({
url: "/subpackage/after-sale/deviceInfo/deviceInfo",
});
}
else if (routeType.value == "5") {
uni.$emit('bluetoothLink', { status: true })
uni.navigateBack({
delta: 1
})
} else {
return;
}
} else {
alertF(res.msg);
}
};

/**
* 前装设备
*/
const preDevice = (res) => {
if (res.code == 0) {
console.log("连接成功");
datas.setData("bluLinkStatus", true);
datas.setData("connectPrefixName", connectPrefixName.value);

// tools.toUrl(route.preActivateInfo);//跳转 前装设备
} else {
alertF(res.msg);
console.log(res.msg);
}
};

/**
* 监听蓝牙状态
*/
const listenStatus = (res) => {
console.log("时时监听蓝牙状态func234");
console.log(res);
if (res.code == 0) {
datas.setData("bluLinkStatus", true);
datas.setData("connectPrefixName", connectPrefixName.value);
connectSuccess(res);
} else {
console.log('输出内容', '=====================================')
datas.setData("bluLinkStatus", false);
datas.setData("connectPrefixName", "");
tools.showToastAlert("蓝牙已断开");

}
};

/**
* 提示加关蓝牙
*/
const alertF = (msg : string) => {
//隐藏加载框
tools.hideLoadingAlert();

//断开蓝牙
bluetoothUtil.disconnectDevice();


//提示对话框
tools.showModalAlert(msg);
};
</script>

<style>
page {
background-color: #f3f3f3;
}

:deep(.u-mode-center-box) {
border-radius: 20rpx;
}
</style>

<style lang="scss" scoped>
.devices {
.device {
width: calc(100% - 30rpx);
margin-left: 30rpx;
display: flex;
flex-direction: row;
align-items: center;
margin-top: 30rpx;
background: white;
padding: 25rpx 20rpx;
border-top-left-radius: 20rpx;
border-bottom-left-radius: 20rpx;
box-shadow: 0px 10px 10rpx 10rpx rgba(223, 223, 223, 0.3);

.head {
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
background-color: #f3f3f3;
}

.center {
flex: 1;
margin-left: 30rpx;
margin-right: 30rpx;

.name {
font-size: 30rpx;
color: #333333;
}

.desc {
font-size: 26rpx;
color: #666666;
margin-top: 25rpx;
}
}

.icon {
width: 43rpx;
height: 43rpx;
margin-right: 10rpx;
}
}

.hint {
margin: 60rpx 30rpx 0px;

.orange-txt {
font-size: 26rpx;
color: #ff8000;

image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
}

.grey-txt {
font-size: 26rpx;
color: #666666;
line-height: 40rpx;
margin-top: 16rpx;
}
}

.btn {
margin: 70rpx 40rpx;
}
}
</style>

+ 3
- 5
pages/bluetooth/bluetooth.vue Bestand weergeven

@@ -538,15 +538,13 @@
});
} else if (routeType.value == "2") {
// #ifdef MP-ALIPAY
uni.navigateTo({
url: `/pages/recharge/recharge?connectSuccess=1&&cardId=${state.cardId}&&fee=${state.fee}`,
});
// uni.navigateTo({
// url: `/pages/recharge/recharge?connectSuccess=1&&cardId=${state.cardId}&&fee=${state.fee}`,
// });
// #endif
// #ifdef MP-WEIXIN
uni.navigateTo({
url: `/pages/recharge/recharge-weixin?connectSuccess=${state.connectSuccess}`,
});
// #endif
} else if (routeType.value == "3") {

} else if (routeType.value == "4") {

+ 4
- 3
pages/index/index.vue Bestand weergeven

@@ -614,13 +614,14 @@
}
const cardRecharge = (val) => {
// #ifdef MP-ALIPAY
msg("业务升级中,请前往九州ETC公众号进行办理。或拨打客服电话400-800-8787")
// val==1 navTo('/pages/recharge/select-car', true) 去圈存的 支付宝
// msg("业务升级中,请前往九州ETC公众号进行办理。或拨打客服电话400-800-8787")
if (val == 1) {
navTo('/pages/recharge/recharge-pay', true)
}
// #endif
// #ifdef MP-WEIXIN
if (val == 1) {
navTo('/pages/recharge/recharge-pay', true)
// navTo('/pages/recharge/recharge', true)
} else if (val == 2) {
navTo('/subpackage/after-sale/rescind-carId/rescind-carId-select', true)
}

+ 0
- 1
pages/order/components/order-list-item-new.vue Bestand weergeven

@@ -189,7 +189,6 @@
gotoActiveOrder,
gotoReturnOrder,
gotoExchangeOrder,
gotoPay,
gotoOrderDetailsPay,
gotoOrderDetails,
gotoAgainUseOrder,

+ 240
- 268
subpackage/after-sale/replace-equipment/cancellation-contract.vue Bestand weergeven

@@ -1,277 +1,249 @@
<template>
<view class="oderPage">
<view class="head">
您的ETC卡类型是记账卡,需要先解约,才可继续办理更换业务,请确认您的签约信息
</view>
<u-form :model="form" ref="myForm" :error-type="errorType">
<view class="from">
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>签约银行</text>
<u-input v-model="form.bank" value="" class="input" disabled />
</view>
</u-form-item>
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>签约时间</text>
<u-input
v-model="form.time"
value="2022-10-11 12:11:12"
class="input"
disabled
/>
</view>
</u-form-item>
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>卡号</text>
<u-input
v-model="form.code"
value="12312313213123"
class="input"
disabled
/>
</view>
</u-form-item>
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>车牌号</text>
<u-input
v-model="form.carID"
value="贵A123321"
class="input"
disabled
/>
</view>
</u-form-item>
</view>
</u-form>
<button class="submit" @click="toPage()">下一步</button>
</view>
<view class="oderPage">
<view class="head">
您的ETC卡类型是记账卡,需要先解约,才可继续办理更换业务,请确认您的签约信息
</view>
<u-form :model="form" ref="myForm" :error-type="errorType">
<view class="from">
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>签约银行</text>
<u-input v-model="form.bank" value="" class="input" disabled />
</view>
</u-form-item>
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>签约时间</text>
<u-input v-model="form.time" value="2022-10-11 12:11:12" class="input" disabled />
</view>
</u-form-item>
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>卡号</text>
<u-input v-model="form.code" value="12312313213123" class="input" disabled />
</view>
</u-form-item>
<u-form-item prop="name">
<view class="from_item">
<text><text style="color: red"></text>车牌号</text>
<u-input v-model="form.carID" value="贵A123321" class="input" disabled />
</view>
</u-form-item>
</view>
</u-form>
<button class="submit" @click="toPage()">下一步</button>
</view>
</template>

<script setup lang="ts">
import navBar from "./components/nav-bar.vue";
import { checkStr } from "@/utils/utils";
import { ref, reactive } from "vue";
import { navTo } from "@/utils/utils";
import { onReady } from "@dcloudio/uni-app";

// 表单数据
const form = reactive({
bank: "工商银行",
time: "2022-10-11 10:12:30",
code: "12321123312313",
carID: "贵A123321",
});
// 验证规则
const rules = {
receiving1: [
{
required: true,
message: "请选择",
trigger: ["change", "blur"],
},
],
receiving2: [
{
required: true,
message: "请选择",
trigger: ["change", "blur"],
},
],
code: [
{
required: true,
message: "请输入",
trigger: ["change", "blur"],
},
],
phone: [
{
required: true,
message: "请输入手机号",
trigger: ["change", "blur"],
},
{
// 自定义验证函数,见上说明
validator: (rule, value, callback) => {
// 上面有说,返回true表示校验通过,返回false表示不通过
console.log(checkStr(value, "mobile"), "0011");
return checkStr(value, "mobile");
},
message: "手机号码不正确",
trigger: ["change", "blur"],
},
],
// status: [{
// required: true,
// message: '请选择状态',
//
// trigger: ['change', 'blur'],
};
// 验证提示类型(toast要版本为1.3.5才支持)
const errorType = ["message", "border-bottom", "toast"];

// 设置验证规则
const myForm = ref(null);
onReady(() => {
myForm.value.setRules(rules);
});

// 单选数据列表
const radiolist1 = reactive([
{
name: "营业点自提",
disabled: false,
},
{
name: "邮寄",
disabled: false,
},
]);

// 单选
const radioChange = (n) => {
console.log("radioChange", n);
// if (n == '卡退费') {
// flag.value = true
// console.log(flag.value);
// } else {
// flag.value = false
// console.log(flag.value);
// }
};

// // 提交
// const submit = () => {
// myForm.value.validate((valid) => {
// console.log(valid);
// if (valid) {
// console.log('验证通过', form);
// } else {
// console.log('验证未通过');
// }
// })
// }
const toPage = () => {
navTo("/subpackage/after-sale/replace-equipment/release-products");
// uni.showModal({
// title: '模拟两种情况',
// confirmText: '有卡有签',
// cancelText: '无卡无签',
// success: function(res) {
// if (res.confirm) {
// console.log('用户点击确定');
// navTo('/pages/bluetooth/bluetooth')
// } else if (res.cancel) {
// console.log('用户点击取消');
// navTo('/subpackage/after-sale/ETC-log-off/upload-card')
// }
// }
// });
};
import navBar from "./components/nav-bar.vue";
import { checkStr } from "@/utils/utils";
import { ref, reactive } from "vue";
import { navTo } from "@/utils/utils";
import { onReady } from "@dcloudio/uni-app";

// 表单数据
const form = reactive({
bank: "工商银行",
time: "2022-10-11 10:12:30",
code: "12321123312313",
carID: "贵A123321",
});
// 验证规则
const rules = {
receiving1: [
{
required: true,
message: "请选择",
trigger: ["change", "blur"],
},
],
receiving2: [
{
required: true,
message: "请选择",
trigger: ["change", "blur"],
},
],
code: [
{
required: true,
message: "请输入",
trigger: ["change", "blur"],
},
],
phone: [
{
required: true,
message: "请输入手机号",
trigger: ["change", "blur"],
},
{
// 自定义验证函数,见上说明
validator: (rule, value, callback) => {
// 上面有说,返回true表示校验通过,返回false表示不通过
console.log(checkStr(value, "mobile"), "0011");
return checkStr(value, "mobile");
},
message: "手机号码不正确",
trigger: ["change", "blur"],
},
],
// status: [{
// required: true,
// message: '请选择状态',
//
// trigger: ['change', 'blur'],
};
// 验证提示类型(toast要版本为1.3.5才支持)
const errorType = ["message", "border-bottom", "toast"];

// 设置验证规则
const myForm = ref(null);
onReady(() => {
myForm.value.setRules(rules);
});

// 单选数据列表
const radiolist1 = reactive([
{
name: "营业点自提",
disabled: false,
},
{
name: "邮寄",
disabled: false,
},
]);

// 单选
const radioChange = (n) => {
console.log("radioChange", n);
// if (n == '卡退费') {
// flag.value = true
// console.log(flag.value);
// } else {
// flag.value = false
// console.log(flag.value);
// }
};

// // 提交
// const submit = () => {
// myForm.value.validate((valid) => {
// console.log(valid);
// if (valid) {
// console.log('验证通过', form);
// } else {
// console.log('验证未通过');
// }
// })
// }
const toPage = () => {
navTo("/subpackage/after-sale/replace-equipment/release-products");
};
</script>

<style>
page {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background: #eef7f7;
}
page {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background: #eef7f7;
}
</style>
<style lang="scss" scoped>
.oderPage {
flex: 1;
width: 100%;

.head {
padding: 30rpx;
font-size: 28rpx;
color: #303133;
padding-bottom: 0;
}

.from {
background-color: #fff;
margin-top: 30rpx;
padding: 0 30rpx;

::v-deep .u-form-item {
padding: 0;
line-height: normal;

.u-form-item__message {
margin-bottom: 12rpx;
}
}

.from_item {
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
height: 80rpx;
border-bottom: 1rpx solid #dcdcdc;

.btn {
font-size: 24rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #ffffff;
background: #00b38b;
border-radius: 10rpx;
padding: 10rpx 15rpx;
}

::v-deep .input {
text-align: right;
flex: 1;
background: transparent;
input {
text-align: right;
}
}
}

.from_item1 {
display: flex;
flex-wrap: nowrap;
flex-direction: column;
justify-content: space-between;
padding: 30rpx;
border-bottom: #dcdcdc 1px solid;

input {
text-align: right;
}

.textarea {
background-color: #f1f1f1;
width: 100%;
border-radius: 20rpx;
margin-top: 10rpx;
text-indent: 1rem;
height: 180rpx;
padding: 20rpx;
box-sizing: border-box;
}
}
}
}

.submit {
background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%);
width: 670rpx;
height: 80rpx;
color: #fff;
border-radius: 100rpx;
position: fixed;
left: 50%;
transform: translate(-50%);
bottom: 60rpx;
font-size: 32rpx;
}
</style>
.oderPage {
flex: 1;
width: 100%;

.head {
padding: 30rpx;
font-size: 28rpx;
color: #303133;
padding-bottom: 0;
}

.from {
background-color: #fff;
margin-top: 30rpx;
padding: 0 30rpx;

::v-deep .u-form-item {
padding: 0;
line-height: normal;

.u-form-item__message {
margin-bottom: 12rpx;
}
}

.from_item {
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
height: 80rpx;
border-bottom: 1rpx solid #dcdcdc;

.btn {
font-size: 24rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #ffffff;
background: #00b38b;
border-radius: 10rpx;
padding: 10rpx 15rpx;
}

::v-deep .input {
text-align: right;
flex: 1;
background: transparent;

input {
text-align: right;
}
}
}

.from_item1 {
display: flex;
flex-wrap: nowrap;
flex-direction: column;
justify-content: space-between;
padding: 30rpx;
border-bottom: #dcdcdc 1px solid;

input {
text-align: right;
}

.textarea {
background-color: #f1f1f1;
width: 100%;
border-radius: 20rpx;
margin-top: 10rpx;
text-indent: 1rem;
height: 180rpx;
padding: 20rpx;
box-sizing: border-box;
}
}
}
}

.submit {
background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%);
width: 670rpx;
height: 80rpx;
color: #fff;
border-radius: 100rpx;
position: fixed;
left: 50%;
transform: translate(-50%);
bottom: 60rpx;
font-size: 32rpx;
}
</style>

+ 0
- 38
subpackage/after-sale/to-bookkeeping-card/detail.vue Bestand weergeven

@@ -133,7 +133,6 @@
import { getItem, StorageKeys } from "@/utils/storage.ts";
import {
checkOrderStatus,
orderPay,
wechatAppID,
wechatPayConfigId,
wechatSecret,
@@ -144,7 +143,6 @@
const flag = ref(1);

const savaHandle = () => {
// wxPayment()
uni.redirectTo({
url: "/subpackage/after-sale/to-bookkeeping-card/result",
});
@@ -184,42 +182,6 @@
});
// #endif
}
//掉起微信支付
const wxPayment = () => {
// #ifdef MP-WEIXIN
const options = {
type: 2,
data: {
openid: state.openid,
productId: "027af827c70140d1ab4c68940f4793f2", //TODO 后端给的,用于调试测试
orderId: state.orderId,
payConfigId: wechatPayConfigId,
},
method: "POST",
showLoading: true,
};
request(orderPay, options).then((res) => {
const data = stringToJson(res.bizContent);
uni.requestPayment({
provider: "wxpay",
orderInfo: "",
timeStamp: data.timestamp,
nonceStr: data.noncestr,
package: data.wxPackage ? data.wxPackage : "",
signType: data.signType,
paySign: data.sign,
success: function (e) {
console.log("支付成功", e);
checkOrder();
},
fail: function (err) {
confirm(err, () => { }, "支付失败", false);
},
});
});
// #endif
};

//支付成功改变订单状态
const checkOrder = () => {
const options = {

+ 0
- 3
subpackage/orders/payment/payment.vue Bestand weergeven

@@ -13,9 +13,6 @@
<button type="default" class="button" @click="savaHandle()">
确认支付
</button>
<!-- <button type="default" class="button" @click="addInterestsList()">
加购权益
</button> -->
</view>
</template>


+ 0
- 55
subpackage/orders/product-detail.vue Bestand weergeven

@@ -131,7 +131,6 @@
} from "@/utils/storage.ts";
import {
checkOrderStatus,
orderPay,
wechatAppID,
wechatPayConfigId,
wechatSecret,
@@ -145,24 +144,6 @@

const savaHandle = () => {
console.log("state.productId.length", state.productId.length)
//判断是否有加购权益
// if (state.productId.length > 0) {
// queryAddProduct();
// }
// uni.showModal({
// // title: '提示',
// content: '确定支付',
// success: function (res) {
// if (res.confirm) {
// console.log('用户点击确定');
// wxPayment();
// } else if (res.cancel) {
// console.log('用户点击取消');
// }
// }
// });
// msg("确定绑定权益产品");
// wxPayment();
if (state.typeScanCode == 2) {
console.log("state.typeScanCode", state.typeScanCode)
// 扫码进来
@@ -248,42 +229,6 @@
});
// #endif
}
//唤起微信支付
const wxPayment = () => {
// #ifdef MP-WEIXIN
const options = {
type: 2,
data: {
openid: state.openid,
productId: state.id,
orderId: state.orderId,
payConfigId: wechatPayConfigId,
},
method: "POST",
showLoading: true,
};
request(orderPay, options).then((res) => {
const data = stringToJson(res.bizContent);
uni.requestPayment({
provider: "wxpay",
orderInfo: "",
timeStamp: data.timestamp,
nonceStr: data.noncestr,
package: data.wxPackage ? data.wxPackage : "",
signType: data.signType,
paySign: data.sign,
success: function (e) {
console.log("支付成功", e);
checkOrder();
},
fail: function (err) {
// checkOrder();
confirm(err, () => { }, "支付失败", false);
},
});
});
// #endif
};

//支付成功改变订单状态
const checkOrder = () => {

Laden…
Annuleren
Opslaan