已废弃
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

100 lines
4.3 KiB

<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>扫码</title>
<link rel="stylesheet" href="/static/lib/layui-v2.8.6/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/layuimini.css?v=2.0.4.2" media="all">
<link rel="stylesheet" href="/static/css/themes/default.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<!--[if lt IE 9]>
<script src="/static/js/html5.min.js"></script>
<script src="/static/js/respond.min.js"></script>
<![endif]-->
<!-- vue相关-->
<script src="../static/js/vue/vue.js"></script>
<script src="../static/js/vue/vue-router.js"></script>
<script src="../static/lib/http-vue-loader/src/httpVueLoader.js"></script>
<script src="../static/js/VueQrcodeReader.umd.min.js"></script>
<script src="/static/js/scanBarCode/html5-qrcode.min.js"></script>
</head>
<body>
<div style="width: 500px" id="reader">
</div>
<script src="/static/lib/layui-v2.8.6/layui.js" charset="utf-8"></script>
<script>
// 条形码
let barCode;
var depository;
var place;
// 是否扫描二维码标志位
var flag = false;
const html5QrCode = new Html5Qrcode("reader");
const qrCodeSuccessCallback = (decodedText, decodedResult) => {
/* 扫描成功 */
var formatName = decodedResult.result.format.formatName;
html5QrCode.stop().then((ignore) => {
// 暂停扫描
if (formatName.includes("QR_CODE")||formatName.includes("AZTEC")) {
// 如果扫描的位本地二维码
flag = true;
// 先解密
let jmResult = {};
jmResult.result = decodedText;
layui.$.ajax({
url: "/material/decode3Des",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(jmResult),
success:function (d) {
let parse = JSON.parse(d.data);
if (parse.did !== undefined) {
// 如果扫描的是仓库二维码
depository = parse;
layui.$("#openSonByDepository",window.parent.document).val(depository.dname);
layui.$("#depositoryId",window.parent.document).val(depository.did);
layui.$("#placeId",window.parent.document).val(0);
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
else if (parse.pid !== undefined) {
// 如果扫描的是库位二维码
place = parse;
layui.$("#openSonByDepository",window.parent.document).val(place.dname +"-"+ place.code);
layui.$("#depositoryId",window.parent.document).val(place.depositoryId);
layui.$("#placeId",window.parent.document).val(place.pid);
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
else{
layer.msg("请扫描正确的二维码",{
icon:0,
time:500
},function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
});
}
}
})
}else{
console.log("条形码",decodedText);
// 如果是条形码
}
}).catch((err) => {
console.log(err)
// 停止失败,处理它。
});
};
const config = { fps: 10, aspectRatio: 2 };
// Select back camera or fail with `OverconstrainedError`.
html5QrCode.start({ facingMode: { exact: "environment"} }, config, qrCodeSuccessCallback);
</script>
</body>
</html>