118 lines
2.6 KiB
Vue
Raw Normal View History

2025-04-14 10:57:27 +08:00
<template>
<div>
<image class="img" src="/static/userui/scan/back.png" />
<div class="divBox">
<div class="divScan">
<div class="divScanTitle">请扫码车身的二维码进行解锁</div>
<div class="box">
<div class="corner-final tl"></div>
<div class="corner-final tr"></div>
<div class="corner-final bl"></div>
<div class="corner-final br"></div>
<camera mode="scanCode" device-position="back" style="width: 100%; height: 100%;"
@scancode="scanCode" :flash="openLight" :initdone="(isInitDone = true)">
</camera>
</div>
<div v-if="showWorn" style="text-align: center;margin-top: 10px;">
<label style="background-color: #61D246;border-radius: 15px;padding: 5px 10px;color: white;">
<uni-icons type="checkbox-filled" size="16" color="white" />
扫码成功
</label>
</div>
</div>
<div class="divBottom">
<div class="divBtn" @click="openCode">
<image src="/static/userui/scan/code.png" />
<div>输入车辆编号</div>
</div>
<div class="divBtn" @click="clickLight">
<image src="/static/userui/scan/light.png" />
<div>{{openLight=="off"?"打开":"关闭"}}手电筒</div>
</div>
</div>
</div>
</div>
<!-- -->
</template>
<script setup>
import {
ref
} from 'vue';
import {
onLoad
} from "@dcloudio/uni-app";
let bikeCode = null;
const openLight = ref("off");
const showWorn = ref(false);
const oUser = uni.getStorageSync("wechat_user");
let type = null;
onLoad((options)=>{
type = options["type"];
});
function openCode(){
uni.navigateTo({
url:"/pages/user/scan/inputcode"
})
}
function scanCode(res) {
const {
result
} = res.detail;
if (!result || result.indexOf("number") == -1) {
showModelMessage("无效的车辆二维码");
return;
}
const options = getUrlParams(result);
bikeCode = options["number"];
if(type=="ride"){
addRide(bikeCode)
}
console.log("11111111111111111111", "scanCode", options);
}
//订单
function addRide(bikeId){
const {
userId
} = oUser;
const params = {
userId,
bikeId
}
callOrdereApi("userOrders/saveRide", params, "post").then(res => {
const {
code,
message
} = res;
console.log("11111111111111111111", "addRide", res);
if (code != 200) {
showModelMessage(message);
} else {
showWorn.value = true;
setTimeout(()=>{
uni.navigateTo({
url:"/pages/user/home/home"
})
},1000)
}
})
}
function clickLight() {
openLight.value = !openLight.value;
}
</script>
<style scoped>
@import url("scancode.css");
</style>