feat(scanlistener): 添加PDA扫码模块支持广播和键盘输入
添加qs-scanlistener模块,支持通过广播和键盘输入方式获取扫码结果 更新manifest.json添加abiFilters配置 重构easycode.vue使用新的扫码模块替代原生扫码
This commit is contained in:
101
apps/hand-factory/components/klp-scaner/klp-scaner.vue
Normal file
101
apps/hand-factory/components/klp-scaner/klp-scaner.vue
Normal file
@@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<view>
|
||||
<uni-popup ref="pdaScanPopup" type='center'>
|
||||
<view>扫码提示</view>
|
||||
请对准二维码或条形码扫描查看结果
|
||||
|
||||
<button>取消</button>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "klp-scaner",
|
||||
data() {
|
||||
return {
|
||||
pdaScaning: false,
|
||||
main: null,
|
||||
indent: null
|
||||
};
|
||||
},
|
||||
onHide: function() {
|
||||
if (uni.getSystemInfoSync().platform === 'android') {
|
||||
this.stopScan();
|
||||
}
|
||||
},
|
||||
destroyed: function() {
|
||||
// 页面退出时一定要卸载监听,否则下次进来时会重复,造成扫一次出2个以上的结果
|
||||
if (uni.getSystemInfoSync().platform === 'android') {
|
||||
this.stopScan();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (uni.getSystemInfoSync().platform === 'android') {
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.main = plus.android.runtimeMainActivity(); //获取activity
|
||||
let context = plus.android.importClass('android.content.Context'); //上下文
|
||||
let receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
|
||||
onReceive: this.doReceive
|
||||
});
|
||||
this.receiver = receiver;
|
||||
let IntentFilter = plus.android.importClass('android.content.IntentFilter');
|
||||
let Intent = plus.android.importClass('android.content.Intent');
|
||||
let filter = new IntentFilter();
|
||||
|
||||
filter.addAction("nlscan.action.SCANNER_RESULT"); //监听扫描,根据设备的广播动作进行更换
|
||||
// filter.addAction("android.intent.action.SCANRESULT"); //监听扫描,根据设备的广播动作进行更换
|
||||
|
||||
this.doS(receiver, filter);
|
||||
},
|
||||
doS(receiver, filter) {
|
||||
this.main.registerReceiver(receiver, filter);
|
||||
},
|
||||
doReceive(context, intent) {
|
||||
//通过intent实例引入intent类,方便以后的‘.’操作
|
||||
console.log(indent);
|
||||
plus.android.importClass(intent);
|
||||
let barcodeData = intent.getStringExtra("SCAN_BARCODE1"); //获取扫描结果
|
||||
// let barcodeData = intent.getStringExtra("value"); //获取扫描结果
|
||||
let barcodeType = intent.getIntExtra("SCAN_BARCODE_TYPE", -1); //获取扫码类型
|
||||
if (this.pdaScaning) {
|
||||
uni.$emit('scan', {
|
||||
code: barcodeData
|
||||
})
|
||||
}
|
||||
},
|
||||
stopScan() {
|
||||
this.main.unregisterReceiver(this.receiver);
|
||||
},
|
||||
startScan(mode = 'camera') {
|
||||
if (mode == 'camera') {
|
||||
uni.scanCode({
|
||||
success(res) {
|
||||
resolve(res.result);
|
||||
this.$emit('scan', res.result)
|
||||
},
|
||||
fail() {
|
||||
reject()
|
||||
}
|
||||
})
|
||||
} else if (mode == 'pda') {
|
||||
this.pdaScaning = true;
|
||||
this.$refs.pdaScanPopup.open()
|
||||
// 等待对应的广播消息,收到广播消息后返回扫码结果,
|
||||
}
|
||||
}
|
||||
},
|
||||
closePdaScanPopup() {
|
||||
this.pdaScaning = false;
|
||||
this.$refs.pdaScanPopup.close()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
@@ -35,7 +35,8 @@
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
],
|
||||
"abiFilters" : [ "armeabi-v7a" ]
|
||||
},
|
||||
"ios" : {
|
||||
"dSYMs" : false
|
||||
|
||||
@@ -105,6 +105,9 @@
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<!-- <klp-scaner></klp-scaner> -->
|
||||
<qs-scanlistener ref='pda'></qs-scanlistener>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -124,7 +127,6 @@
|
||||
import {
|
||||
addPendingAction
|
||||
} from '@/api/wms/pendingAction.js'
|
||||
// 导入获取库区详情的接口(需确保接口存在,若接口名不同请调整)
|
||||
import {
|
||||
getActualWarehouse
|
||||
} from '@/api/wms/actualWarehouse.js'
|
||||
@@ -137,7 +139,8 @@
|
||||
coilDetail: {},
|
||||
form: {},
|
||||
targetWarehouse: null, // 存储选中的目标库区信息
|
||||
bomDialogShow: false // BOM参数弹窗控制(原有功能补充)
|
||||
bomDialogShow: false, // BOM参数弹窗控制(原有功能补充),
|
||||
mode: 'pda' // pda或camera
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -165,6 +168,28 @@
|
||||
})
|
||||
},
|
||||
|
||||
scan(mode = 'pda') {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (mode == 'camera') {
|
||||
uni.scanCode({
|
||||
success(res) {
|
||||
console.log('扫码成功')
|
||||
resolve(res.result)
|
||||
},
|
||||
fail() {
|
||||
reject()
|
||||
}
|
||||
})
|
||||
} else if (mode == 'pda') {
|
||||
this.$refs.pda.open().then(code => {
|
||||
resolve(code);
|
||||
}).catch(() => {
|
||||
reject()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
async handlePack() {
|
||||
const content = await this.getQRCodeContent()
|
||||
let coilId = content.current_coil_id && content.current_coil_id !== 'null' ? content
|
||||
@@ -181,35 +206,32 @@
|
||||
})
|
||||
},
|
||||
|
||||
handleSee() {
|
||||
uni.scanCode({
|
||||
success(scanRes) {
|
||||
// 查询真实库区在此处的钢卷
|
||||
listMaterialCoil({
|
||||
actualWarehouseId: scanRes.result,
|
||||
dataType: 1
|
||||
}).then(res => {
|
||||
if (res.total == 0) {
|
||||
uni.showToast({
|
||||
title: '该库区未发现钢卷',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (res.rows.length == 1) {
|
||||
const coilId = res.rows[0].coilId;
|
||||
uni.navigateTo({
|
||||
url: '/pages/easycode/editby?coilId=' + coilId
|
||||
})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '数据异常',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
async handleSee() {
|
||||
const actualWarehouseId = await this.scan()
|
||||
|
||||
// 查询真实库区在此处的钢卷
|
||||
const res = await listMaterialCoil({
|
||||
actualWarehouseId,
|
||||
dataType: 1
|
||||
})
|
||||
if (res.total == 0) {
|
||||
uni.showToast({
|
||||
title: '该库区未发现钢卷',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (res.rows.length == 1) {
|
||||
const coilId = res.rows[0].coilId;
|
||||
uni.navigateTo({
|
||||
url: '/pages/easycode/editby?coilId=' + coilId
|
||||
})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '数据异常',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 扫码并创建待操作(原有方法不变)
|
||||
@@ -279,65 +301,55 @@
|
||||
// 通用扫码获取二维码内容(原有方法不变)
|
||||
async getQRCodeContent() {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.scanCode({
|
||||
success: async (res) => {
|
||||
console.log('=== 开始扫码流程 ===');
|
||||
console.log('扫码结果:', res.result);
|
||||
uni.showLoading({
|
||||
title: '处理中...'
|
||||
});
|
||||
this.scan().then(async res => {
|
||||
uni.showLoading({
|
||||
title: '处理中...'
|
||||
});
|
||||
try {
|
||||
const qrcodeId = res;
|
||||
// 1. 通过二维码ID获取二维码详情
|
||||
console.log('1. 获取二维码详情,ID:', qrcodeId);
|
||||
const qrcodeRes = await getGenerateRecord(qrcodeId);
|
||||
console.log('二维码响应:', qrcodeRes);
|
||||
|
||||
try {
|
||||
const qrcodeId = res.result;
|
||||
// 1. 通过二维码ID获取二维码详情
|
||||
console.log('1. 获取二维码详情,ID:', qrcodeId);
|
||||
const qrcodeRes = await getGenerateRecord(qrcodeId);
|
||||
console.log('二维码响应:', qrcodeRes);
|
||||
|
||||
if (qrcodeRes.code !== 200) {
|
||||
throw new Error('未找到二维码记录');
|
||||
}
|
||||
|
||||
// 2. 解析二维码的content,获取coil_id
|
||||
const qrcodeRecord = qrcodeRes.data;
|
||||
console.log('2. 二维码记录:', qrcodeRecord);
|
||||
|
||||
// 检查二维码状态(0=失效,1=有效)
|
||||
if (qrcodeRecord.status === 0) {
|
||||
uni.hideLoading();
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '该二维码已失效,无法创建待操作任务',
|
||||
showCancel: false
|
||||
});
|
||||
return;
|
||||
}
|
||||
uni.hideLoading();
|
||||
|
||||
const content = JSON.parse(qrcodeRecord.content);
|
||||
console.log('解析后的内容:', content);
|
||||
resolve(content)
|
||||
} catch (err) {
|
||||
console.error('=== 扫码处理失败 ===');
|
||||
console.error('错误信息:', err);
|
||||
console.error('错误堆栈:', err.stack);
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: err.message || '处理失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
reject()
|
||||
if (qrcodeRes.code !== 200) {
|
||||
throw new Error('未找到二维码记录');
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
|
||||
// 2. 解析二维码的content,获取coil_id
|
||||
const qrcodeRecord = qrcodeRes.data;
|
||||
console.log('2. 二维码记录:', qrcodeRecord);
|
||||
|
||||
// 检查二维码状态(0=失效,1=有效)
|
||||
if (qrcodeRecord.status === 0) {
|
||||
uni.hideLoading();
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '该二维码已失效,无法创建待操作任务',
|
||||
showCancel: false
|
||||
});
|
||||
return;
|
||||
}
|
||||
uni.hideLoading();
|
||||
|
||||
const content = JSON.parse(qrcodeRecord.content);
|
||||
console.log('解析后的内容:', content);
|
||||
resolve(content)
|
||||
} catch (err) {
|
||||
console.error('=== 扫码处理失败 ===');
|
||||
console.error('错误信息:', err);
|
||||
console.error('错误堆栈:', err.stack);
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '扫码失败,请重试',
|
||||
icon: 'none'
|
||||
title: err.message || '处理失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
reject();
|
||||
reject()
|
||||
}
|
||||
});
|
||||
}).catch(() => {
|
||||
reject()
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
@@ -416,7 +428,7 @@
|
||||
} catch (error) {
|
||||
console.error('发货失败:', error);
|
||||
uni.showToast({
|
||||
title: error.message || '发货失败',
|
||||
title: error?.message || '发货失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
@@ -475,7 +487,7 @@
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: error.message || '打开移库失败',
|
||||
title: error?.message || '打开移库失败',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
@@ -489,17 +501,10 @@
|
||||
title: '扫码中...'
|
||||
});
|
||||
// 扫描库区二维码
|
||||
const scanRes = await new Promise((resolve, reject) => {
|
||||
uni.scanCode({
|
||||
success: resolve,
|
||||
fail: (err) => {
|
||||
reject(new Error('扫码取消或失败'));
|
||||
}
|
||||
});
|
||||
});
|
||||
const scanRes = await this.scan()
|
||||
uni.hideLoading();
|
||||
|
||||
const warehouseQrCode = scanRes.result;
|
||||
const warehouseQrCode = scanRes;
|
||||
if (!warehouseQrCode) {
|
||||
throw new Error('未识别到库区信息');
|
||||
}
|
||||
@@ -539,7 +544,7 @@
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: error.message || '扫描库区失败',
|
||||
title: error?.message || '扫描库区失败',
|
||||
icon: 'none',
|
||||
duration: 2500
|
||||
});
|
||||
@@ -630,7 +635,7 @@
|
||||
uni.hideLoading();
|
||||
console.error('移库失败详情:', error);
|
||||
uni.showToast({
|
||||
title: error.message || '移库失败,请重试',
|
||||
title: error?.message || '移库失败,请重试',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
## 1.0.0(2022-12-17)
|
||||
create
|
||||
@@ -0,0 +1,118 @@
|
||||
<template>
|
||||
<uni-popup ref="pdaScanPopup" type='center'>
|
||||
<view>扫码提示</view>
|
||||
请对准二维码或条形码扫描查看结果
|
||||
|
||||
<button @click="close">取消</button>
|
||||
</uni-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import scaninput from './scanInput.js'
|
||||
scaninput.initScan()
|
||||
scaninput.startScan()
|
||||
export default {
|
||||
name: "scan-listener",
|
||||
created() {
|
||||
scaninput.install(this.scanHandle)
|
||||
// uni.$on('scan_handle', this.scanHandle)
|
||||
},
|
||||
beforeDestroy() {
|
||||
scaninput.uninstall(this.scanHandle)
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
scaning: false,
|
||||
timer: undefined,
|
||||
loading: false,
|
||||
code: undefined,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onEvent(event) {
|
||||
// console.log(event.key)
|
||||
if (event.key != 'Enter' && event.key != 'PrintScreen') { // 拼接输入的值,Enter与PrintScreen是物理按钮要排除
|
||||
this.inputVal = this.inputVal + event.key
|
||||
}
|
||||
if (event.key == 'Enter') {
|
||||
let reg = new RegExp('Shift', 'g') //g代表全部
|
||||
let reg2 = new RegExp('Unidentified', 'g') //排除‘Unidentified’字符
|
||||
let inputVal = this.inputVal
|
||||
inputVal = inputVal.replace(reg, "")
|
||||
inputVal = inputVal.replace(reg2, "")
|
||||
inputVal = inputVal.replace(/\s/g, "")
|
||||
inputVal = inputVal.replace(/\r\n/g, "")
|
||||
inputVal = inputVal.replace(/\n/g, "")
|
||||
if (this.inputVal) {
|
||||
// console.log('键盘监听模式')
|
||||
this.$emit('scan', this.inputVal)
|
||||
}
|
||||
this.inputVal = ''
|
||||
}
|
||||
},
|
||||
scanHandle(code) {
|
||||
// console.log('广播模式')
|
||||
this.loading = true;
|
||||
this.code = code;
|
||||
this.$emit('scan', code)
|
||||
},
|
||||
open() {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!this.scaning) {
|
||||
this.scaning = true;
|
||||
this.$refs.pdaScanPopup.open();
|
||||
this.timer = setInterval(() => {
|
||||
if (this.loading) {
|
||||
resolve(this.code)
|
||||
this.close();
|
||||
}
|
||||
}, 100)
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请等待当前操作完成'
|
||||
})
|
||||
reject()
|
||||
}
|
||||
})
|
||||
},
|
||||
close() {
|
||||
this.scaning = false;
|
||||
this.loading = false;
|
||||
clearInterval(this.timer);
|
||||
this.$refs.pdaScanPopup.close();
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
inputVal: '',
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script module="keyboard" lang="renderjs">
|
||||
export default {
|
||||
mounted() {
|
||||
const onKey = (event) => {
|
||||
const keys1 = ['type', 'timeStamp']
|
||||
const keys2 = ['altKey', 'code', 'ctrlKey', 'isComposing', 'key', 'location', 'metaKey', 'repeat', 'shiftKey']
|
||||
const keys3 = ['char', 'charCode', 'keyCode', 'keyIdentifier', 'keyLocation', 'which']
|
||||
const data = {}
|
||||
keys1.concat(keys2, keys3).forEach(key => data[key] = event[key])
|
||||
this.$ownerInstance.callMethod('onEvent', data)
|
||||
}
|
||||
const names = ['keyup'] //'keydown',
|
||||
names.forEach(name => {
|
||||
document.addEventListener(name, onKey, false)
|
||||
})
|
||||
this.$on('hook:beforeDestroy', () => {
|
||||
names.forEach(name => {
|
||||
document.removeEventListener(name, onKey, false)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,56 @@
|
||||
let main, receiver, filter, _codeQueryTag = false, temp = [], init = false, start = false;
|
||||
export default {
|
||||
initScan() {
|
||||
if(init) return
|
||||
let _this = this;
|
||||
main = plus.android.runtimeMainActivity(); //获取activity
|
||||
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
|
||||
filter = new IntentFilter();
|
||||
|
||||
// android.intent.ACTION_DECODE_DATA
|
||||
filter.addAction("com.hc.scan"); // 换你的广播动作,你的pda设备里面看
|
||||
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
|
||||
onReceive: function(context, intent) {
|
||||
//barcode_string
|
||||
plus.android.importClass(intent);
|
||||
let code = intent.getStringExtra("Barcode"); // 换你的广播标签,你的pda设备里面看
|
||||
_this.queryCode(code);
|
||||
}
|
||||
});
|
||||
init = true
|
||||
},
|
||||
startScan() {
|
||||
if(!start) {
|
||||
start = true
|
||||
main.registerReceiver(receiver, filter);
|
||||
}
|
||||
},
|
||||
stopScan() {
|
||||
if(start) {
|
||||
start = false
|
||||
main.unregisterReceiver(receiver);
|
||||
}
|
||||
},
|
||||
install(fn) {
|
||||
if(typeof fn == 'function' && !~temp.indexOf(fn)) temp.push(fn)
|
||||
},
|
||||
uninstall(fn) {
|
||||
if(typeof fn == 'function') {
|
||||
const index = temp.find(i=>i == fn)
|
||||
if(~index) temp.splice(index, 1)
|
||||
}
|
||||
},
|
||||
queryCode: function(code) {
|
||||
//防重复
|
||||
// if (_codeQueryTag) return false;
|
||||
// _codeQueryTag = true;
|
||||
// setTimeout(function() {
|
||||
// _codeQueryTag = false;
|
||||
// }, 150);
|
||||
if(temp && temp.length) {
|
||||
temp[temp.length - 1](code)
|
||||
}
|
||||
uni.vibrateShort()
|
||||
uni.$emit("qs_scanlistener_handle", code);
|
||||
}
|
||||
}
|
||||
82
apps/hand-factory/uni_modules/qs-scanlistener/package.json
Normal file
82
apps/hand-factory/uni_modules/qs-scanlistener/package.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"id": "qs-scanlistener",
|
||||
"displayName": "qs-scanlistener PDA扫码",
|
||||
"version": "1.0.0",
|
||||
"description": "PDA扫码 兼容广播和键盘",
|
||||
"keywords": [
|
||||
"pda",
|
||||
"扫码"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.1.0"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "component-vue",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "0.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": ""
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "无",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"dependencies": [],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "y",
|
||||
"vue3": "y"
|
||||
},
|
||||
"App": {
|
||||
"app-vue": "y",
|
||||
"app-nvue": "n"
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "n",
|
||||
"Android Browser": "n",
|
||||
"微信浏览器(Android)": "n",
|
||||
"QQ浏览器(Android)": "n"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "n",
|
||||
"IE": "n",
|
||||
"Edge": "n",
|
||||
"Firefox": "n",
|
||||
"Safari": "n"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "n",
|
||||
"阿里": "n",
|
||||
"百度": "n",
|
||||
"字节跳动": "n",
|
||||
"QQ": "n",
|
||||
"钉钉": "n",
|
||||
"快手": "n",
|
||||
"飞书": "n",
|
||||
"京东": "n"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "n",
|
||||
"联盟": "n"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
20
apps/hand-factory/uni_modules/qs-scanlistener/readme.md
Normal file
20
apps/hand-factory/uni_modules/qs-scanlistener/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
## qs-scanlistener PDA扫码
|
||||
## 支持广播和键盘
|
||||
---
|
||||
### 广播动作可在main.js设置uni._qs_scanlistener_action = 你的广播动作名称, 默认android.intent.ACTION_DECODE_DATA
|
||||
### 广播标签可在main.js设置uni._qs_scanlistener_label = 你的广播标签名称, 默认barcode_string
|
||||
---
|
||||
### 扫码结果也可以uni.$on('qs_scanlistener_handle', code=>{}) 中获取
|
||||
---
|
||||
Template
|
||||
```html
|
||||
<qs-scanlistener @scan="scan"></qs-scanlistener>
|
||||
```
|
||||
js
|
||||
```javascript
|
||||
methods: {
|
||||
scan(code) {
|
||||
console.log(code)
|
||||
}
|
||||
}
|
||||
```
|
||||
205
pnpm-lock.yaml
generated
205
pnpm-lock.yaml
generated
@@ -273,7 +273,7 @@ importers:
|
||||
devDependencies:
|
||||
'@babel/plugin-proposal-optional-chaining':
|
||||
specifier: ^7.21.0
|
||||
version: 7.21.0(@babel/core@7.28.4)
|
||||
version: 7.21.0(@babel/core@7.28.5)
|
||||
'@vue/cli-plugin-babel':
|
||||
specifier: 4.4.6
|
||||
version: 4.4.6(@vue/cli-service@4.4.6)(core-js@3.25.3)(vue@2.6.12)
|
||||
@@ -370,7 +370,7 @@ importers:
|
||||
devDependencies:
|
||||
'@commitlint/cli':
|
||||
specifier: ^19.3.0
|
||||
version: 19.8.1(@types/node@24.7.1)(typescript@5.9.3)
|
||||
version: 19.8.1(@types/node@25.0.3)(typescript@5.9.3)
|
||||
'@commitlint/config-conventional':
|
||||
specifier: ^19.2.2
|
||||
version: 19.8.1
|
||||
@@ -394,10 +394,10 @@ importers:
|
||||
version: 5.2.4(vite@5.4.21)(vue@3.5.25)
|
||||
commitizen:
|
||||
specifier: ^4.3.0
|
||||
version: 4.3.1(@types/node@24.7.1)(typescript@5.9.3)
|
||||
version: 4.3.1(@types/node@25.0.3)(typescript@5.9.3)
|
||||
cz-conventional-changelog:
|
||||
specifier: ^3.3.0
|
||||
version: 3.3.0(@types/node@24.7.1)(typescript@5.9.3)
|
||||
version: 3.3.0(@types/node@25.0.3)(typescript@5.9.3)
|
||||
eslint:
|
||||
specifier: ^9.5.0
|
||||
version: 9.39.1
|
||||
@@ -457,7 +457,7 @@ importers:
|
||||
version: 0.8.0
|
||||
vite:
|
||||
specifier: ^5.3.1
|
||||
version: 5.4.21(@types/node@24.7.1)(sass@1.94.2)
|
||||
version: 5.4.21(@types/node@25.0.3)(sass@1.94.2)
|
||||
vue-tsc:
|
||||
specifier: ^2.0.21
|
||||
version: 2.2.12(typescript@5.9.3)
|
||||
@@ -469,7 +469,7 @@ importers:
|
||||
version: 1.13.2
|
||||
element-ui:
|
||||
specifier: ^2.15.14
|
||||
version: 2.15.14(vue@2.6.12)
|
||||
version: 2.15.14(vue@2.7.16)
|
||||
file-saver:
|
||||
specifier: ^2.0.5
|
||||
version: 2.0.5
|
||||
@@ -525,6 +525,29 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/core@7.28.5:
|
||||
resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.28.5
|
||||
'@babel/helper-compilation-targets': 7.27.2
|
||||
'@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
|
||||
'@babel/helpers': 7.28.4
|
||||
'@babel/parser': 7.28.5
|
||||
'@babel/template': 7.27.2
|
||||
'@babel/traverse': 7.28.5
|
||||
'@babel/types': 7.28.5
|
||||
'@jridgewell/remapping': 2.3.5
|
||||
convert-source-map: 2.0.0
|
||||
debug: 4.4.3(supports-color@6.1.0)
|
||||
gensync: 1.0.0-beta.2
|
||||
json5: 2.2.3
|
||||
semver: 6.3.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/generator@7.28.3:
|
||||
resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -536,6 +559,17 @@ packages:
|
||||
jsesc: 3.1.0
|
||||
dev: true
|
||||
|
||||
/@babel/generator@7.28.5:
|
||||
resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/parser': 7.28.5
|
||||
'@babel/types': 7.28.5
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
jsesc: 3.1.0
|
||||
dev: true
|
||||
|
||||
/@babel/helper-annotate-as-pure@7.27.3:
|
||||
resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -638,6 +672,20 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5):
|
||||
resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0
|
||||
dependencies:
|
||||
'@babel/core': 7.28.5
|
||||
'@babel/helper-module-imports': 7.27.1
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
'@babel/traverse': 7.28.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/helper-optimise-call-expression@7.27.1:
|
||||
resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -834,17 +882,17 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.28.4):
|
||||
/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.28.5):
|
||||
resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.28.4
|
||||
'@babel/core': 7.28.5
|
||||
'@babel/helper-plugin-utils': 7.27.1
|
||||
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
|
||||
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4)
|
||||
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@@ -907,12 +955,12 @@ packages:
|
||||
'@babel/helper-plugin-utils': 7.27.1
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4):
|
||||
/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5):
|
||||
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.28.4
|
||||
'@babel/core': 7.28.5
|
||||
'@babel/helper-plugin-utils': 7.27.1
|
||||
dev: true
|
||||
|
||||
@@ -1652,6 +1700,21 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/traverse@7.28.5:
|
||||
resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.28.5
|
||||
'@babel/helper-globals': 7.28.0
|
||||
'@babel/parser': 7.28.5
|
||||
'@babel/template': 7.27.2
|
||||
'@babel/types': 7.28.5
|
||||
debug: 4.4.3(supports-color@6.1.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/types@7.28.4:
|
||||
resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -1698,14 +1761,14 @@ packages:
|
||||
keyv: 5.5.4
|
||||
dev: true
|
||||
|
||||
/@commitlint/cli@19.8.1(@types/node@24.7.1)(typescript@5.9.3):
|
||||
/@commitlint/cli@19.8.1(@types/node@25.0.3)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==}
|
||||
engines: {node: '>=v18'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@commitlint/format': 19.8.1
|
||||
'@commitlint/lint': 19.8.1
|
||||
'@commitlint/load': 19.8.1(@types/node@24.7.1)(typescript@5.9.3)
|
||||
'@commitlint/load': 19.8.1(@types/node@25.0.3)(typescript@5.9.3)
|
||||
'@commitlint/read': 19.8.1
|
||||
'@commitlint/types': 19.8.1
|
||||
tinyexec: 1.0.2
|
||||
@@ -1731,12 +1794,12 @@ packages:
|
||||
ajv: 8.17.1
|
||||
dev: true
|
||||
|
||||
/@commitlint/config-validator@20.0.0:
|
||||
resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==}
|
||||
/@commitlint/config-validator@20.2.0:
|
||||
resolution: {integrity: sha512-SQCBGsL9MFk8utWNSthdxd9iOD1pIVZSHxGBwYIGfd67RTjxqzFOSAYeQVXOu3IxRC3YrTOH37ThnTLjUlyF2w==}
|
||||
engines: {node: '>=v18'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@commitlint/types': 20.0.0
|
||||
'@commitlint/types': 20.2.0
|
||||
ajv: 8.17.1
|
||||
dev: true
|
||||
optional: true
|
||||
@@ -1791,7 +1854,7 @@ packages:
|
||||
'@commitlint/types': 19.8.1
|
||||
dev: true
|
||||
|
||||
/@commitlint/load@19.8.1(@types/node@24.7.1)(typescript@5.9.3):
|
||||
/@commitlint/load@19.8.1(@types/node@25.0.3)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==}
|
||||
engines: {node: '>=v18'}
|
||||
dependencies:
|
||||
@@ -1801,7 +1864,7 @@ packages:
|
||||
'@commitlint/types': 19.8.1
|
||||
chalk: 5.6.2
|
||||
cosmiconfig: 9.0.0(typescript@5.9.3)
|
||||
cosmiconfig-typescript-loader: 6.2.0(@types/node@24.7.1)(cosmiconfig@9.0.0)(typescript@5.9.3)
|
||||
cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0)(typescript@5.9.3)
|
||||
lodash.isplainobject: 4.0.6
|
||||
lodash.merge: 4.6.2
|
||||
lodash.uniq: 4.5.0
|
||||
@@ -1810,18 +1873,18 @@ packages:
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/@commitlint/load@20.1.0(@types/node@24.7.1)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==}
|
||||
/@commitlint/load@20.2.0(@types/node@25.0.3)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-iAK2GaBM8sPFTSwtagI67HrLKHIUxQc2BgpgNc/UMNme6LfmtHpIxQoN1TbP+X1iz58jq32HL1GbrFTCzcMi6g==}
|
||||
engines: {node: '>=v18'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@commitlint/config-validator': 20.0.0
|
||||
'@commitlint/config-validator': 20.2.0
|
||||
'@commitlint/execute-rule': 20.0.0
|
||||
'@commitlint/resolve-extends': 20.1.0
|
||||
'@commitlint/types': 20.0.0
|
||||
'@commitlint/resolve-extends': 20.2.0
|
||||
'@commitlint/types': 20.2.0
|
||||
chalk: 5.6.2
|
||||
cosmiconfig: 9.0.0(typescript@5.9.3)
|
||||
cosmiconfig-typescript-loader: 6.2.0(@types/node@24.7.1)(cosmiconfig@9.0.0)(typescript@5.9.3)
|
||||
cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0)(typescript@5.9.3)
|
||||
lodash.isplainobject: 4.0.6
|
||||
lodash.merge: 4.6.2
|
||||
lodash.uniq: 4.5.0
|
||||
@@ -1868,13 +1931,13 @@ packages:
|
||||
resolve-from: 5.0.0
|
||||
dev: true
|
||||
|
||||
/@commitlint/resolve-extends@20.1.0:
|
||||
resolution: {integrity: sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==}
|
||||
/@commitlint/resolve-extends@20.2.0:
|
||||
resolution: {integrity: sha512-KVoLDi9BEuqeq+G0wRABn4azLRiCC22/YHR2aCquwx6bzCHAIN8hMt3Nuf1VFxq/c8ai6s8qBxE8+ZD4HeFTlQ==}
|
||||
engines: {node: '>=v18'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@commitlint/config-validator': 20.0.0
|
||||
'@commitlint/types': 20.0.0
|
||||
'@commitlint/config-validator': 20.2.0
|
||||
'@commitlint/types': 20.2.0
|
||||
global-directory: 4.0.1
|
||||
import-meta-resolve: 4.2.0
|
||||
lodash.mergewith: 4.6.2
|
||||
@@ -1912,8 +1975,8 @@ packages:
|
||||
chalk: 5.6.2
|
||||
dev: true
|
||||
|
||||
/@commitlint/types@20.0.0:
|
||||
resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==}
|
||||
/@commitlint/types@20.2.0:
|
||||
resolution: {integrity: sha512-KTy0OqRDLR5y/zZMnizyx09z/rPlPC/zKhYgH8o/q6PuAjoQAKlRfY4zzv0M64yybQ//6//4H1n14pxaLZfUnA==}
|
||||
engines: {node: '>=v18'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
@@ -2871,7 +2934,7 @@ packages:
|
||||
/@types/conventional-commits-parser@5.0.2:
|
||||
resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==}
|
||||
dependencies:
|
||||
'@types/node': 24.7.1
|
||||
'@types/node': 25.0.3
|
||||
dev: true
|
||||
|
||||
/@types/estree@1.0.8:
|
||||
@@ -2914,6 +2977,12 @@ packages:
|
||||
dependencies:
|
||||
undici-types: 7.14.0
|
||||
|
||||
/@types/node@25.0.3:
|
||||
resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
|
||||
dependencies:
|
||||
undici-types: 7.16.0
|
||||
dev: true
|
||||
|
||||
/@types/normalize-package-data@2.4.4:
|
||||
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
|
||||
dev: true
|
||||
@@ -2975,7 +3044,7 @@ packages:
|
||||
/@types/webpack-sources@3.2.3:
|
||||
resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==}
|
||||
dependencies:
|
||||
'@types/node': 24.7.1
|
||||
'@types/node': 25.0.3
|
||||
'@types/source-list-map': 0.1.6
|
||||
source-map: 0.7.6
|
||||
dev: true
|
||||
@@ -2983,7 +3052,7 @@ packages:
|
||||
/@types/webpack@4.41.40:
|
||||
resolution: {integrity: sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==}
|
||||
dependencies:
|
||||
'@types/node': 24.7.1
|
||||
'@types/node': 25.0.3
|
||||
'@types/tapable': 1.0.12
|
||||
'@types/uglify-js': 3.17.5
|
||||
'@types/webpack-sources': 3.2.3
|
||||
@@ -3167,7 +3236,7 @@ packages:
|
||||
vite: ^5.0.0 || ^6.0.0
|
||||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 5.4.21(@types/node@24.7.1)(sass@1.94.2)
|
||||
vite: 5.4.21(@types/node@25.0.3)(sass@1.94.2)
|
||||
vue: 3.5.25(typescript@5.9.3)
|
||||
dev: true
|
||||
|
||||
@@ -3679,6 +3748,16 @@ packages:
|
||||
'@vue/compiler-core': 3.5.25
|
||||
'@vue/shared': 3.5.25
|
||||
|
||||
/@vue/compiler-sfc@2.7.16:
|
||||
resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.28.5
|
||||
postcss: 8.5.6
|
||||
source-map: 0.6.1
|
||||
optionalDependencies:
|
||||
prettier: 2.8.8
|
||||
dev: false
|
||||
|
||||
/@vue/compiler-sfc@3.5.22:
|
||||
resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==}
|
||||
dependencies:
|
||||
@@ -5565,13 +5644,13 @@ packages:
|
||||
resolution: {integrity: sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==}
|
||||
dev: false
|
||||
|
||||
/commitizen@4.3.1(@types/node@24.7.1)(typescript@5.9.3):
|
||||
/commitizen@4.3.1(@types/node@25.0.3)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==}
|
||||
engines: {node: '>= 12'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
cachedir: 2.3.0
|
||||
cz-conventional-changelog: 3.3.0(@types/node@24.7.1)(typescript@5.9.3)
|
||||
cz-conventional-changelog: 3.3.0(@types/node@25.0.3)(typescript@5.9.3)
|
||||
dedent: 0.7.0
|
||||
detect-indent: 6.1.0
|
||||
find-node-modules: 2.1.3
|
||||
@@ -6044,7 +6123,7 @@ packages:
|
||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||
dev: true
|
||||
|
||||
/cosmiconfig-typescript-loader@6.2.0(@types/node@24.7.1)(cosmiconfig@9.0.0)(typescript@5.9.3):
|
||||
/cosmiconfig-typescript-loader@6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==}
|
||||
engines: {node: '>=v18'}
|
||||
peerDependencies:
|
||||
@@ -6052,7 +6131,7 @@ packages:
|
||||
cosmiconfig: '>=9'
|
||||
typescript: '>=5'
|
||||
dependencies:
|
||||
'@types/node': 24.7.1
|
||||
'@types/node': 25.0.3
|
||||
cosmiconfig: 9.0.0(typescript@5.9.3)
|
||||
jiti: 2.6.1
|
||||
typescript: 5.9.3
|
||||
@@ -6363,18 +6442,18 @@ packages:
|
||||
resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==}
|
||||
dev: true
|
||||
|
||||
/cz-conventional-changelog@3.3.0(@types/node@24.7.1)(typescript@5.9.3):
|
||||
/cz-conventional-changelog@3.3.0(@types/node@25.0.3)(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==}
|
||||
engines: {node: '>= 10'}
|
||||
dependencies:
|
||||
chalk: 2.4.2
|
||||
commitizen: 4.3.1(@types/node@24.7.1)(typescript@5.9.3)
|
||||
commitizen: 4.3.1(@types/node@25.0.3)(typescript@5.9.3)
|
||||
conventional-commit-types: 3.0.0
|
||||
lodash.map: 4.6.0
|
||||
longest: 2.0.1
|
||||
word-wrap: 1.2.5
|
||||
optionalDependencies:
|
||||
'@commitlint/load': 20.1.0(@types/node@24.7.1)(typescript@5.9.3)
|
||||
'@commitlint/load': 20.2.0(@types/node@25.0.3)(typescript@5.9.3)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- typescript
|
||||
@@ -6980,6 +7059,20 @@ packages:
|
||||
vue: 2.6.12
|
||||
dev: false
|
||||
|
||||
/element-ui@2.15.14(vue@2.7.16):
|
||||
resolution: {integrity: sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==}
|
||||
peerDependencies:
|
||||
vue: ^2.5.17
|
||||
dependencies:
|
||||
async-validator: 1.8.5
|
||||
babel-helper-vue-jsx-merge-props: 2.0.3
|
||||
deepmerge: 1.5.2
|
||||
normalize-wheel: 1.0.1
|
||||
resize-observer-polyfill: 1.5.1
|
||||
throttle-debounce: 1.1.0
|
||||
vue: 2.7.16
|
||||
dev: false
|
||||
|
||||
/elliptic@6.6.1:
|
||||
resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==}
|
||||
dependencies:
|
||||
@@ -7826,6 +7919,7 @@ packages:
|
||||
|
||||
/fast-uri@3.1.0:
|
||||
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/fastest-levenshtein@1.0.16:
|
||||
@@ -8208,7 +8302,7 @@ packages:
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
bindings: 1.5.0
|
||||
nan: 2.23.0
|
||||
nan: 2.24.0
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
@@ -9781,6 +9875,7 @@ packages:
|
||||
|
||||
/json-schema-traverse@1.0.0:
|
||||
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/json-schema@0.4.0:
|
||||
@@ -10824,8 +10919,8 @@ packages:
|
||||
thenify-all: 1.6.0
|
||||
dev: true
|
||||
|
||||
/nan@2.23.0:
|
||||
resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==}
|
||||
/nan@2.24.0:
|
||||
resolution: {integrity: sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
@@ -11249,7 +11344,7 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
bl: 4.1.0
|
||||
chalk: 4.1.0
|
||||
chalk: 4.1.2
|
||||
cli-cursor: 3.1.0
|
||||
cli-spinners: 2.9.2
|
||||
is-interactive: 1.0.0
|
||||
@@ -12164,7 +12259,6 @@ packages:
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/prettier@3.7.1:
|
||||
@@ -12614,6 +12708,7 @@ packages:
|
||||
/require-from-string@2.0.2:
|
||||
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/require-main-filename@2.0.0:
|
||||
@@ -13403,7 +13498,6 @@ packages:
|
||||
/source-map@0.6.1:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/source-map@0.7.6:
|
||||
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
|
||||
@@ -14505,6 +14599,11 @@ packages:
|
||||
/undici-types@7.14.0:
|
||||
resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==}
|
||||
|
||||
/undici-types@7.16.0:
|
||||
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/unicode-canonical-property-names-ecmascript@2.0.1:
|
||||
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -14812,7 +14911,7 @@ packages:
|
||||
global: 4.4.0
|
||||
dev: false
|
||||
|
||||
/vite@5.4.21(@types/node@24.7.1)(sass@1.94.2):
|
||||
/vite@5.4.21(@types/node@25.0.3)(sass@1.94.2):
|
||||
resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
@@ -14843,7 +14942,7 @@ packages:
|
||||
terser:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 24.7.1
|
||||
'@types/node': 25.0.3
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.5.6
|
||||
rollup: 4.53.3
|
||||
@@ -15080,6 +15179,14 @@ packages:
|
||||
resolution: {integrity: sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==}
|
||||
deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
|
||||
|
||||
/vue@2.7.16:
|
||||
resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==}
|
||||
deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
|
||||
dependencies:
|
||||
'@vue/compiler-sfc': 2.7.16
|
||||
csstype: 3.2.3
|
||||
dev: false
|
||||
|
||||
/vue@3.5.25(typescript@5.9.3):
|
||||
resolution: {integrity: sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==}
|
||||
peerDependencies:
|
||||
|
||||
Reference in New Issue
Block a user