123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- //叫料通知
- import WorkOrderInfo from '../../viewmodel/wms/WorkOrderInfo'
- import {OrderParams,DemandMaterial} from "../../params/OrderMaterialsStorageParams"
- import WmsRequest from '../../common/util/request/WmsRequest'
- import RequestParamModel from '../../viewmodel/wms/RequestParamModel'
- import { NotificationInfo} from '../../viewmodel/wms/NotificationInfo'
- @Component
- struct MaterialNotificationItem{
- @Prop item:WorkOrderInfo
- @Prop index:number
- @State scaleValue:number = 1
- @Link workOrders: WorkOrderInfo[]
- searchRequestMaterial: () => void = () => {}
- build() {
- Row(){
- Column() {
- // 订单标题(带订单号)
- Text(`${this.item.orderName}${this.item.orderCode}`)
- .fontSize($r('app.float.fontSize_30'))
- .fontColor(this.item.workOrderState=="完成"?$r('app.color.FFFFFF'):$r('app.color.30FFFFFF'))
- .width('100%')
- .textAlign(TextAlign.Start)
- // 订单详情
- Column({ space: 3 }) {
- Text(`工位: ${this.item.workOrderCode}`)
- .fontColor(this.item.workOrderState=="完成"?$r('app.color.FFFFFF'):$r('app.color.30FFFFFF'))
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- Text(`工序: ${this.item.orderCode}`)
- .fontColor(this.item.workOrderState=="完成"?$r('app.color.FFFFFF'):$r('app.color.30FFFFFF'))
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- Row() {
- Text('通知时间:')
- .fontColor(this.item.workOrderState=="完成"?$r('app.color.FFFFFF'):$r('app.color.30FFFFFF'))
- .fontSize($r('app.float.fontSize_16'))
- .fontWeight(FontWeight.Lighter)
- Text(this.item.planStartWhen)
- .fontColor(this.item.workOrderState=="完成"?$r('app.color.FFFFFF'):$r('app.color.30FFFFFF'))
- .fontSize($r('app.float.fontSize_16'))
- .margin({ left: 4 })
- .fontWeight(FontWeight.Lighter)
- }
- .width('100%')
- .justifyContent(FlexAlign.Start)
- }
- .margin({ top: 6 })
- .alignItems(HorizontalAlign.Start)
- }.width('85%')
- Row(){
- //Text(index === this.selectedIndex ?item.workOrderState:item.workOrderState)
- Text(this.item.workOrderState)
- .fontSize($r('app.float.fontSize_30'))
- .fontColor(this.item.workOrderState=="完成"?$r('app.color.30D158'):$r('app.color.30FFFFFF'))
- }.width('15%')
- }
- .backgroundColor(this.scaleValue===0.9 ? $r('app.color.2030D158') : $r('app.color.20FFFFFF')) // 选中状态加深
- .borderRadius($r('app.float.virtualSize_24'))
- .padding(10)
- .scale({ x: this.scaleValue, y: this.scaleValue })
- .animation({
- duration: 200,
- curve: Curve.Linear // 弹性曲线更生动
- })
- //.border({width:2,color:this.scaleValue===0.9 ? $r('app.color.2030D158'):$r('app.color.20FFFFFF')})
- .onClick(() => {
- this.scaleValue = 0.9; // 点击时缩小
- setTimeout(() => {
- this.searchRequestMaterial()
- this.scaleValue = 1; // 0.2秒后恢复
- const changed = this.workOrders[this.index].workOrderState !== "已完成";
- this.workOrders[this.index].workOrderState = "已完成";
- // 只有状态确实变化时才重新排序
- if (changed) {
- this.workOrders = this.workOrders.slice().sort((a) =>
- a.workOrderState === "已完成" ? 1 : -1
- );
- }
- }, 200);
- })
- }
- }
- @CustomDialog
- export struct MaterialNotificationDialog {
- private scrollerForList: Scroller = new Scroller()
- @Link selectWorkOrder:WorkOrderInfo
- @Link workOrders: WorkOrderInfo[]
- @State notificationList :NotificationInfo[]=[]
- //@Link selectWorkOrder: WorkOrderInfo
- // 选中回调函数
- controller: CustomDialogController
- searchRequestMaterial: () => void = () => {}
- loadNotificationList=async()=>{
- this.notificationList = await WmsRequest.post('/api/v1/sys/message/list', {
- type:2
- } as RequestParamModel) as NotificationInfo[]
- console.info("testtag1+"+JSON.stringify(this.notificationList))
- }
- async aboutToAppear() {
- console.info("testtag1+11111")
- this.workOrders = this.workOrders
- .slice()
- .sort((a) => a.workOrderState === "已完成" ? 1 : -1);
- }
- build() {
- Column() {
- Column(){
- Text('叫料通知')
- .fontColor($r('app.color.FFFFFF'))
- .fontSize($r('app.float.fontSize_38'))
- }.height('6%')
- .justifyContent(FlexAlign.Center)
- Column() { // 订单列表
- List({ space: 8,scroller:this.scrollerForList }) {
- ForEach(this.workOrders, (item: WorkOrderInfo, index) => {
- ListItem() {
- MaterialNotificationItem({
- item:item,
- index:index,
- workOrders:this.workOrders,
- searchRequestMaterial:this.searchRequestMaterial
- })
- }
- })
- }
- .width('90%')
- .flexGrow(1)
- }
- .width('100%')
- .height('80%')
- .margin({bottom:'2%',top:'1%'})
- Divider()
- .vertical(false)
- .strokeWidth(1)
- .color($r('app.color.15FFFFFF'))
- Column(){
- Text('关闭')
- .fontColor($r('app.color.60FFFFFF'))
- .fontSize($r('app.float.fontSize_30'))
- }
- .height('8%')
- .justifyContent(FlexAlign.Center)
- .width('100%')
- .onClick(
- () => this.controller.close()
- )
- }
- .height('80%')
- .width('60%')
- .backgroundColor($r('app.color.2A2A2A'))
- .justifyContent(FlexAlign.End)
- .borderColor($r('app.color.000000'))
- .borderWidth(1)
- .borderRadius($r('app.float.virtualSize_16'))
- }
- }
- @CustomDialog
- export struct MaterialRequestDialog {
- private scrollerForList: Scroller = new Scroller()
- @State materialData: DemandMaterial[] = [
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- {materialName: 'PCBA电路板-SADD1231241142324233231233234', materialType: '12322221232321222332211233', inBoundNum: 11, planNum: 20 },
- ];
- //@Link selectWorkOrder: WorkOrderInfo
- @State selectedIndex: number = -1 // 添加选中索引状态
- // 选中回调函数
- private onSelect(index: number): void {
- this.selectedIndex = index
- //this.selectWorkOrder = this.workOrders[index]
- }
- controller: CustomDialogController
- onConfirm: () => void = () => {}
- build() {
- Column() {
- Column(){
- Text('物料需求')
- .fontColor($r('app.color.FFFFFF'))
- .fontSize($r('app.float.fontSize_38'))
- }.height('6%')
- .justifyContent(FlexAlign.Center)
- Column() {
- List({scroller:this.scrollerForList}) {
- ForEach(this.materialData, (item:DemandMaterial) => {
- ListItem() {
- Row() {
- Column(){
- Text(item.materialName)
- .fontSize($r('app.float.fontSize_16'))
- .fontColor($r('app.color.FFFFFF'))
- .width('90%')
- .textAlign(TextAlign.Start)
- Text(`型号: ${item.materialType}`)
- .fontSize($r('app.float.fontSize_16'))
- .fontColor($r('app.color.FFFFFF'))
- .width('90%')
- .textAlign(TextAlign.Start)
- .margin({top:'1%'})
- .fontWeight(FontWeight.Lighter)
- }
- Row(){
- Text(`${item.planNum}`)
- .fontSize($r('app.float.fontSize_38'))
- .fontColor($r('app.color.FFFFFF'))
- .width('10%')
- .textAlign(TextAlign.Start)
- }
- }.width('100%').justifyContent(FlexAlign.SpaceEvenly).height('12%')
- }
- })
- }
- .width('90%')
- .height('100%')
- .divider({
- strokeWidth: 1,
- color: $r('app.color.20FFFFFF')
- })
- }
- .width('100%')
- .height('80%')
- .margin({bottom:'2%',top:'1%'})
- Divider()
- .vertical(false)
- .strokeWidth(1)
- .color($r('app.color.15FFFFFF'))
- Column(){
- Text('关闭')
- .fontColor($r('app.color.60FFFFFF'))
- .fontSize($r('app.float.fontSize_30'))
- }
- .width('100%')
- .height('8%')
- .justifyContent(FlexAlign.Center)
- .onClick(
- () => this.controller.close()
- )
- }
- .height('80%')
- .width('30%')
- .backgroundColor($r('app.color.2A2A2A'))
- .justifyContent(FlexAlign.End)
- .borderColor($r('app.color.000000'))
- .borderWidth(1)
- .borderRadius($r('app.float.virtualSize_16'))
- }
- }
|