|
@@ -0,0 +1,346 @@
|
|
|
+import ProcessRequest from '../common/util/request/ProcessRequest'
|
|
|
+import { MessageInfo, MessagePage } from '../viewmodel/MessageInfo'
|
|
|
+import TaskSeqVO from '../viewmodel/process/TaskSeqInfo'
|
|
|
+import { DeptInfo, ProductionLine, WorkstationInfo } from '../viewmodel/process/UserInfo'
|
|
|
+import RequestParamModel from '../viewmodel/RequestParamModel'
|
|
|
+
|
|
|
+@CustomDialog
|
|
|
+export struct SwitchingStationDialog{
|
|
|
+ private scrollerList: Scroller = new Scroller()
|
|
|
+ //当前工位
|
|
|
+ @Link currentStation:string
|
|
|
+ @Link currentPLCode:string
|
|
|
+ @Link currentStationId:string
|
|
|
+ @State selectStationIndex: number = -1
|
|
|
+ //工位列表
|
|
|
+ @State stationsList : WorkstationInfo[]=[]
|
|
|
+ loadStations = async () => {
|
|
|
+ this.stationsList = await ProcessRequest.get(`api/v1/base/station/getStationList/${this.currentPLCode}/0`, {}) as WorkstationInfo[];
|
|
|
+ };
|
|
|
+ controller: CustomDialogController
|
|
|
+ aboutToAppear(): void {
|
|
|
+ this.loadStations();
|
|
|
+ }
|
|
|
+
|
|
|
+ private onSelectStation(index: number) {
|
|
|
+ this.selectStationIndex = index
|
|
|
+ }
|
|
|
+
|
|
|
+ build() {
|
|
|
+ Column() {
|
|
|
+ Column() {
|
|
|
+ Text("切换工位")
|
|
|
+ .fontColor($r('app.color.FFFFFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_38'))
|
|
|
+ }
|
|
|
+ .height('8%')
|
|
|
+ .width('100%')
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+
|
|
|
+ Column(){
|
|
|
+ List({space:10,scroller:this.scrollerList}) {
|
|
|
+ ForEach(this.stationsList, (item:WorkstationInfo,index) => {
|
|
|
+ ListItem() {
|
|
|
+ Column(){
|
|
|
+ Text(item.name)
|
|
|
+ .fontSize($r('app.float.fontSize_24'))
|
|
|
+ .fontColor($r('app.color.FFFFFF'))
|
|
|
+ } .backgroundColor(index === this.selectStationIndex ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
|
|
|
+ .borderRadius($r('app.float.virtualSize_16'))
|
|
|
+ .padding(8)
|
|
|
+ .width('100%')
|
|
|
+ .height('12%')
|
|
|
+ .alignItems(HorizontalAlign.Center)
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .border({
|
|
|
+ width: index === this.selectStationIndex ? 2 : 0,
|
|
|
+ color: index === this.selectStationIndex ? $r('app.color.2030D158') : $r('app.color.20FFFFFF')
|
|
|
+ })
|
|
|
+ .onClick(() => {
|
|
|
+ this.onSelectStation(index)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ .width('70%')
|
|
|
+ .height('100%')
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.SpaceEvenly)
|
|
|
+ .width('100%')
|
|
|
+ .height('81%')
|
|
|
+ .margin({ top: '2%'})
|
|
|
+
|
|
|
+ Column() {
|
|
|
+ Divider()
|
|
|
+ .vertical(false)
|
|
|
+ .strokeWidth(1)
|
|
|
+ .color($r('app.color.15FFFFFF'))
|
|
|
+ Row() {
|
|
|
+ Row() {
|
|
|
+ Text('取消')
|
|
|
+ .fontColor($r('app.color.60FFFFFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_30'))
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .width('50%')
|
|
|
+ .onClick(() => this.controller.close())
|
|
|
+ Divider()
|
|
|
+ .vertical(true)
|
|
|
+ .strokeWidth(1)
|
|
|
+ .color($r('app.color.15FFFFFF'))
|
|
|
+ Row() {
|
|
|
+ Text('确定')
|
|
|
+ .fontColor($r('app.color.007AFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_30'))
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .width('50%')
|
|
|
+ .onClick(() => {
|
|
|
+ this.currentStation = this.stationsList[this.selectStationIndex].name??""
|
|
|
+ this.currentStationId=this.stationsList[this.selectStationIndex].id??""
|
|
|
+ this.controller.close();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .width('100%')
|
|
|
+ .height('8%')
|
|
|
+
|
|
|
+ }
|
|
|
+ .height('71%')
|
|
|
+ .width('30%')
|
|
|
+ .backgroundColor($r('app.color.2A2A2A'))
|
|
|
+ .justifyContent(FlexAlign.End)
|
|
|
+ .alignItems(HorizontalAlign.Start)
|
|
|
+ .borderColor($r('app.color.000000'))
|
|
|
+ .borderWidth(1)
|
|
|
+ .borderRadius($r('app.float.virtualSize_16'))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@CustomDialog
|
|
|
+export struct SwitchingProductLineDialog{
|
|
|
+ private scrollerList: Scroller = new Scroller()
|
|
|
+ //当前产线
|
|
|
+ @Link currentProductLine:string
|
|
|
+ @Link currentPLCode:string
|
|
|
+
|
|
|
+ @State selectProductLineIndex: number = -1
|
|
|
+ //产线列表
|
|
|
+ @State productLineList : ProductionLine[]=[]
|
|
|
+ loadStations = async () => {
|
|
|
+ this.productLineList = await ProcessRequest.post('api/v1/base/productionLine/list/list', {}as RequestParamModel) as ProductionLine[];
|
|
|
+ };
|
|
|
+ controller: CustomDialogController
|
|
|
+ aboutToAppear(): void {
|
|
|
+ this.loadStations();
|
|
|
+ }
|
|
|
+
|
|
|
+ private onSelectProductLine(index: number) {
|
|
|
+ this.selectProductLineIndex = index
|
|
|
+ }
|
|
|
+
|
|
|
+ build() {
|
|
|
+ Column() {
|
|
|
+ Column() {
|
|
|
+ Text("切换工位")
|
|
|
+ .fontColor($r('app.color.FFFFFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_38'))
|
|
|
+ }
|
|
|
+ .height('8%')
|
|
|
+ .width('100%')
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+
|
|
|
+ Column(){
|
|
|
+ List({space:10,scroller:this.scrollerList}) {
|
|
|
+ ForEach(this.productLineList, (item:ProductionLine,index) => {
|
|
|
+ ListItem() {
|
|
|
+ Column(){
|
|
|
+ Text(item.name)
|
|
|
+ .fontSize($r('app.float.fontSize_24'))
|
|
|
+ .fontColor($r('app.color.FFFFFF'))
|
|
|
+ } .backgroundColor(index === this.selectProductLineIndex ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
|
|
|
+ .borderRadius($r('app.float.virtualSize_16'))
|
|
|
+ .padding(8)
|
|
|
+ .width('100%')
|
|
|
+ .height('12%')
|
|
|
+ .alignItems(HorizontalAlign.Center)
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .border({
|
|
|
+ width: index === this.selectProductLineIndex ? 2 : 0,
|
|
|
+ color: index === this.selectProductLineIndex ? $r('app.color.2030D158') : $r('app.color.20FFFFFF')
|
|
|
+ })
|
|
|
+ .onClick(() => {
|
|
|
+ this.onSelectProductLine(index)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ .width('70%')
|
|
|
+ .height('100%')
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.SpaceEvenly)
|
|
|
+ .width('100%')
|
|
|
+ .height('81%')
|
|
|
+ .margin({ top: '2%'})
|
|
|
+
|
|
|
+ Column() {
|
|
|
+ Divider()
|
|
|
+ .vertical(false)
|
|
|
+ .strokeWidth(1)
|
|
|
+ .color($r('app.color.15FFFFFF'))
|
|
|
+ Row() {
|
|
|
+ Row() {
|
|
|
+ Text('取消')
|
|
|
+ .fontColor($r('app.color.60FFFFFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_30'))
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .width('50%')
|
|
|
+ .onClick(() => this.controller.close())
|
|
|
+ Divider()
|
|
|
+ .vertical(true)
|
|
|
+ .strokeWidth(1)
|
|
|
+ .color($r('app.color.15FFFFFF'))
|
|
|
+ Row() {
|
|
|
+ Text('确定')
|
|
|
+ .fontColor($r('app.color.007AFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_30'))
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .width('50%')
|
|
|
+ .onClick(() => {
|
|
|
+ this.currentProductLine = this.productLineList[this.selectProductLineIndex].name??""
|
|
|
+ this.currentPLCode = this.productLineList[this.selectProductLineIndex].code??""
|
|
|
+ this.controller.close();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .width('100%')
|
|
|
+ .height('8%')
|
|
|
+
|
|
|
+ }
|
|
|
+ .height('71%')
|
|
|
+ .width('30%')
|
|
|
+ .backgroundColor($r('app.color.2A2A2A'))
|
|
|
+ .justifyContent(FlexAlign.End)
|
|
|
+ .alignItems(HorizontalAlign.Start)
|
|
|
+ .borderColor($r('app.color.000000'))
|
|
|
+ .borderWidth(1)
|
|
|
+ .borderRadius($r('app.float.virtualSize_16'))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@CustomDialog
|
|
|
+export struct SwitchingDeptDialog{
|
|
|
+ private scrollerList: Scroller = new Scroller()
|
|
|
+ //当前部门
|
|
|
+ @Link currentDept:string
|
|
|
+ @Link currentOrgId:number
|
|
|
+
|
|
|
+ @State selectDeptIndex: number = -1
|
|
|
+ //部门列表
|
|
|
+ @State departmentsList : DeptInfo[]=[]
|
|
|
+ loadStations = async () => {
|
|
|
+ this.departmentsList = await ProcessRequest.get('/api/v1/sys/dept/orgList', {}) as DeptInfo[];
|
|
|
+ };
|
|
|
+ controller: CustomDialogController
|
|
|
+ aboutToAppear(): void {
|
|
|
+ this.loadStations();
|
|
|
+ }
|
|
|
+
|
|
|
+ private onSelectStation(index: number) {
|
|
|
+ this.selectDeptIndex = index
|
|
|
+ }
|
|
|
+
|
|
|
+ build() {
|
|
|
+ Column() {
|
|
|
+ Column() {
|
|
|
+ Text("切换部门")
|
|
|
+ .fontColor($r('app.color.FFFFFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_38'))
|
|
|
+ }
|
|
|
+ .height('8%')
|
|
|
+ .width('100%')
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+
|
|
|
+ Column(){
|
|
|
+ List({space:10,scroller:this.scrollerList}) {
|
|
|
+ ForEach(this.departmentsList, (item:DeptInfo,index) => {
|
|
|
+ ListItem() {
|
|
|
+ Column(){
|
|
|
+ Text(item.deptName)
|
|
|
+ .fontSize($r('app.float.fontSize_24'))
|
|
|
+ .fontColor($r('app.color.FFFFFF'))
|
|
|
+ } .backgroundColor(index === this.selectDeptIndex ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
|
|
|
+ .borderRadius($r('app.float.virtualSize_16'))
|
|
|
+ .padding(8)
|
|
|
+ .width('100%')
|
|
|
+ .height('12%')
|
|
|
+ .alignItems(HorizontalAlign.Center)
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .border({
|
|
|
+ width: index === this.selectDeptIndex ? 2 : 0,
|
|
|
+ color: index === this.selectDeptIndex ? $r('app.color.2030D158') : $r('app.color.20FFFFFF')
|
|
|
+ })
|
|
|
+ .onClick(() => {
|
|
|
+ this.onSelectStation(index)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ .width('70%')
|
|
|
+ .height('100%')
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.SpaceEvenly)
|
|
|
+ .width('100%')
|
|
|
+ .height('81%')
|
|
|
+ .margin({ top: '2%'})
|
|
|
+
|
|
|
+ Column() {
|
|
|
+ Divider()
|
|
|
+ .vertical(false)
|
|
|
+ .strokeWidth(1)
|
|
|
+ .color($r('app.color.15FFFFFF'))
|
|
|
+ Row() {
|
|
|
+ Row() {
|
|
|
+ Text('取消')
|
|
|
+ .fontColor($r('app.color.60FFFFFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_30'))
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .width('50%')
|
|
|
+ .onClick(() => this.controller.close())
|
|
|
+ Divider()
|
|
|
+ .vertical(true)
|
|
|
+ .strokeWidth(1)
|
|
|
+ .color($r('app.color.15FFFFFF'))
|
|
|
+ Row() {
|
|
|
+ Text('确定')
|
|
|
+ .fontColor($r('app.color.007AFF'))
|
|
|
+ .fontSize($r('app.float.fontSize_30'))
|
|
|
+ }
|
|
|
+ .justifyContent(FlexAlign.Center)
|
|
|
+ .width('50%')
|
|
|
+ .onClick(() => {
|
|
|
+ this.currentDept = this.departmentsList[this.selectDeptIndex].deptName??""
|
|
|
+ this.currentOrgId = this.departmentsList[this.selectDeptIndex].id??0
|
|
|
+ this.controller.close();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .width('100%')
|
|
|
+ .height('8%')
|
|
|
+
|
|
|
+ }
|
|
|
+ .height('71%')
|
|
|
+ .width('30%')
|
|
|
+ .backgroundColor($r('app.color.2A2A2A'))
|
|
|
+ .justifyContent(FlexAlign.End)
|
|
|
+ .alignItems(HorizontalAlign.Start)
|
|
|
+ .borderColor($r('app.color.000000'))
|
|
|
+ .borderWidth(1)
|
|
|
+ .borderRadius($r('app.float.virtualSize_16'))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|