feat(index): 优化首页扫描逻辑

- 移除冗余代码和未使用的功能
- 优化快速扫描和普通扫描的流程- 添加扫描结果页面的返回处理
- 调整输入框焦点设置
main
Tuzki 7 months ago
parent 69f3dfe34c
commit fa6165a160
  1. 24
      pages/checkResult/checkResult.vue
  2. 160
      pages/index.vue
  3. 14
      uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue

@ -1,6 +1,6 @@
<template>
<view class="m-content">
<uni-nav-bar color="#fff" :fixed="true" :border="false" class="m-nav-bar" status-bar left-icon="left" left-text="" title="扫码检票" @clickLeft="back" />
<uni-nav-bar color="#fff" :fixed="true" :border="false" class="m-nav-bar" status-bar left-icon="left" left-text="" title="扫码检票" @clickLeft="back()" />
<view class="m-ticket-status" v-if="checkInfo != null && !load">
<view class="m-head-bg">
<view class="m-head-content" :class="checkInfo.ticketCheckedNums > checkInfo.ticketChecksNums ? 'used' : 'success'">
@ -48,8 +48,8 @@
<view class="m-err-tips">票据无效</view>
<view class="m-err-tip">此票据无效或已过期</view>
</view>
<button v-if="isQuick" class="m-btn-big deep-blue" @click="qucikCheckTicket">继续检票</button>
<button v-if="!isQuick" class="m-btn-big" @click="checkTicket">继续检票</button>
<button v-if="isQuick" class="m-btn-big deep-blue" @click="back()">继续检票</button>
<button v-if="!isQuick" class="m-btn-big" @click="checkTicket()">继续检票</button>
</view>
</template>
@ -107,15 +107,14 @@ export default {
// this.checkInfo = null
// })
},
// methods
onBackPress(options) {
//
// onBackPress(options) {
// //
this.qucikCheckTicket();
// this.back();
// return true
return true;
},
// // return true
// return true;
// },
methods: {
qucikCheckTicket() {
uni.reLaunch({
@ -141,9 +140,8 @@ export default {
return parseTime(val);
},
back() {
uni.reLaunch({
url: '/pages/index'
});
this.getOpenerEventChannel().emit('updateInvoice', {refresh: true});
uni.navigateBack();
}
}
};

@ -26,8 +26,8 @@
<uni-easyinput
ref="inputRef"
:inputBorder="false"
:focus="isAutoFocus"
@focus="handleFocus"
:focus="true"
@confirm="qucikScan"
readonly
v-model="quickScanData"
class="uni-input"
@ -81,16 +81,15 @@ export default {
checkedNum: null,
ticketNum: null,
quickScanData: null,
isAutoFocus: false
isAutoFocus: true
};
},
watch:{
watch: {
quickScanData:{
handler(val){
if(val.includes('_')&&val.split('_').length>0&&val.split('_')[0].length==23){
this.qucikScan()
}
}
this.isAutoFocus = true
},
immediate:true
}
},
computed: {
@ -98,17 +97,13 @@ export default {
return uni.getSystemInfoSync().windowHeight;
}
},
// onShow
onShow() {
// nextTick setTimeout DOM
this.$nextTick(() => {
this.quickScanData = null;
this.$refs.inputRef.focus(); // ref input
});
// 使
setTimeout(() => {
this.isAutoFocus = true; // :focus
}, 100);
setTimeout(()=>{
this.isAutoFocus = true
},100)
},
onLoad: function () {
if (uni.getStorageSync('menu') && uni.getStorageSync('menu') != null) {
@ -120,21 +115,10 @@ export default {
this.getIndexData();
// #ifdef APP-PLUS
this.timer = setInterval(() => {
uni.hideKeyboard();
}, 50);
// this.timer = setInterval(() => {
// uni.hideKeyboard();
// }, 50);
// #endif
// // #ifdef APP-PLUS
// globalEvent.addEventListener('myScanEvent', function (e) {
// console.log(e);
// if (e.requestCode == 1 && e.data && e.data.VALUE) {
// //
// // self.initSample(e.data.VALUE);
// }
// });
// DCSunmiScanModule.registerReceiver();
// // #endif
},
onUnload() {
// // #ifdef APP-PLUS
@ -152,14 +136,23 @@ export default {
console.log(this.quickScanData, 'qucikScan');
if (!this.quickScanData) {
uni.showToast({
icon:'none',
icon: 'none',
title: '请先扫描或输入票号',
duration: 2000
});
return
return;
}
uni.redirectTo({
uni.navigateTo({
url: '/pages/checkResult/checkResult?result=' + this.quickScanData + '&quick=1',
events: {
updateInvoice: (result) => {
console.log('返回传输的数据', result);
this.quickScanData = null;
this.$nextTick(()=>{
this.$set(this,'isAutoFocus',true)
})
}
},
success() {
this.quickScanData = null;
}
@ -191,15 +184,6 @@ export default {
console.log(err);
});
},
goNFC() {
const getSN = uni.requireNativePlugin('Mi-GetSN');
getSN.getSN((snCode) => {
console.log(snCode);
});
// uni.navigateTo({
// url:'/pages/NFC/NFC'
// })
},
goList() {
uni.removeStorageSync('ALL_TICKET');
uni.removeStorageSync('EVENT');
@ -212,85 +196,6 @@ export default {
url: '/pages/shoppingTrolley/shoppingTrolley'
});
},
print(val) {
console.log(val, '1');
const sunmi_print = uni.requireNativePlugin('Sunmi-Print-Inner');
console.log(sunmi_print);
//使
sunmi_print.connect((res) => {
if (res.connect == 'hello') {
console.log('打印机成功连接');
//
sunmi_print.printDividingline({
style: '4',
height: '50'
});
//线线
sunmi_print.printDividingline({
style: '3',
height: '3'
});
//
sunmi_print.printDividingline({
style: '4',
height: '30'
});
sunmi_print.printText({
text: '这是打印的头部',
align: 1,
size: 30,
bold: true,
underline: false,
compact: true,
skip: true
});
sunmi_print.printQrCode({
text: 'SC202408081557067846785_0',
size: 15,
errorlevel: 0,
align: 1
});
sunmi_print.printText({
text: '这是打印的底部',
align: 1,
size: 30,
bold: true,
underline: false,
compact: true,
skip: true
});
//
sunmi_print.printDividingline({
style: '4',
height: '30'
});
//线线
sunmi_print.printDividingline({
style: '3',
height: '3'
});
//
sunmi_print.printDividingline({
style: '4',
height: '50'
});
}
});
console.log(val, '2');
},
getInfo() {
uni.getSystemInfo({
success: function (res) {
console.log(res);
},
fail: function (err) {
console.log(err);
},
complete: function (res) {
console.log(res);
}
});
},
scanCode() {
uni.removeStorageSync('ALL_TICKET');
uni.removeStorageSync('EVENT');
@ -302,8 +207,17 @@ export default {
success: function (res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
uni.redirectTo({
url: '/pages/checkResult/checkResult?result=' + res.result + '&quick=0'
uni.navigateTo({
url: '/pages/checkResult/checkResult?result=' + res.result + '&quick=0',
events: {
updateInvoice: (result) => {
console.log('返回传输的数据', result);
this.quickScanData = null;
this.$nextTick(()=>{
this.$set(this,'isAutoFocus',true)
})
}
},
});
}
});

@ -267,11 +267,15 @@
modelValue(newVal) {
this.val = newVal
},
focus(newVal) {
this.$nextTick(() => {
this.focused = this.focus
this.focusShow = this.focus
})
focus:{
handler(newVal){
console.log(newVal)
this.$nextTick(() => {
this.focused = this.focus
this.focusShow = this.focus
})
},
immediate:true
}
},
created() {

Loading…
Cancel
Save