| | |
| | | let pixiCrnMap = new Map(); |
| | | let pixiShelfMap = new Map(); |
| | | let pixiTrackMap = new Map(); |
| | | let crnList = []; |
| | | let objectsContainer; |
| | | let objectsContainer2; |
| | | let graphicsShelf; |
| | |
| | | } |
| | | }) |
| | | |
| | | map.forEach((item, index) => { |
| | | for(let idx = 0;idx < item.length;idx++){ |
| | | let val = item[idx]; |
| | | let cellWidth = val.cellWidth / 40; |
| | | let cellHeight = val.cellHeight / 8; |
| | | |
| | | val.width = cellWidth; |
| | | val.height = cellHeight; |
| | | |
| | | let mergeHeight = cellHeight; |
| | | if(val.rowSpan > 1) { |
| | | for(let i = 1;i < val.rowSpan;i++){ |
| | | let nextMerge = map[index + i][idx]; |
| | | if(nextMerge.type != 'merge'){ |
| | | continue; |
| | | } |
| | | |
| | | let mergeCellHeight = nextMerge.cellHeight / 8; |
| | | mergeHeight += mergeCellHeight; |
| | | } |
| | | |
| | | val.height = mergeHeight; |
| | | } |
| | | |
| | | let mergeWidth = cellWidth; |
| | | if(val.colSpan > 1) { |
| | | for(let i = 1;i < val.colSpan;i++){ |
| | | let nextMerge = map[index][idx + i]; |
| | | if(nextMerge.type != 'merge'){ |
| | | continue; |
| | | } |
| | | |
| | | let mergeCellWidth = nextMerge.cellWidth / 40; |
| | | mergeWidth += mergeCellWidth; |
| | | } |
| | | |
| | | val.width = mergeWidth; |
| | | } |
| | | } |
| | | }) |
| | | |
| | | const rowHeightScaled = bayHeightList.map(h => (h != null && h !== -1) ? (h / 8) : (height)); |
| | | let yOffsets = []; |
| | | let yCursor = 0; |
| | |
| | | let xCursor = 0; |
| | | for (let colIndex = 0; colIndex < row.length; colIndex++) { |
| | | let val = row[colIndex]; |
| | | let cellWidth = val.cellWidth / 40; |
| | | let cellHeight = val.cellHeight / 8; |
| | | |
| | | val.width = cellWidth; |
| | | val.height = cellHeight; |
| | | let cellWidth = val.width; |
| | | let cellHeight = val.height; |
| | | |
| | | val.posX = xCursor; |
| | | val.posY = yOffsets[rowIndex]; |
| | |
| | | } |
| | | }); |
| | | |
| | | crnList.forEach((item) => { |
| | | let sprite = new PIXI.Sprite(graphicsCrn); |
| | | const deviceNo = getDeviceNo(item.value); |
| | | const taskNo = getTaskNo(item.value); |
| | | const style = new PIXI.TextStyle({ fontFamily: 'Arial', fontSize: 12, fill: '#ffffff', stroke: '#000000', strokeThickness: 2 }); |
| | | const txt = taskNo > 0 ? (deviceNo + "(" + taskNo + ")") : String(deviceNo); |
| | | const text = new PIXI.Text(txt, style); |
| | | text.anchor.set(0.5); |
| | | text.position.set(sprite.width / 2, sprite.height / 2); |
| | | sprite.addChild(text); |
| | | sprite.textObj = text; |
| | | sprite.zIndex = 1; |
| | | |
| | | sprite.position.set(item.posX, item.posY); |
| | | sprite.interactive = true; // 必须要设置才能接收事件 |
| | | sprite.buttonMode = true; // 让光标在hover时变为手型指针 |
| | | |
| | | pixiCrnMap.set(parseInt(deviceNo), sprite); |
| | | objectsContainer2.addChild(sprite); |
| | | }) |
| | | |
| | | |
| | | //视角居中 |
| | |
| | | pixiStaMap.set(parseInt(siteId), sprite); |
| | | } |
| | | } else if (item.type == 'crn') { |
| | | if (getDeviceNo(value) == -1) { |
| | | sprite = createTrackSprite(item.width, item.height); |
| | | sprite.zIndex = 0; |
| | | } else { |
| | | sprite = new PIXI.Sprite(graphicsCrn); |
| | | const deviceNo = getDeviceNo(value); |
| | | const taskNo = getTaskNo(value); |
| | | const style = new PIXI.TextStyle({ fontFamily: 'Arial', fontSize: 12, fill: '#ffffff', stroke: '#000000', strokeThickness: 2 }); |
| | | const txt = taskNo > 0 ? (deviceNo + "(" + taskNo + ")") : String(deviceNo); |
| | | const text = new PIXI.Text(txt, style); |
| | | text.anchor.set(0.5); |
| | | text.position.set(sprite.width / 2, sprite.height / 2); |
| | | sprite.addChild(text); |
| | | sprite.textObj = text; |
| | | pixiCrnMap.set(parseInt(deviceNo), sprite); |
| | | sprite.zIndex = 1; |
| | | sprite = createTrackSprite(item.width, item.height); |
| | | sprite.zIndex = 0; |
| | | |
| | | if(getDeviceNo(value) > 0){ |
| | | crnList.push(item); |
| | | } |
| | | } else { |
| | | return null; |