Commit 0705c1d2 by 毛勇泽

凭证详情扫码和解析

parent 84919727
......@@ -208,7 +208,7 @@ export class IdentifyService {
} else {
console.error("tag", 'scan:gpio: 下拉失败')
}
}, 100);
}, 200);
console.log("tag", '扫描时间:' + new Date().getTime())
}
/*关闭扫描*/
......
......@@ -5,8 +5,10 @@ import kfModel from '../../../model/KfModel';
import { DividerTitle } from '../../../view/DividerTitle/DividerTitle';
import { WzClass, WzmxClass } from './Wzcrk.data';
import { WzList } from '../WzInPage/WzinDetail/WzList';
import { pzForm } from './action'
import { pzForm } from './action'
import { WzScanInfoDialog } from './Dialog/WzScanInfoDialog';
import { analysisQrCode } from '../../../identify/analysis/analysis_QR_code'
import emitter from '@ohos.events.emitter';
@Extend(Button) function CommonButtonStyle() {
......@@ -27,20 +29,17 @@ export struct WzInfo {
@State currentHwh: string = '' // 当前货位
@State pageType: string = "" //当前凭证的类型
@State currentModel: boolean = false //倒出:true/倒入:false
@State currentWZInfo: Array<any> = []//当前扫描物资信息
@State currentWZInfo: Array<any> = [] //当前扫描物资信息
@State defaultArr: Array<any> = []
@State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏
@State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false
@State isAutomation: boolean = true //控制扫描提示显示隐藏
@State defaultHwh: string = this.convertionDefaultHwh()
@State currentDw: string = ''
@State kfmc: string = ''
@State wzmx: WzmxClass[] = []
@ObjectLink wzcrk: WzClass
getDetail: (wzpm?:string) => void
getDetail: (wzpm?: string) => void
@Builder container() {
Column() {
......@@ -48,6 +47,7 @@ export struct WzInfo {
Text("当前扫描货位号:").fontSize(16).lineHeight(18)
Text(this.currentHwh || "请扫描货位").fontSize(20).fontColor("#0fa983").fontWeight(700)
}.padding(15)
if (this.pageType == "倒库") {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text("当前倒库模式:").fontSize(16).lineHeight(18)
......@@ -72,20 +72,26 @@ export struct WzInfo {
Text("请扫描物资信息").fontSize(14)
}
}.padding(15)
if (this.currentWZInfo.length > 0) {
if (this.currentWZInfo.length > 0) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Text("品名代码").width("25%").textAlign(TextAlign.Start)
Text("物资品名").width("25%").textAlign(TextAlign.Center)
Text("号型名称").width("25%").textAlign(TextAlign.Center)
Text("数量").width("25%").textAlign(TextAlign.Center)
}.padding(15)
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
ForEach(this.currentWZInfo, item => {
Text(item.pmdmsix).width("25%").textAlign(TextAlign.Start).fontSize(14)
Text(item.wzpm).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)
.fontSize(20).fontColor("#0fa983").fontWeight(700)
Text(item.crksl)
.width("25%")
.textAlign(TextAlign.Center)
.fontSize(20)
.fontColor("#0fa983")
.fontWeight(700)
})
}.padding(15)
}
......@@ -102,8 +108,7 @@ export struct WzInfo {
}
}
scanInfoDialog: CustomDialogController = new CustomDialogController({
scanInfoDialog: CustomDialogController = new CustomDialogController({
builder: WzScanInfoDialog({
container: this.container,
defaultHwh: $defaultHwh,
......@@ -117,19 +122,30 @@ export struct WzInfo {
})
// 页面初始化
aboutToAppear(){
aboutToAppear() {
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() {
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 ?? ''
// 获取库房名称
const res = await kfModel.query({guid: this.wzcrk.kfguid})
const res = await kfModel.query({ guid: this.wzcrk.kfguid })
this.kfmc = res[0].kfmc ?? ''
}
......@@ -137,17 +153,20 @@ export struct WzInfo {
* @description: 扫码解析
*/
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() {
Column() {
Flex({ direction: FlexDirection.Column }) {
Column() {
if (this.pageType == "倒库") {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
DividerTitle({ title: "当前单位出库房:"})
DividerTitle({ title: "当前单位出库房:" })
Text(this.currentDw + this.kfmc)
.fontWeight(FontWeight.Medium)
.fontSize(21)
......@@ -158,7 +177,7 @@ export struct WzInfo {
}.width("100%")
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
DividerTitle({ title: "当前单位入库房:"})
DividerTitle({ title: "当前单位入库房:" })
Text(this.currentDw + this.kfmc)
.fontWeight(FontWeight.Medium)
.fontSize(21)
......@@ -170,7 +189,7 @@ export struct WzInfo {
} else {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
DividerTitle({ title: "单位/库房信息"})
DividerTitle({ title: "单位/库房信息" })
Text(this.currentDw + this.kfmc)
.fontWeight(FontWeight.Medium)
.fontSize(21)
......@@ -183,16 +202,16 @@ export struct WzInfo {
}
if (this.isHaveButton && (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位')) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
DividerTitle({ title: this.pageType + "模式"})
Row(){
DividerTitle({ title: this.pageType + "模式" })
Row() {
if (this.pageType == "倒库") {
Text("倒入").margin({left:10,right:10})
Text("倒入").margin({ left: 10, right: 10 })
}
if (this.pageType == "调号") {
Text("调入").margin({left:10,right:10})
Text("调入").margin({ left: 10, right: 10 })
}
if (this.pageType == "换位") {
Text("换出").margin({left:10,right:10})
Text("换出").margin({ left: 10, right: 10 })
}
Toggle({ type: ToggleType.Switch, isOn: true })
.selectedColor('#007DFF')
......@@ -204,13 +223,13 @@ export struct WzInfo {
Text("倒出").margin({ left: 10, right: 10 })
}
if (this.pageType == "调号") {
Text("调出").margin({left:10,right:10})
Text("调出").margin({ left: 10, right: 10 })
}
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 })
.borderRadius(5)
......
......@@ -11,6 +11,8 @@ import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import {AddWzin} from './AddWzin'
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() {
.borderWidth(2)
......@@ -46,6 +48,9 @@ struct WzinDetail {
this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail()
this.scanCodeListen()
IdentifyService.openScanPort()
}
// 获取凭证信息
......@@ -155,10 +160,37 @@ struct WzinDetail {
}
}.margin({ left: 10, right: 10 }).height(80)
}.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, // 渐变方向
repeating: true, // 渐变颜色是否重复
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论