123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809 |
- /*
- * 零星物料出库
- * */
- import {
- ProcessFlow,
- CommonConfirmDialog,
- RemindDialog
- } from '../component/OrderMaterialsStorageView'
- import router from '@ohos.router';
- import { NavigationBar } from '../component/NavigationBar'
- import { TimeAndTitle } from '../component/TimeAndTitle'
- import { InBoundView } from '../component/InBoundView'
- import WmsRequest from '../common/util/request/WmsRequest'
- import RequestParamModel from '../viewmodel/wms/RequestParamModel'
- import MaterialBoxInfo from '../viewmodel/wms/MaterialBoxInfo';
- import HashMap from '@ohos.util.HashMap';
- import CommonConstants from '../common/constants/CommonConstants';
- import DictInfo from '../viewmodel/DictInfo';
- import RobotErrorHandleRequest from '../common/util/request/RobotErrorHandleRequest';
- import { ConfirmDialogParams, RgvInfo } from '../viewmodel/wms/rgv/RobotsParam'
- import promptAction from '@ohos.promptAction';
- import VehicleInfo from '../viewmodel/wms/VehicleInfo';
- import MaterialInfo from '../viewmodel/wms/MaterialInfo';
- @Entry
- @Component
- struct LittleMaterialsOutBound {
- // 输入的物料名称
- @State inputValue: string = ''
- // 查询到的物料库存列表
- @State materialArray: MaterialBoxInfo[] = []
- // 选中的库存的物料编码
- @State selectMaterialCode: string = ''
- // 物料关联的库存(料箱)信息——选择料箱使用
- @State materialBoxInfos: MaterialBoxInfo[] = []
- // 选中的料箱
- @State selectVehicleIndex: number = -1
- // 料箱类型数据字典
- vehicleTypeDictType: string = 'vehicle_type'
- vehicleTypeDictMap: HashMap<string, string> = new HashMap<string, string>()
- // 扫描或手动输入的物料编码
- @State scanCode: string = ''
- // 出入口料口中的物料信息
- @State materialNum: number = 0
- // 出库料箱中的库存物料信息
- outMaterialBoxInfos: MaterialInfo[] = []
- // 扫码待出库的物料
- @State scanMaterialList: MaterialInfo[] = []
- //扫码后自动滚动第一行
- @State scanCodeIndex: number = -1
- materialScrollerController: Scroller = new Scroller()
- @State currentStep: number = 1;
- @State nextStepButtonClick: number = 1
- @State preStepButtonClick: number = 1
- @State outBoundButtonClick :number = 1
- @State confirmOutboundButtonClick :number = 1
- // 根据物料编码【模糊】查询库存
- getStoreListFunc = async () => {
- let res: MaterialBoxInfo[] = await WmsRequest.post('/api/v1/stock/mergeList', {
- houseType: '1',
- materialNo: this.inputValue
- } as RequestParamModel)
- this.inputValue = ''
- if (res && res.length > 0) {
- this.materialArray = res
- }
- }
- //请求物料位置
- queryMaterialPositionFunc = async () => {
- this.materialBoxInfos = await WmsRequest.post('/api/v1/stock/groupList', {
- materialNo: this.selectMaterialCode
- } as RequestParamModel)
- if (this.materialBoxInfos) {
- for (const element of this.materialBoxInfos) {
- if (element.coordinate && element.coordinate.length > 0 && element.coordinate.indexOf('-') > 0) {
- let coors = element.coordinate.split('-');
- element.x = parseInt(coors[0])
- element.y = parseInt(coors[1])
- }
- }
- }
- }
- // 扫码物料编码方法
- scanMaterialCodeFunc = async (itemCode: string) => {
- this.scanCode = ''
- let res: MaterialInfo = await WmsRequest.post('/api/v1/process/circulation/material', {
- label: itemCode //'#gys022#sc022#100#20220929#31'
- } as RequestParamModel)
- // 物料默认都新增在数组头部
- this.scanMaterialList.unshift(res)
- this.scanCodeIndex = 0
- this.materialScrollerController.scrollToIndex(this.scanCodeIndex)
- // 出库料箱中的库存物料 需要做出库操作
- let toChangeArray: MaterialInfo[] = [...this.outMaterialBoxInfos]
- for (let i = 0; i < toChangeArray.length; i++) {
- let box = toChangeArray[i]
- if (res.materialCode == box.materialCode) {
- let value = box.num! - res.num!
- box.num = value >= 0 ? value : 0
- continue
- }
- }
- this.outMaterialBoxInfos = toChangeArray.filter((m) => {
- return m.num! > 0
- })
- // for (let i = this.outMaterialBoxInfos.length - 1; i >= 0; i--) {
- // if (this.outMaterialBoxInfos[i].materialCode! === res.materialCode!) {
- // if (this.outMaterialBoxInfos[i].num! > res.num!) {
- // this.outMaterialBoxInfos[i].num = this.outMaterialBoxInfos[i].num! - res.num!
- // break
- // } else if (this.outMaterialBoxInfos[i].num! === res.num!) {
- // this.outMaterialBoxInfos.splice(i, 1)
- // break
- // } else {
- // res.num = res.num! - this.outMaterialBoxInfos[i].num!
- // this.outMaterialBoxInfos.splice(i, 1);
- // }
- // }
- // }
- this.materialNum = this.outMaterialBoxInfos.length
- }
- // 抽屉称重(根据重量判断抽屉是否有料箱)
- @StorageLink('materialBoxWeight') materialBoxWeight: number = 0
- // 抽屉状态
- @StorageLink('drawerPositionStatus') drawerPositionStatus: number = 1
- @State reminds: string = '1'
- commonDialogController: CustomDialogController | null = null;
- remindController: CustomDialogController = new CustomDialogController({
- builder: RemindDialog({
- remind: this.reminds,}
- ),
- customStyle: true,
- maskColor: 'rgba(0,0,0,0.6)',
- //autoCancel:false
- })
- private showConfirmDialog(params: ConfirmDialogParams) {
- if (this.commonDialogController) {
- this.commonDialogController.close()
- }
- this.commonDialogController = new CustomDialogController({
- builder: CommonConfirmDialog({
- title: params.title || '提示',
- message: params.message,
- confirmText: params.confirmText || '确定',
- cancelText: params.cancelText || '取消',
- onConfirm: params.onConfirm
- }),
- cancel: () => console.log('用户取消操作'),
- customStyle: true,
- autoCancel: false,
- maskColor: 'rgba(0,0,0,0.6)'
- });
- this.commonDialogController.open();
- }
- // 判断小车状态
- async queryRgvInfo(): Promise<boolean> {
- let res: RgvInfo = await RobotErrorHandleRequest.get('/api/v1/wcs/rgv/rgv1', {}) as RgvInfo;
- if (res) {
- if (res.status != '0' || res.x != res.rx || res.y != res.ry) {
- return false;
- }
- return true; // 如果条件不满足,返回 true
- }
- return false; // 如果 res 为 null 或 undefined,返回 false
- }
- // 料箱出库的方法
- callBoxOutboundFunc = async () => {
- if (this.selectVehicleIndex < 0) {
- this.reminds = '请先选择料箱'
- this.remindController.open()
- setTimeout(() => {
- this.remindController.close()
- }, 2000);
- return
- }
- //查询小车的状态
- const rgvStatusNormal = await this.queryRgvInfo()
- if(!rgvStatusNormal) {
- this.reminds = '小车状态异常或位置错误,请检查后重试'
- this.remindController.open()
- setTimeout(() => {
- this.remindController.close()
- }, 2000);
- return
- }
- console.info('hhtest', this.drawerPositionStatus+'as')
- if(this.drawerPositionStatus == 0) {
- this.reminds = '抽屉未缩回,请检查后重试'
- this.remindController.open()
- setTimeout(() => {
- this.remindController.close()
- }, 2000);
- return
- }
- if(this.materialBoxWeight > 0) {
- this.reminds = '抽屉已有料箱,请检查后重试'
- this.remindController.open()
- setTimeout(() => {
- this.remindController.close()
- }, 2000);
- return
- }
- // 弹窗确认出库
- // this.showConfirmDialog({
- // title: '料箱出库',
- // message: `确定要空箱出库吗?`,
- // onConfirm: ()=> {
- //
- // }
- // });
- let res: VehicleInfo = await WmsRequest.post('/api/v1/wmsOrder/outBox', {
- stanCode: CommonConstants.STATION_CODE,
- vehicleNo: this.materialBoxInfos[this.selectVehicleIndex].vehicleCode!,
- houseNo: this.materialBoxInfos[this.selectVehicleIndex].houseNo!
- } as RequestParamModel)
- if (res && res.list) {
- this.outMaterialBoxInfos = res.list
- this.materialNum = res.list.length
- }
- promptAction.showToast({
- message: '箱子正在运行中....',
- duration: 1800,
- bottom: '50%'
- })
- }
- async aboutToAppear() {
- if (!CommonConstants.DICT_DATA || CommonConstants.DICT_DATA.length <= 0) {
- let res: DictInfo[] = await WmsRequest.post('/api/v1/sys/dictData/all',)
- if (res && res.length > 0) {
- for (const dict of res) {
- CommonConstants.DICT_DATA.set(dict.dictCode, dict.list)
- if (this.vehicleTypeDictType === dict.dictCode) {
- for (const element of dict?.list!) {
- this.vehicleTypeDictMap.set(element.dictValue, element.dictLabel);
- }
- }
- }
- }
- } else {
- let dictList = CommonConstants.DICT_DATA.get(this.vehicleTypeDictType);
- for (const element of dictList) {
- this.vehicleTypeDictMap.set(element.dictValue, element.dictLabel);
- }
- }
- }
- build() {
- Row() {
- // 顶部时间和菜单栏
- Column() {
- Row() {
- TimeAndTitle()
- }.width('100%')
- .height('3.4%')
- .alignItems(VerticalAlign.Bottom)
- .justifyContent(FlexAlign.End)
- // 零星物料出库
- Row() {
- Image($r('app.media.general_return'))
- .height($r('app.float.virtualSize_56'))
- .width($r('app.float.virtualSize_56'))
- .fillColor($r('app.color.FFFFFF'))
- Text('零星物料出库')
- .fontSize($r('app.float.fontSize_30'))
- .fontColor($r('app.color.FFFFFF'))
- .fontWeight(FontWeight.Medium)
- }
- .width('94.8%')
- .height('5.2%')
- .alignItems(VerticalAlign.Center)
- .justifyContent(FlexAlign.Start)
- .onClick(()=> {
- router.back()
- })
- // 当前零星物料出库的步骤和操作栏
- Row() {
- Row() {
- ProcessFlow({
- currentStep: this.currentStep,
- firstStepTitle: '选择物料',
- secondStepTitle: '零星出库',
- thirdStepTitle: '',
- })
- }
- .height('80%')
- .width('11%')
- Row().width('21.5%')
- NavigationBar()
- .height('80%')
- .width('23%')
- }
- .width('100%')
- .height('13%')
- .justifyContent(FlexAlign.End)
- .alignItems(VerticalAlign.Bottom)
- if (this.currentStep === 1) {
- Row() {
- // 查询物料
- Column() {
- Row() {
- Text('查询物料')
- .fontSize($r('app.float.fontSize_30'))
- .fontColor($r('app.color.FFFFFF'))
- .fontWeight(FontWeight.Medium)
- }
- .height('10%')
- .width('100%')
- .justifyContent(FlexAlign.Center)
- .onClick(()=>{
- this.getStoreListFunc()
- })
- Row() {
- TextInput({ text: this.inputValue, placeholder: '录入物料名称' })
- .type(InputType.Normal)
- .width('84%')
- .placeholderFont({ size: $r('app.float.fontSize_16') })
- .placeholderColor($r('app.color.30FFFFFF'))
- .fontSize($r('app.float.fontSize_24'))
- .fontColor($r('app.color.FFFFFF'))
- .onSubmit(() => {
- this.getStoreListFunc()
- })
- .onChange((value: string) => {
- this.inputValue = value
- })
- Row() {
- Image($r('app.media.wms_search'))
- .width($r('app.float.virtualSize_24'))
- .height($r('app.float.virtualSize_24'))
- .fillColor($r('app.color.0A84FF'))
- }
- .width('16%')
- .height('100%')
- .justifyContent(FlexAlign.Center)
- .borderRadius($r('app.float.virtualSize_16'))
- .backgroundColor($r('app.color.20FFFFFF'))
- .onClick(()=>{
- this.getStoreListFunc()
- })
- }
- .height('7.3%')
- .width('70.4%')
- .borderRadius($r('app.float.virtualSize_16'))
- .backgroundColor($r('app.color.000000'))
- Row().height('2.6%')
- List({space: 8}) {
- ForEach(this.materialArray, (item: MaterialBoxInfo)=>{
- ListItem() {
- Column({space: 1}) {
- Row() {
- Text(item.materialName! + '-' + item.materialNo)
- .fontSize($r('app.float.fontSize_24'))
- .fontWeight(FontWeight.Medium)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- }
- .height('45%')
- .width('91%')
- .alignItems(VerticalAlign.Bottom)
- Column() {
- Text('型号:' + item.spec!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('库存数量:' + item.num! + item.unit!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- }
- .height('38%')
- .width('91%')
- .justifyContent(FlexAlign.Center)
- .alignItems(HorizontalAlign.Start)
- }
- .height('13%')
- .width('100%')
- .borderRadius($r('app.float.virtualSize_16'))
- .backgroundColor(this.selectMaterialCode === item.materialNo! ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
- .borderWidth(1)
- .borderColor(this.selectMaterialCode === item.materialNo! ? $r('app.color.30D158') : $r('app.color.20FFFFFF'))
- .onClick(()=>{
- this.selectMaterialCode = item.materialNo!
- if (this.selectMaterialCode && this.selectMaterialCode.length > 0) {
- this.queryMaterialPositionFunc()
- }
- })
- }
- })
- }
- .width('92.6%')
- .height('77.5%')
- .alignListItem(ListItemAlign.Center)
- }
- .height('100%')
- .width('29.6%')
- .borderRadius($r('app.float.virtualSize_16'))
- .justifyContent(FlexAlign.Start)
- .backgroundColor($r('app.color.10FFFFFF'))
- Image($r('app.media.wms_arrow_right'))
- .height($r('app.float.virtualSize_48'))
- .width($r('app.float.virtualSize_48'))
- // 选择料箱
- Column() {
- Row() {
- Text('选择料箱')
- .fontSize($r('app.float.fontSize_30'))
- .fontColor($r('app.color.FFFFFF'))
- .fontWeight(FontWeight.Medium)
- }
- .height('10%')
- .width('100%')
- .justifyContent(FlexAlign.Center)
- // 动态排列容器
- Scroll() {
- Flex({ wrap: FlexWrap.Wrap, direction: FlexDirection.Row, justifyContent: FlexAlign.Start, alignItems: ItemAlign.Start}) {
- ForEach(this.materialBoxInfos, (item: MaterialBoxInfo, index: number) => {
- Column({ space: 5 }) {
- Row() {
- Text(item.materials?.[0]?.materialName! + '-' + item.materials?.[0]?.materialNo!)
- .fontSize($r('app.float.fontSize_24'))
- .fontWeight(FontWeight.Medium)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- }
- .height('28.5%')
- .width('87.4%')
- .alignItems(VerticalAlign.Bottom)
- Column() {
- Text('料箱编号:' + item.vehicleCode!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('料箱类型:' + (this.vehicleTypeDictMap.get(item.vehicleCategory!) ? this.vehicleTypeDictMap.get(item.vehicleCategory!) : item.vehicleCategory!))
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('所属订单:')
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('数量:' + item.materials?.[0]?.num! + item.materials?.[0].unit!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('位置:X-' + item.x! + ' Y-' + item.y!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- }
- .height('48.3%')
- .width('87.4%')
- .justifyContent(FlexAlign.Center)
- .alignItems(HorizontalAlign.Start)
- }
- .width('32.8%')
- .height('23%')
- .borderRadius($r('app.float.virtualSize_16'))
- .backgroundColor(this.selectVehicleIndex === index ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
- .borderWidth(1)
- .borderColor(this.selectVehicleIndex === index ? $r('app.color.30D158') : $r('app.color.20FFFFFF'))
- .margin({ top: index > 2 ? '1%' : '0%', left: (index % 3) === 0 ? '0%' : '0.8%' })
- .onClick(()=>{
- this.selectVehicleIndex = index
- })
- })
- }
- .width('100%')
- }
- .scrollable(ScrollDirection.Vertical) // 垂直滚动
- .scrollBar(BarState.Auto)
- .width('96.6%')
- .height('87.4%')
- .align(Alignment.Top)
- }
- .height('100%')
- .width('64.8%')
- .borderRadius($r('app.float.virtualSize_16'))
- .justifyContent(FlexAlign.Center)
- .backgroundColor($r('app.color.10FFFFFF'))
- }
- .height('71%')
- .width('94.8%')
- .justifyContent(FlexAlign.SpaceBetween)
- }
- else if (this.currentStep === 2) {
- Row() {
- Column() {
- InBoundView({
- materialNum: this.materialNum,
- boxMaterials:this.scanMaterialList
- });
- }
- .height('100%')
- .width('29.6%')
- .borderRadius($r('app.float.virtualSize_16'))
- .justifyContent(FlexAlign.Start)
- .backgroundColor($r('app.color.10FFFFFF'))
- Image($r('app.media.wms_arrow_right'))
- .height($r('app.float.virtualSize_48'))
- .width($r('app.float.virtualSize_48'))
- Column() {
- // 扫码区
- Row() {
- Row() {
- Text('扫码出库')
- .fontSize($r('app.float.fontSize_30'))
- .fontColor($r('app.color.FFFFFF'))
- .fontWeight(FontWeight.Medium)
- }
- .width('48.3%')
- .height('66%')
- Row() {
- Row().width('33.3%')
- Row() {
- Row().width('3.4%')
- // 左侧二维码图标
- Image($r('app.media.general_qr_code'))
- .width($r('app.float.virtualSize_24'))
- .height($r('app.float.virtualSize_24'))
- .fillColor($r('app.color.FFFFFF'))
- // 扫码输入框
- TextInput({ placeholder: '请扫描物料编码', text: this.scanCode })
- .type(InputType.Normal)
- .placeholderFont({ size: $r('app.float.fontSize_16')})
- .placeholderColor($r('app.color.30FFFFFF'))
- .fontSize($r('app.float.fontSize_16'))
- .fontColor($r('app.color.FFFFFF'))
- .enableKeyboardOnFocus(false)
- .onChange((value: string) => {
- this.scanCode = value
- })
- .onSubmit(async () => {
- this.scanMaterialCodeFunc(this.scanCode)
- })
- }
- .height('48.7%')
- .layoutWeight(1)
- .borderRadius($r('app.float.virtualSize_16'))
- .backgroundColor($r('app.color.000000'))
- }
- .width('48.3%')
- .height('100%')
- .alignItems(VerticalAlign.Center)
- .justifyContent(FlexAlign.End)
- }
- .height('15%')
- .width('100%')
- .justifyContent(FlexAlign.Center)
- .alignItems(VerticalAlign.Top)
- // 扫码物料列表
- List({ scroller: this.materialScrollerController }) {
- ForEach(this.scanMaterialList, (item: MaterialInfo, index: number) => {
- ListItem() {
- Row() {
- Column({space: 1}) {
- Text(item.materialName! + '-' + item.materialCode!)
- .fontSize($r('app.float.fontSize_24'))
- .fontWeight(FontWeight.Medium)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Column() {
- Text('型号:' + item.spec!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('序列号:' + item.batchCode!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('所属订单:-')
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- Text('数量:' + item.num! + item.unit!)
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- .fontColor($r('app.color.FFFFFF'))
- .maxLines(1)
- }
- .height('52.8%')
- .width('100%')
- .justifyContent(FlexAlign.SpaceBetween)
- .alignItems(HorizontalAlign.Start)
- }
- .height('100%')
- .width('48%')
- .alignItems(HorizontalAlign.Start)
- .justifyContent(FlexAlign.Center)
- Row() {
- Image($r('app.media.material_delete'))
- .height($r('app.float.virtualSize_48'))
- .width($r('app.float.virtualSize_48'))
- .fillColor($r('app.color.FF453A'))
- .onClick(()=>{
- // 出库料箱中的物料需要加回去
- let toChangeArray: MaterialInfo[] = [...this.outMaterialBoxInfos]
- let hasFlag: boolean = false
- // 出库料箱中还有,则把数量加回去
- for (let i = 0; i < toChangeArray.length; i++) {
- let box = toChangeArray[i]
- if (item.materialCode == box.materialCode) {
- let value = box.num! + item.num!
- box.num = value >= 0 ? value : 0
- hasFlag = true
- continue
- }
- }
- // 出库料箱中没有,则把这一项加进去
- if (!hasFlag) {
- this.outMaterialBoxInfos.push(item)
- }
- // 扫码待出库的物料删除这一项
- this.scanMaterialList.splice(index, 1)
- })
- Row().width('2%')
- }
- .height('100%')
- .width('50%')
- .alignItems(VerticalAlign.Center)
- .justifyContent(FlexAlign.End)
- }
- .height('26%')
- .width('100%')
- .justifyContent(FlexAlign.Center)
- .borderRadius($r('app.float.virtualSize_16'))
- .backgroundColor($r('app.color.10FFFFFF'))
- }
- })
- }
- .width('96.6%')
- .height('72.5%')
- .alignListItem(ListItemAlign.Center)
- // 确认出库按钮
- Row() {
- Button('确认出库')
- .fontSize($r('app.float.fontSize_24'))
- .fontColor($r('app.color.0A84FF'))
- .width('42.4%')
- .height('56.3%')
- .backgroundColor($r('app.color.20FFFFFF'))
- .opacity(this.scanMaterialList.length > 0 ? 1 : 0.3)
- .scale({ x: this.confirmOutboundButtonClick, y: this.confirmOutboundButtonClick })
- .animation({
- duration: 200,
- curve: Curve.Linear // 弹性曲线更生动
- })
- .onClick(() => {
- if (this.scanMaterialList.length <= 0) {
- return
- }
- this.confirmOutboundButtonClick = 0.9; // 点击时缩小
- setTimeout(() => {
- this.confirmOutboundButtonClick = 1; // 0.2秒后恢复
- }, 200);
- this.scanMaterialList = []
- })
- }
- .width('100%')
- .height('12.5%')
- .justifyContent(FlexAlign.Center)
- }
- .height('100%')
- .width('64.8%')
- .borderRadius($r('app.float.virtualSize_16'))
- .justifyContent(FlexAlign.Start)
- .backgroundColor($r('app.color.10FFFFFF'))
- }
- .height('71%')
- .width('94.8%')
- .justifyContent(FlexAlign.SpaceBetween)
- }
- // 步骤切换按钮
- Row() {
- Row () {
- Text('第一步')
- .fontSize($r('app.float.fontSize_24'))
- .fontColor($r('app.color.0A84FF'))
- .fontWeight(FontWeight.Medium)
- }
- .height('67%')
- .width('24.1%')
- .justifyContent(FlexAlign.Center)
- .backgroundColor($r('app.color.20FFFFFF'))
- .borderRadius($r('app.float.fontSize_16'))
- .opacity(this.currentStep > 2 ? 1 : 0.3)
- .onClick(()=>{
- this.currentStep = 1
- })
- Row().width('1.2%')
- Row () {
- Text('上一步')
- .fontSize($r('app.float.fontSize_24'))
- .fontColor($r('app.color.0A84FF'))
- .fontWeight(FontWeight.Medium)
- }
- .height('67%')
- .width('24.1%')
- .justifyContent(FlexAlign.Center)
- .backgroundColor($r('app.color.20FFFFFF'))
- .borderRadius($r('app.float.fontSize_16'))
- .opacity(this.currentStep > 1 ? 1 : 0.3)
- .scale({ x: this.preStepButtonClick, y: this.preStepButtonClick })
- .animation({
- duration: 200,
- curve: Curve.Linear // 弹性曲线更生动
- })
- .onClick(() => {
- this.preStepButtonClick = 0.9; // 点击时缩小
- setTimeout(() => {
- this.preStepButtonClick = 1; // 0.2秒后恢复
- }, 200);
- if (this.currentStep > 1) {
- this.currentStep -= 1
- }
- })
- Row().width('1.2%')
- Row () {
- Text('料箱出库')
- .fontSize($r('app.float.fontSize_24'))
- .fontColor($r('app.color.0A84FF'))
- .fontWeight(FontWeight.Medium)
- }
- .height('67%')
- .width('24.1%')
- .justifyContent(FlexAlign.Center)
- .backgroundColor($r('app.color.20FFFFFF'))
- .borderRadius($r('app.float.fontSize_16'))
- .opacity(this.currentStep === 1 ? 1 : 0.3)
- .scale({ x: this.outBoundButtonClick, y: this.outBoundButtonClick })
- .animation({
- duration: 200,
- curve: Curve.Linear // 弹性曲线更生动
- })
- .onClick(() => {
- this.outBoundButtonClick = 0.9; // 点击时缩小
- setTimeout(() => {
- this.outBoundButtonClick = 1; // 0.2秒后恢复
- }, 200);
- this.callBoxOutboundFunc()
- })
- Row().width('1.2%')
- Row () {
- Text('下一步')
- .fontSize($r('app.float.fontSize_24'))
- .fontColor($r('app.color.0A84FF'))
- .fontWeight(FontWeight.Medium)
- }
- .height('67%')
- .width('24.1%')
- .justifyContent(FlexAlign.Center)
- .backgroundColor($r('app.color.20FFFFFF'))
- .borderRadius($r('app.float.fontSize_16'))
- .opacity(this.currentStep < 2 ? 1 : 0.3)
- .scale({ x: this.nextStepButtonClick, y: this.nextStepButtonClick })
- .animation({
- duration: 200,
- curve: Curve.Linear // 弹性曲线更生动
- })
- .onClick(() => {
- this.nextStepButtonClick = 0.9; // 点击时缩小
- setTimeout(() => {
- this.nextStepButtonClick = 1; // 0.2秒后恢复
- }, 200);
- if (this.currentStep < 2) {
- this.currentStep += 1
- }
- })
- }
- .width('94.8%')
- .height('7.4%')
- .alignItems(VerticalAlign.Center)
- }
- .width('100%')
- .height('100%')
- .backgroundColor($r('app.color.000000'))
- }
- .height('100%')
- }
- }
|