Commit 0705c1d2 by 毛勇泽

凭证详情扫码和解析

parent 84919727
...@@ -208,7 +208,7 @@ export class IdentifyService { ...@@ -208,7 +208,7 @@ export class IdentifyService {
} else { } else {
console.error("tag", 'scan:gpio: 下拉失败') console.error("tag", 'scan:gpio: 下拉失败')
} }
}, 100); }, 200);
console.log("tag", '扫描时间:' + new Date().getTime()) console.log("tag", '扫描时间:' + new Date().getTime())
} }
/*关闭扫描*/ /*关闭扫描*/
......
...@@ -7,6 +7,8 @@ import { WzClass, WzmxClass } from './Wzcrk.data'; ...@@ -7,6 +7,8 @@ import { WzClass, WzmxClass } from './Wzcrk.data';
import { WzList } from '../WzInPage/WzinDetail/WzList'; import { WzList } from '../WzInPage/WzinDetail/WzList';
import { pzForm } from './action' import { pzForm } from './action'
import { WzScanInfoDialog } from './Dialog/WzScanInfoDialog'; import { WzScanInfoDialog } from './Dialog/WzScanInfoDialog';
import { analysisQrCode } from '../../../identify/analysis/analysis_QR_code'
import emitter from '@ohos.events.emitter';
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
...@@ -27,20 +29,17 @@ export struct WzInfo { ...@@ -27,20 +29,17 @@ export struct WzInfo {
@State currentHwh: string = '' // 当前货位 @State currentHwh: string = '' // 当前货位
@State pageType: string = "" //当前凭证的类型 @State pageType: string = "" //当前凭证的类型
@State currentModel: boolean = false //倒出:true/倒入:false @State currentModel: boolean = false //倒出:true/倒入:false
@State currentWZInfo: Array<any> = []//当前扫描物资信息 @State currentWZInfo: Array<any> = [] //当前扫描物资信息
@State defaultArr: Array<any> = [] @State defaultArr: Array<any> = []
@State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏 @State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏
@State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false @State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false
@State isAutomation: boolean = true //控制扫描提示显示隐藏 @State isAutomation: boolean = true //控制扫描提示显示隐藏
@State defaultHwh: string = this.convertionDefaultHwh() @State defaultHwh: string = this.convertionDefaultHwh()
@State currentDw: string = '' @State currentDw: string = ''
@State kfmc: string = '' @State kfmc: string = ''
@State wzmx: WzmxClass[] = [] @State wzmx: WzmxClass[] = []
@ObjectLink wzcrk: WzClass @ObjectLink wzcrk: WzClass
getDetail: (wzpm?:string) => void getDetail: (wzpm?: string) => void
@Builder container() { @Builder container() {
Column() { Column() {
...@@ -48,6 +47,7 @@ export struct WzInfo { ...@@ -48,6 +47,7 @@ export struct WzInfo {
Text("当前扫描货位号:").fontSize(16).lineHeight(18) Text("当前扫描货位号:").fontSize(16).lineHeight(18)
Text(this.currentHwh || "请扫描货位").fontSize(20).fontColor("#0fa983").fontWeight(700) Text(this.currentHwh || "请扫描货位").fontSize(20).fontColor("#0fa983").fontWeight(700)
}.padding(15) }.padding(15)
if (this.pageType == "倒库") { if (this.pageType == "倒库") {
Flex({ justifyContent: FlexAlign.SpaceBetween }) { Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text("当前倒库模式:").fontSize(16).lineHeight(18) Text("当前倒库模式:").fontSize(16).lineHeight(18)
...@@ -72,6 +72,7 @@ export struct WzInfo { ...@@ -72,6 +72,7 @@ export struct WzInfo {
Text("请扫描物资信息").fontSize(14) Text("请扫描物资信息").fontSize(14)
} }
}.padding(15) }.padding(15)
if (this.currentWZInfo.length > 0) { if (this.currentWZInfo.length > 0) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Text("品名代码").width("25%").textAlign(TextAlign.Start) Text("品名代码").width("25%").textAlign(TextAlign.Start)
...@@ -79,13 +80,18 @@ export struct WzInfo { ...@@ -79,13 +80,18 @@ export struct WzInfo {
Text("号型名称").width("25%").textAlign(TextAlign.Center) Text("号型名称").width("25%").textAlign(TextAlign.Center)
Text("数量").width("25%").textAlign(TextAlign.Center) Text("数量").width("25%").textAlign(TextAlign.Center)
}.padding(15) }.padding(15)
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
ForEach(this.currentWZInfo, item => { ForEach(this.currentWZInfo, item => {
Text(item.pmdmsix).width("25%").textAlign(TextAlign.Start).fontSize(14) Text(item.pmdmsix).width("25%").textAlign(TextAlign.Start).fontSize(14)
Text(item.wzpm).width("25%").textAlign(TextAlign.Center).fontSize(14) Text(item.wzpm).width("25%").textAlign(TextAlign.Center).fontSize(14)
Text(item.hxmc).width("25%").textAlign(TextAlign.Center).fontSize(14) Text(item.hxmc).width("25%").textAlign(TextAlign.Center).fontSize(14)
Text(item.crksl).width("25%").textAlign(TextAlign.Center) Text(item.crksl)
.fontSize(20).fontColor("#0fa983").fontWeight(700) .width("25%")
.textAlign(TextAlign.Center)
.fontSize(20)
.fontColor("#0fa983")
.fontWeight(700)
}) })
}.padding(15) }.padding(15)
} }
...@@ -102,7 +108,6 @@ export struct WzInfo { ...@@ -102,7 +108,6 @@ export struct WzInfo {
} }
} }
scanInfoDialog: CustomDialogController = new CustomDialogController({ scanInfoDialog: CustomDialogController = new CustomDialogController({
builder: WzScanInfoDialog({ builder: WzScanInfoDialog({
container: this.container, container: this.container,
...@@ -117,19 +122,30 @@ export struct WzInfo { ...@@ -117,19 +122,30 @@ export struct WzInfo {
}) })
// 页面初始化 // 页面初始化
aboutToAppear(){ aboutToAppear() {
this.getData() this.getData()
this.scanCodeListen();
}
scanCodeListen() {
var innerEvent = { eventId: 3 }
emitter.on(innerEvent, (eventQRData) => {
if (innerEvent.eventId == 3) {
let result = eventQRData.data.qrcode
console.log("接收到上级传入数据", "收到扫码信息:" + result)
this.handleanalysisQrCode(result)
}
})
} }
async getData() { async getData() {
Logger.info(">>>>>>>>>>>>>>>PAGETYPE:", this.pageType) Logger.info(">>>>>>>>>>>>>>>PAGETYPE:", this.pageType)
// 获取收物单位 // 获取收物单位
const res1 = await gldwModel.queryByData({dwdm:this.wzcrk.sfdw}) const res1 = await gldwModel.queryByData({ dwdm: this.wzcrk.sfdw })
this.currentDw = res1[0].dwfh ?? '' this.currentDw = res1[0].dwfh ?? ''
// 获取库房名称 // 获取库房名称
const res = await kfModel.query({guid: this.wzcrk.kfguid}) const res = await kfModel.query({ guid: this.wzcrk.kfguid })
this.kfmc = res[0].kfmc ?? '' this.kfmc = res[0].kfmc ?? ''
} }
...@@ -137,9 +153,12 @@ export struct WzInfo { ...@@ -137,9 +153,12 @@ export struct WzInfo {
* @description: 扫码解析 * @description: 扫码解析
*/ */
async handleanalysisQrCode(value) { async handleanalysisQrCode(value) {
console.log("扫码校验", "handleanalysisQrCode:" + value)
const res = await analysisQrCode(value, false)
if (res.data && res.data.length > 0) {
console.log("解析货位", JSON.stringify(res.data))
}
} }
build() { build() {
Column() { Column() {
...@@ -147,7 +166,7 @@ export struct WzInfo { ...@@ -147,7 +166,7 @@ export struct WzInfo {
Column() { Column() {
if (this.pageType == "倒库") { if (this.pageType == "倒库") {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
DividerTitle({ title: "当前单位出库房:"}) DividerTitle({ title: "当前单位出库房:" })
Text(this.currentDw + this.kfmc) Text(this.currentDw + this.kfmc)
.fontWeight(FontWeight.Medium) .fontWeight(FontWeight.Medium)
.fontSize(21) .fontSize(21)
...@@ -158,7 +177,7 @@ export struct WzInfo { ...@@ -158,7 +177,7 @@ export struct WzInfo {
}.width("100%") }.width("100%")
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
DividerTitle({ title: "当前单位入库房:"}) DividerTitle({ title: "当前单位入库房:" })
Text(this.currentDw + this.kfmc) Text(this.currentDw + this.kfmc)
.fontWeight(FontWeight.Medium) .fontWeight(FontWeight.Medium)
.fontSize(21) .fontSize(21)
...@@ -170,7 +189,7 @@ export struct WzInfo { ...@@ -170,7 +189,7 @@ export struct WzInfo {
} else { } else {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
DividerTitle({ title: "单位/库房信息"}) DividerTitle({ title: "单位/库房信息" })
Text(this.currentDw + this.kfmc) Text(this.currentDw + this.kfmc)
.fontWeight(FontWeight.Medium) .fontWeight(FontWeight.Medium)
.fontSize(21) .fontSize(21)
...@@ -183,16 +202,16 @@ export struct WzInfo { ...@@ -183,16 +202,16 @@ export struct WzInfo {
} }
if (this.isHaveButton && (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位')) { if (this.isHaveButton && (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位')) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
DividerTitle({ title: this.pageType + "模式"}) DividerTitle({ title: this.pageType + "模式" })
Row(){ Row() {
if (this.pageType == "倒库") { if (this.pageType == "倒库") {
Text("倒入").margin({left:10,right:10}) Text("倒入").margin({ left: 10, right: 10 })
} }
if (this.pageType == "调号") { if (this.pageType == "调号") {
Text("调入").margin({left:10,right:10}) Text("调入").margin({ left: 10, right: 10 })
} }
if (this.pageType == "换位") { if (this.pageType == "换位") {
Text("换出").margin({left:10,right:10}) Text("换出").margin({ left: 10, right: 10 })
} }
Toggle({ type: ToggleType.Switch, isOn: true }) Toggle({ type: ToggleType.Switch, isOn: true })
.selectedColor('#007DFF') .selectedColor('#007DFF')
...@@ -204,13 +223,13 @@ export struct WzInfo { ...@@ -204,13 +223,13 @@ export struct WzInfo {
Text("倒出").margin({ left: 10, right: 10 }) Text("倒出").margin({ left: 10, right: 10 })
} }
if (this.pageType == "调号") { if (this.pageType == "调号") {
Text("调出").margin({left:10,right:10}) Text("调出").margin({ left: 10, right: 10 })
} }
if (this.pageType == "换位") { if (this.pageType == "换位") {
Text("换入").margin({left:10,right:10}) Text("换入").margin({ left: 10, right: 10 })
} }
} }
}.padding({left: 8, right: 8}) }.padding({ left: 8, right: 8 })
} }
}.padding({ bottom: 20, top: 20 }) }.padding({ bottom: 20, top: 20 })
.borderRadius(5) .borderRadius(5)
......
...@@ -11,6 +11,8 @@ import wzcrkModel from '../../../../model/WzcrkModel'; ...@@ -11,6 +11,8 @@ import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common'; import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import {AddWzin} from './AddWzin' import {AddWzin} from './AddWzin'
import { uuid } from '@ohos/common/src/main/ets/utils/util'; import { uuid } from '@ohos/common/src/main/ets/utils/util';
import IdentifyService from '../../../../identify/IdentifySerivce'
import emitter from '@ohos.events.emitter';
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
.borderWidth(2) .borderWidth(2)
...@@ -46,6 +48,9 @@ struct WzinDetail { ...@@ -46,6 +48,9 @@ struct WzinDetail {
this.wzcrk = new WzClass(params.wzcrk) this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk)) Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail() this.getDetail()
this.scanCodeListen()
IdentifyService.openScanPort()
} }
// 获取凭证信息 // 获取凭证信息
...@@ -155,10 +160,37 @@ struct WzinDetail { ...@@ -155,10 +160,37 @@ struct WzinDetail {
} }
}.margin({ left: 10, right: 10 }).height(80) }.margin({ left: 10, right: 10 }).height(80)
}.width("100%") }.width("100%")
}.linearGradient({ }.onKeyEvent((e: globalThis.KeyEvent) => {
console.error('keycode====》:' + e.keyCode)
if (this.currentIndex==1&&(e.keyCode == 2096 || e.keyCode == 2093)) {
if(e.type==1){
IdentifyService.openScan()
}
}
console.error('keycode====》:' + e.keyCode)
}).linearGradient({
direction: GradientDirection.Right, // 渐变方向 direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复 repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果 colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
}) })
} }
scanCodeListen() {
var innerEvent = { eventId: 2 }
emitter.on(innerEvent, (eventData) => {
if (innerEvent.eventId == 2) {
let result = eventData.data.scancode
console.log("扫码校验", "收到扫码信息:" + result)
let innerEvent = {
eventId: 3,
};
var eventQRData = {
data: {
'qrcode': result
},
priority: emitter.EventPriority.IMMEDIATE
}
emitter.emit(innerEvent, eventQRData)
}
})
}
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论