diff --git a/src/permission.js b/src/permission.js index 0f51278..f44fc31 100644 --- a/src/permission.js +++ b/src/permission.js @@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title' NProgress.configure({ showSpinner: false }) // NProgress Configuration -const whiteList = ['/menu','/login', '/auth-redirect','/kban','/hbao','/sliao',] // no redirect whitelist +const whiteList = ['/menu','/login', '/auth-redirect','/kban','/sliao','/pwpg','/pwfk','/llpg','/llfk','/hxpg','/hxfk','/qgpg','/qgfl'] // no redirect whitelist export function flatRoutes(routes) { let ret = []; routes.forEach(it => { diff --git a/src/router/index.js b/src/router/index.js index 7aedaef..c6b72e2 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -48,21 +48,72 @@ export const constantRoutes = [ // component: () => import('@/views/jhzxgl/zyjh/index.vue'), // hidden: true // }, - { - path: '/hbao', - component: () => import('@/views/hbao/index'), - hidden: true - }, + // { + // path: '/hbao', + // component: () => import('@/views/hbao/index'), + // hidden: true + // }, + //看板 { path: '/kban', component: () => import('@/views/kban/index'), hidden: true }, + //上料 { path: '/sliao', - component: () => import('@/views/sliao/index'), + component: () => import('@/views/zyjhzx/sliao/index'), + hidden: true + }, + //抛丸派工 + { + path: '/pwpg', + component: () => import('@/views/zyjhzx/pwanpgong/index'), + hidden: true + }, + //抛丸反馈 + { + path: '/pwfk', + component: () => import('@/views/zyjhzx/pwanfkui/index'), hidden: true }, + //理料派工 + { + path: '/llpg', + component: () => import('@/views/zyjhzx/lliaopgong/index'), + hidden: true + }, + //理料反馈 + { + path: '/llfk', + component: () => import('@/views/zyjhzx/lliaofkui/index'), + hidden: true + }, + //划线派工 + { + path: '/hxpg', + component: () => import('@/views/zyjhzx/hxianpgong/index'), + hidden: true + }, + //划线反馈 + { + path: '/hxfk', + component: () => import('@/views/zyjhzx/hxianfkui/index'), + hidden: true + }, + //切割派工 + { + path: '/qgpg', + component: () => import('@/views/zyjhzx/qgepgong/index'), + hidden: true + }, + //切割反馈 + { + path: '/qgfk', + component: () => import('@/views/zyjhzx/qgefkui/index'), + hidden: true + }, + { path: '/login', component: () => import('@/views/login/index'), diff --git a/src/views/zyjhzx/hxianfkui/comps/HxianPgd.vue b/src/views/zyjhzx/hxianfkui/comps/HxianPgd.vue new file mode 100644 index 0000000..8d58353 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/HxianPgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/hxianfkui/comps/baifang.js b/src/views/zyjhzx/hxianfkui/comps/baifang.js new file mode 100644 index 0000000..2271f19 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/baifang.js @@ -0,0 +1,180 @@ +import Konva from "konva"; + +const baifang=function (option={}) { + const width=option.width,height=option.height,slList=option.dw,image=require('@/assets/gb.png') + const _width=width*0.232,_height=height*0.67 + const container=function (){ + const x=width*0.22+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const slGroup=container() + + const thatHeight=height + const gangban=function (index,str){ + const group=new Konva.Group({ + x:0, + y:thatHeight-310-index*40, + draggable:true + }) + + group.setAttr('index',index) + + slGroup.add(group) + const {x}=group.absolutePosition() + group.dragBoundFunc(function (pos){ + return { + x:x, + y:pos.y + } + }) + let _index=0 + + group.on('dragstart',function (){ + const {x,y}=this.absolutePosition() + this.startPos={ + x:x, + y:y + } + }) + group.on('dragmove',function (){ + if(_index===0){ + _index=this.getAttr('index') + } + this.zIndex(999) + const {y:thisY}=this.absolutePosition() + + const dir=thisY-this.startPos.y>0?-40:40 + + const children=slGroup.children + + for (const child of children) { + if (child===this){ + return + } + + const {y:thatY}=child.absolutePosition() + const moveDir=child.getAttr('moveDir')||0 + if (thisY>=thatY&&thisY<=thatY+40&&moveDir!==dir){ + child.setAttr('moveDir',dir); + _index+=dir>0?1:-1 + child.move({ + y:dir + }) + this.startPos={ + x:x, + y:thisY + } + } + + } + }) + + group.on('dragend',function (){ + const index=this.getAttr('index') + const element = slList.splice(index-1, 1)[0]; + slList.splice(_index-1, 0, element); + this.setAttr('index',_index) + _index=0 + slGroup.destroyChildren() + handler(slList) + }) + + const indexRect=new Konva.Rect({ + x:0, + y:0, + width:40, + height:40, + stroke:'black', + strokeWidth:1, + }) + //group.add(indexRect) + + const indexText=new Konva.Text({ + x:0, + y:0, + width:40, + height:40, + fill:'black', + text:index, + align:'center', + verticalAlign:'middle', + }) + group.add(indexText) + + //层 规格,套料图 船号,上料日期,计划切割日期 + const imageObj = new Image(); + const imgSize=200 + imageObj.src = image; + imageObj.onload = function () { + const shape = new Konva.Image({ + x: 40, + y: 0, + width: imgSize, + height:40, + image: imageObj, + }); + group.add(shape) + const gbText=new Konva.Text({ + x: 40, + y: 0, + width: imgSize, + height:40, + fill:'black', + text:str+',12*2830*13090', + align:'center', + verticalAlign:'middle', + }) + group.add(gbText) + } + + const concent=new Konva.Text({ + x: imgSize+60, + y: 0, + width: imgSize-20, + height:40, + fill:'black', + text:'G175K-4,001,2302\n上料:2024/07/01,切割:2024/07/04', + align:'center', + verticalAlign:'middle', + }) + group.add(concent) + + return group + } + + function handler(slList){ + for (let i = 1; i <= slList.length; i++) { + const item=slList[i-1] + const _group=gangban(i,item,item.length) + slGroup.add(_group) + } + } + + handler(slList) + + return { + container,slGroup,handler + } +} + +export default baifang diff --git a/src/views/sliao/comps/container.js b/src/views/zyjhzx/hxianfkui/comps/container.js similarity index 100% rename from src/views/sliao/comps/container.js rename to src/views/zyjhzx/hxianfkui/comps/container.js diff --git a/src/views/zyjhzx/hxianfkui/comps/dw.js b/src/views/zyjhzx/hxianfkui/comps/dw.js new file mode 100644 index 0000000..5df14e4 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/dw.js @@ -0,0 +1,78 @@ +import Konva from "konva"; + +export default function (width,height,callback){ + console.log(callback) + const x=0,y=0,_width=width*0.08,_height=height*0.67 + + const container=function (){ + const x=width*0.134+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item=[]){ + + const alignSize=1 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + console.log(item) + callback(index,item.list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/hxianfkui/comps/person.js b/src/views/zyjhzx/hxianfkui/comps/person.js new file mode 100644 index 0000000..99851c2 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const _width=width*0.134,_height=height*0.67 + + const container=function (){ + const x=20,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + const alignSize=2 + const width=(_width-20)/alignSize,height=110 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/hxianfkui/comps/pgd.js b/src/views/zyjhzx/hxianfkui/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/hxianfkui/comps/pgdTable.js b/src/views/zyjhzx/hxianfkui/comps/pgdTable.js new file mode 100644 index 0000000..5a50d33 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/pgdTable.js @@ -0,0 +1,45 @@ + +export default function () { + const options={ + height:250, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'002',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'HX'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '理料垛位', width: 80}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/hxianfkui/comps/sb.js b/src/views/zyjhzx/hxianfkui/comps/sb.js new file mode 100644 index 0000000..2b67388 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/comps/sb.js @@ -0,0 +1,38 @@ +import Konva from "konva"; + +//传送带 +export default function (width,height){ + const x=width*0.45+37,y=300,_width=width*0.2,_height=height*0.67 + const container=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + container.add(rect) + + const text=new Konva.Text({ + x: 0, + y: 0, + width: _width, + height:_height, + fill:'black', + text:'设备', + align:'center', + verticalAlign:'middle', + }) + + container.add(text) + + return container +} diff --git a/src/views/sliao/comps/title.js b/src/views/zyjhzx/hxianfkui/comps/title.js similarity index 100% rename from src/views/sliao/comps/title.js rename to src/views/zyjhzx/hxianfkui/comps/title.js diff --git a/src/views/zyjhzx/hxianfkui/index.vue b/src/views/zyjhzx/hxianfkui/index.vue new file mode 100644 index 0000000..158b923 --- /dev/null +++ b/src/views/zyjhzx/hxianfkui/index.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/zyjhzx/hxianpgong/comps/HxianPgd.vue b/src/views/zyjhzx/hxianpgong/comps/HxianPgd.vue new file mode 100644 index 0000000..8d58353 --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/HxianPgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/hxianpgong/comps/container.js b/src/views/zyjhzx/hxianpgong/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/hxianpgong/comps/dw.js b/src/views/zyjhzx/hxianpgong/comps/dw.js new file mode 100644 index 0000000..45c30f9 --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/dw.js @@ -0,0 +1,76 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.16,_height=height*0.945 + + const container=function (){ + const x=width*0.5+30,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item={}){ + + const alignSize=2 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + callback(index,dw[index].list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/hxianpgong/comps/person.js b/src/views/zyjhzx/hxianpgong/comps/person.js new file mode 100644 index 0000000..e661e58 --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.5,_height=120 + + const container=function (){ + const x=20,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + + const width=120,height=110 + const x=index*120+(index+1)*5,y=5 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/hxianpgong/comps/pgd.js b/src/views/zyjhzx/hxianpgong/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/hxianpgong/comps/pgdTable.js b/src/views/zyjhzx/hxianpgong/comps/pgdTable.js new file mode 100644 index 0000000..ba99bde --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/pgdTable.js @@ -0,0 +1,45 @@ + +export default function () { + const options={ + height:740, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'001',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'HX'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '理料垛位', width: 80}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/hxianpgong/comps/title.js b/src/views/zyjhzx/hxianpgong/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/hxianpgong/index.vue b/src/views/zyjhzx/hxianpgong/index.vue new file mode 100644 index 0000000..e251a13 --- /dev/null +++ b/src/views/zyjhzx/hxianpgong/index.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/zyjhzx/lliaofkui/comps/LliaoPgd.vue b/src/views/zyjhzx/lliaofkui/comps/LliaoPgd.vue new file mode 100644 index 0000000..f880400 --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/LliaoPgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/lliaofkui/comps/baifang.js b/src/views/zyjhzx/lliaofkui/comps/baifang.js new file mode 100644 index 0000000..cd20411 --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/baifang.js @@ -0,0 +1,180 @@ +import Konva from "konva"; + +const baifang=function (option={}) { + const width=option.width,height=option.height,slList=option.dw,image=require('@/assets/gb.png') + const _width=width*0.25,_height=height*0.67 + const container=function (){ + const x=width*0.30+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const slGroup=container() + + const thatHeight=height + const gangban=function (index,str){ + const group=new Konva.Group({ + x:0, + y:thatHeight-310-index*40, + draggable:true + }) + + group.setAttr('index',index) + + slGroup.add(group) + const {x}=group.absolutePosition() + group.dragBoundFunc(function (pos){ + return { + x:x, + y:pos.y + } + }) + let _index=0 + + group.on('dragstart',function (){ + const {x,y}=this.absolutePosition() + this.startPos={ + x:x, + y:y + } + }) + group.on('dragmove',function (){ + if(_index===0){ + _index=this.getAttr('index') + } + this.zIndex(999) + const {y:thisY}=this.absolutePosition() + + const dir=thisY-this.startPos.y>0?-40:40 + + const children=slGroup.children + + for (const child of children) { + if (child===this){ + return + } + + const {y:thatY}=child.absolutePosition() + const moveDir=child.getAttr('moveDir')||0 + if (thisY>=thatY&&thisY<=thatY+40&&moveDir!==dir){ + child.setAttr('moveDir',dir); + _index+=dir>0?1:-1 + child.move({ + y:dir + }) + this.startPos={ + x:x, + y:thisY + } + } + + } + }) + + group.on('dragend',function (){ + const index=this.getAttr('index') + const element = slList.splice(index-1, 1)[0]; + slList.splice(_index-1, 0, element); + this.setAttr('index',_index) + _index=0 + slGroup.destroyChildren() + handler(slList) + }) + + const indexRect=new Konva.Rect({ + x:0, + y:0, + width:40, + height:40, + stroke:'black', + strokeWidth:1, + }) + //group.add(indexRect) + + const indexText=new Konva.Text({ + x:0, + y:0, + width:40, + height:40, + fill:'black', + text:index, + align:'center', + verticalAlign:'middle', + }) + group.add(indexText) + + //层 规格,套料图 船号,上料日期,计划切割日期 + const imageObj = new Image(); + const imgSize=200 + imageObj.src = image; + imageObj.onload = function () { + const shape = new Konva.Image({ + x: 40, + y: 0, + width: imgSize, + height:40, + image: imageObj, + }); + group.add(shape) + const gbText=new Konva.Text({ + x: 40, + y: 0, + width: imgSize, + height:40, + fill:'black', + text:str+',12*2830*13090', + align:'center', + verticalAlign:'middle', + }) + group.add(gbText) + } + + const concent=new Konva.Text({ + x: imgSize+60, + y: 0, + width: imgSize-20, + height:40, + fill:'black', + text:'G175K-4,001,2302\n上料:2024/07/01,切割:2024/07/04', + align:'center', + verticalAlign:'middle', + }) + group.add(concent) + + return group + } + + function handler(slList){ + for (let i = 1; i <= slList.length; i++) { + const item=slList[i-1] + const _group=gangban(i,item,item.length) + slGroup.add(_group) + } + } + + handler(slList) + + return { + container,slGroup,handler + } +} + +export default baifang diff --git a/src/views/zyjhzx/lliaofkui/comps/container.js b/src/views/zyjhzx/lliaofkui/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/lliaofkui/comps/csd.js b/src/views/zyjhzx/lliaofkui/comps/csd.js new file mode 100644 index 0000000..858185b --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/csd.js @@ -0,0 +1,38 @@ +import Konva from "konva"; + +//传送带 +export default function (width,height){ + const x=width*0.55+40,y=45,_width=width*0.1,_height=height*0.945 + const container=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + container.add(rect) + + const text=new Konva.Text({ + x: 0, + y: 0, + width: _width, + height:_height, + fill:'black', + text:'传送带', + align:'center', + verticalAlign:'middle', + }) + + container.add(text) + + return container +} diff --git a/src/views/zyjhzx/lliaofkui/comps/dw.js b/src/views/zyjhzx/lliaofkui/comps/dw.js new file mode 100644 index 0000000..4516c4d --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/dw.js @@ -0,0 +1,78 @@ +import Konva from "konva"; + +export default function (width,height,callback){ + console.log(callback) + const x=0,y=0,_width=width*0.16,_height=height*0.67 + + const container=function (){ + const x=width*0.134+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item=[]){ + + const alignSize=2 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + console.log(item) + callback(index,item.list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/lliaofkui/comps/person.js b/src/views/zyjhzx/lliaofkui/comps/person.js new file mode 100644 index 0000000..99851c2 --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const _width=width*0.134,_height=height*0.67 + + const container=function (){ + const x=20,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + const alignSize=2 + const width=(_width-20)/alignSize,height=110 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/lliaofkui/comps/pgd.js b/src/views/zyjhzx/lliaofkui/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/lliaofkui/comps/pgdTable.js b/src/views/zyjhzx/lliaofkui/comps/pgdTable.js new file mode 100644 index 0000000..fa11b06 --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/pgdTable.js @@ -0,0 +1,47 @@ + +export default function () { + const options={ + height:250, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'002',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'LL'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '垛位', width: 60}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: 'kw', title: '跨位', width: 80}, + {field: 'zl', title: '组立', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/lliaofkui/comps/title.js b/src/views/zyjhzx/lliaofkui/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/lliaofkui/index.vue b/src/views/zyjhzx/lliaofkui/index.vue new file mode 100644 index 0000000..a14dba6 --- /dev/null +++ b/src/views/zyjhzx/lliaofkui/index.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/zyjhzx/lliaopgong/comps/LliaoPgd.vue b/src/views/zyjhzx/lliaopgong/comps/LliaoPgd.vue new file mode 100644 index 0000000..f880400 --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/LliaoPgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/lliaopgong/comps/container.js b/src/views/zyjhzx/lliaopgong/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/lliaopgong/comps/dw.js b/src/views/zyjhzx/lliaopgong/comps/dw.js new file mode 100644 index 0000000..45c30f9 --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/dw.js @@ -0,0 +1,76 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.16,_height=height*0.945 + + const container=function (){ + const x=width*0.5+30,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item={}){ + + const alignSize=2 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + callback(index,dw[index].list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/lliaopgong/comps/person.js b/src/views/zyjhzx/lliaopgong/comps/person.js new file mode 100644 index 0000000..e661e58 --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.5,_height=120 + + const container=function (){ + const x=20,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + + const width=120,height=110 + const x=index*120+(index+1)*5,y=5 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/lliaopgong/comps/pgd.js b/src/views/zyjhzx/lliaopgong/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/lliaopgong/comps/pgdTable.js b/src/views/zyjhzx/lliaopgong/comps/pgdTable.js new file mode 100644 index 0000000..70414b7 --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/pgdTable.js @@ -0,0 +1,45 @@ + +export default function () { + const options={ + height:740, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'001',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'LL'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: 'kw', title: '跨位', width: 80}, + {field: 'zl', title: '组立', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/lliaopgong/comps/title.js b/src/views/zyjhzx/lliaopgong/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/lliaopgong/index.vue b/src/views/zyjhzx/lliaopgong/index.vue new file mode 100644 index 0000000..ca48f8c --- /dev/null +++ b/src/views/zyjhzx/lliaopgong/index.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/zyjhzx/pwanfkui/comps/PwanPgd.vue b/src/views/zyjhzx/pwanfkui/comps/PwanPgd.vue new file mode 100644 index 0000000..06eb16c --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/PwanPgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/pwanfkui/comps/baifang.js b/src/views/zyjhzx/pwanfkui/comps/baifang.js new file mode 100644 index 0000000..cd20411 --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/baifang.js @@ -0,0 +1,180 @@ +import Konva from "konva"; + +const baifang=function (option={}) { + const width=option.width,height=option.height,slList=option.dw,image=require('@/assets/gb.png') + const _width=width*0.25,_height=height*0.67 + const container=function (){ + const x=width*0.30+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const slGroup=container() + + const thatHeight=height + const gangban=function (index,str){ + const group=new Konva.Group({ + x:0, + y:thatHeight-310-index*40, + draggable:true + }) + + group.setAttr('index',index) + + slGroup.add(group) + const {x}=group.absolutePosition() + group.dragBoundFunc(function (pos){ + return { + x:x, + y:pos.y + } + }) + let _index=0 + + group.on('dragstart',function (){ + const {x,y}=this.absolutePosition() + this.startPos={ + x:x, + y:y + } + }) + group.on('dragmove',function (){ + if(_index===0){ + _index=this.getAttr('index') + } + this.zIndex(999) + const {y:thisY}=this.absolutePosition() + + const dir=thisY-this.startPos.y>0?-40:40 + + const children=slGroup.children + + for (const child of children) { + if (child===this){ + return + } + + const {y:thatY}=child.absolutePosition() + const moveDir=child.getAttr('moveDir')||0 + if (thisY>=thatY&&thisY<=thatY+40&&moveDir!==dir){ + child.setAttr('moveDir',dir); + _index+=dir>0?1:-1 + child.move({ + y:dir + }) + this.startPos={ + x:x, + y:thisY + } + } + + } + }) + + group.on('dragend',function (){ + const index=this.getAttr('index') + const element = slList.splice(index-1, 1)[0]; + slList.splice(_index-1, 0, element); + this.setAttr('index',_index) + _index=0 + slGroup.destroyChildren() + handler(slList) + }) + + const indexRect=new Konva.Rect({ + x:0, + y:0, + width:40, + height:40, + stroke:'black', + strokeWidth:1, + }) + //group.add(indexRect) + + const indexText=new Konva.Text({ + x:0, + y:0, + width:40, + height:40, + fill:'black', + text:index, + align:'center', + verticalAlign:'middle', + }) + group.add(indexText) + + //层 规格,套料图 船号,上料日期,计划切割日期 + const imageObj = new Image(); + const imgSize=200 + imageObj.src = image; + imageObj.onload = function () { + const shape = new Konva.Image({ + x: 40, + y: 0, + width: imgSize, + height:40, + image: imageObj, + }); + group.add(shape) + const gbText=new Konva.Text({ + x: 40, + y: 0, + width: imgSize, + height:40, + fill:'black', + text:str+',12*2830*13090', + align:'center', + verticalAlign:'middle', + }) + group.add(gbText) + } + + const concent=new Konva.Text({ + x: imgSize+60, + y: 0, + width: imgSize-20, + height:40, + fill:'black', + text:'G175K-4,001,2302\n上料:2024/07/01,切割:2024/07/04', + align:'center', + verticalAlign:'middle', + }) + group.add(concent) + + return group + } + + function handler(slList){ + for (let i = 1; i <= slList.length; i++) { + const item=slList[i-1] + const _group=gangban(i,item,item.length) + slGroup.add(_group) + } + } + + handler(slList) + + return { + container,slGroup,handler + } +} + +export default baifang diff --git a/src/views/zyjhzx/pwanfkui/comps/container.js b/src/views/zyjhzx/pwanfkui/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/pwanfkui/comps/csd.js b/src/views/zyjhzx/pwanfkui/comps/csd.js new file mode 100644 index 0000000..858185b --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/csd.js @@ -0,0 +1,38 @@ +import Konva from "konva"; + +//传送带 +export default function (width,height){ + const x=width*0.55+40,y=45,_width=width*0.1,_height=height*0.945 + const container=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + container.add(rect) + + const text=new Konva.Text({ + x: 0, + y: 0, + width: _width, + height:_height, + fill:'black', + text:'传送带', + align:'center', + verticalAlign:'middle', + }) + + container.add(text) + + return container +} diff --git a/src/views/zyjhzx/pwanfkui/comps/dw.js b/src/views/zyjhzx/pwanfkui/comps/dw.js new file mode 100644 index 0000000..4516c4d --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/dw.js @@ -0,0 +1,78 @@ +import Konva from "konva"; + +export default function (width,height,callback){ + console.log(callback) + const x=0,y=0,_width=width*0.16,_height=height*0.67 + + const container=function (){ + const x=width*0.134+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item=[]){ + + const alignSize=2 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + console.log(item) + callback(index,item.list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/pwanfkui/comps/person.js b/src/views/zyjhzx/pwanfkui/comps/person.js new file mode 100644 index 0000000..99851c2 --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const _width=width*0.134,_height=height*0.67 + + const container=function (){ + const x=20,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + const alignSize=2 + const width=(_width-20)/alignSize,height=110 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/pwanfkui/comps/pgd.js b/src/views/zyjhzx/pwanfkui/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/pwanfkui/comps/pgdTable.js b/src/views/zyjhzx/pwanfkui/comps/pgdTable.js new file mode 100644 index 0000000..4d162c0 --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/pgdTable.js @@ -0,0 +1,46 @@ + +export default function () { + const options={ + height:250, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'002',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'PW'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '抛丸位置', width: 80}, + {field: '', title: '垛位', width: 60}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/pwanfkui/comps/title.js b/src/views/zyjhzx/pwanfkui/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/pwanfkui/index.vue b/src/views/zyjhzx/pwanfkui/index.vue new file mode 100644 index 0000000..909ef29 --- /dev/null +++ b/src/views/zyjhzx/pwanfkui/index.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/zyjhzx/pwanpgong/comps/PwanPgd.vue b/src/views/zyjhzx/pwanpgong/comps/PwanPgd.vue new file mode 100644 index 0000000..06eb16c --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/PwanPgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/pwanpgong/comps/container.js b/src/views/zyjhzx/pwanpgong/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/pwanpgong/comps/dw.js b/src/views/zyjhzx/pwanpgong/comps/dw.js new file mode 100644 index 0000000..45c30f9 --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/dw.js @@ -0,0 +1,76 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.16,_height=height*0.945 + + const container=function (){ + const x=width*0.5+30,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item={}){ + + const alignSize=2 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + callback(index,dw[index].list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/pwanpgong/comps/person.js b/src/views/zyjhzx/pwanpgong/comps/person.js new file mode 100644 index 0000000..e661e58 --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.5,_height=120 + + const container=function (){ + const x=20,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + + const width=120,height=110 + const x=index*120+(index+1)*5,y=5 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/pwanpgong/comps/pgd.js b/src/views/zyjhzx/pwanpgong/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/pwanpgong/comps/pgdTable.js b/src/views/zyjhzx/pwanpgong/comps/pgdTable.js new file mode 100644 index 0000000..4bf00c5 --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/pgdTable.js @@ -0,0 +1,46 @@ + +export default function () { + const options={ + height:740, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'001',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'PW'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '抛丸位置', width: 80}, + {field: '', title: '垛位', width: 60}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/pwanpgong/comps/title.js b/src/views/zyjhzx/pwanpgong/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/pwanpgong/index.vue b/src/views/zyjhzx/pwanpgong/index.vue new file mode 100644 index 0000000..02efc7d --- /dev/null +++ b/src/views/zyjhzx/pwanpgong/index.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/zyjhzx/qgefkui/comps/QgePgd.vue b/src/views/zyjhzx/qgefkui/comps/QgePgd.vue new file mode 100644 index 0000000..f61cbff --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/QgePgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/qgefkui/comps/baifang.js b/src/views/zyjhzx/qgefkui/comps/baifang.js new file mode 100644 index 0000000..2271f19 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/baifang.js @@ -0,0 +1,180 @@ +import Konva from "konva"; + +const baifang=function (option={}) { + const width=option.width,height=option.height,slList=option.dw,image=require('@/assets/gb.png') + const _width=width*0.232,_height=height*0.67 + const container=function (){ + const x=width*0.22+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const slGroup=container() + + const thatHeight=height + const gangban=function (index,str){ + const group=new Konva.Group({ + x:0, + y:thatHeight-310-index*40, + draggable:true + }) + + group.setAttr('index',index) + + slGroup.add(group) + const {x}=group.absolutePosition() + group.dragBoundFunc(function (pos){ + return { + x:x, + y:pos.y + } + }) + let _index=0 + + group.on('dragstart',function (){ + const {x,y}=this.absolutePosition() + this.startPos={ + x:x, + y:y + } + }) + group.on('dragmove',function (){ + if(_index===0){ + _index=this.getAttr('index') + } + this.zIndex(999) + const {y:thisY}=this.absolutePosition() + + const dir=thisY-this.startPos.y>0?-40:40 + + const children=slGroup.children + + for (const child of children) { + if (child===this){ + return + } + + const {y:thatY}=child.absolutePosition() + const moveDir=child.getAttr('moveDir')||0 + if (thisY>=thatY&&thisY<=thatY+40&&moveDir!==dir){ + child.setAttr('moveDir',dir); + _index+=dir>0?1:-1 + child.move({ + y:dir + }) + this.startPos={ + x:x, + y:thisY + } + } + + } + }) + + group.on('dragend',function (){ + const index=this.getAttr('index') + const element = slList.splice(index-1, 1)[0]; + slList.splice(_index-1, 0, element); + this.setAttr('index',_index) + _index=0 + slGroup.destroyChildren() + handler(slList) + }) + + const indexRect=new Konva.Rect({ + x:0, + y:0, + width:40, + height:40, + stroke:'black', + strokeWidth:1, + }) + //group.add(indexRect) + + const indexText=new Konva.Text({ + x:0, + y:0, + width:40, + height:40, + fill:'black', + text:index, + align:'center', + verticalAlign:'middle', + }) + group.add(indexText) + + //层 规格,套料图 船号,上料日期,计划切割日期 + const imageObj = new Image(); + const imgSize=200 + imageObj.src = image; + imageObj.onload = function () { + const shape = new Konva.Image({ + x: 40, + y: 0, + width: imgSize, + height:40, + image: imageObj, + }); + group.add(shape) + const gbText=new Konva.Text({ + x: 40, + y: 0, + width: imgSize, + height:40, + fill:'black', + text:str+',12*2830*13090', + align:'center', + verticalAlign:'middle', + }) + group.add(gbText) + } + + const concent=new Konva.Text({ + x: imgSize+60, + y: 0, + width: imgSize-20, + height:40, + fill:'black', + text:'G175K-4,001,2302\n上料:2024/07/01,切割:2024/07/04', + align:'center', + verticalAlign:'middle', + }) + group.add(concent) + + return group + } + + function handler(slList){ + for (let i = 1; i <= slList.length; i++) { + const item=slList[i-1] + const _group=gangban(i,item,item.length) + slGroup.add(_group) + } + } + + handler(slList) + + return { + container,slGroup,handler + } +} + +export default baifang diff --git a/src/views/zyjhzx/qgefkui/comps/container.js b/src/views/zyjhzx/qgefkui/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/qgefkui/comps/dw.js b/src/views/zyjhzx/qgefkui/comps/dw.js new file mode 100644 index 0000000..5df14e4 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/dw.js @@ -0,0 +1,78 @@ +import Konva from "konva"; + +export default function (width,height,callback){ + console.log(callback) + const x=0,y=0,_width=width*0.08,_height=height*0.67 + + const container=function (){ + const x=width*0.134+30,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item=[]){ + + const alignSize=1 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + console.log(item) + callback(index,item.list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/qgefkui/comps/person.js b/src/views/zyjhzx/qgefkui/comps/person.js new file mode 100644 index 0000000..99851c2 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const _width=width*0.134,_height=height*0.67 + + const container=function (){ + const x=20,y=300 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + const alignSize=2 + const width=(_width-20)/alignSize,height=110 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/qgefkui/comps/pgd.js b/src/views/zyjhzx/qgefkui/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/qgefkui/comps/pgdTable.js b/src/views/zyjhzx/qgefkui/comps/pgdTable.js new file mode 100644 index 0000000..11694f0 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/pgdTable.js @@ -0,0 +1,45 @@ + +export default function () { + const options={ + height:250, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'002',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'QG'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '理料垛位', width: 80}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/qgefkui/comps/sb.js b/src/views/zyjhzx/qgefkui/comps/sb.js new file mode 100644 index 0000000..11ffda6 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/sb.js @@ -0,0 +1,38 @@ +import Konva from "konva"; + +//传送带 +export default function (width,height){ + const x=width*0.45+37,y=300,_width=width*0.2,_height=height*0.67 + const container=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + container.add(rect) + + const text=new Konva.Text({ + x: 0, + y: 0, + width: _width, + height:_height, + fill:'black', + text:'传送带', + align:'center', + verticalAlign:'middle', + }) + + container.add(text) + + return container +} diff --git a/src/views/zyjhzx/qgefkui/comps/title.js b/src/views/zyjhzx/qgefkui/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/qgefkui/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/qgefkui/index.vue b/src/views/zyjhzx/qgefkui/index.vue new file mode 100644 index 0000000..2abb9a3 --- /dev/null +++ b/src/views/zyjhzx/qgefkui/index.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/views/zyjhzx/qgepgong/comps/QgePgd.vue b/src/views/zyjhzx/qgepgong/comps/QgePgd.vue new file mode 100644 index 0000000..f61cbff --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/QgePgd.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/zyjhzx/qgepgong/comps/container.js b/src/views/zyjhzx/qgepgong/comps/container.js new file mode 100644 index 0000000..6df3bde --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/container.js @@ -0,0 +1,19 @@ +import Konva from "konva"; + +const container=function (width=0,height=0,container){ + const stage = new Konva.Stage({ + container: container, + width: width, + height: height, + }); + + const layer = new Konva.Layer(); + stage.add(layer) + layer.draw(); + + return { + stage,layer + } +} + +export default container diff --git a/src/views/zyjhzx/qgepgong/comps/dw.js b/src/views/zyjhzx/qgepgong/comps/dw.js new file mode 100644 index 0000000..45c30f9 --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/dw.js @@ -0,0 +1,76 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.16,_height=height*0.945 + + const container=function (){ + const x=width*0.5+30,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const dw=function (index,item={}){ + + const alignSize=2 + const width=((_width-20)/alignSize),height=150 + const x=index%alignSize*width+index%alignSize*10+5,y=height*(Math.floor(index/alignSize))+(Math.floor(index/alignSize)+1)*10 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + group.on('click touchstart',function (){ + callback(index,dw[index].list) + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width: width, + height: height, + fill:'black', + text:item.name, + align:'center', + verticalAlign:'middle', + fontSize:20 + }) + group.add(text) + + return group + } + + return { + container,dw + } + +} diff --git a/src/views/zyjhzx/qgepgong/comps/person.js b/src/views/zyjhzx/qgepgong/comps/person.js new file mode 100644 index 0000000..e661e58 --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/person.js @@ -0,0 +1,69 @@ +import Konva from "konva"; + +export default function (width,height){ + const x=0,y=0,_width=width*0.5,_height=120 + + const container=function (){ + const x=20,y=45 + + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + + return group + } + + const person=function (index,persons={}){ + + const width=120,height=110 + const x=index*120+(index+1)*5,y=5 + const group=new Konva.Group({ + x:x, + y:y, + width:width, + height:height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:width, + height:height, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:width, + height:height, + text: persons.name, + align: 'center', + verticalAlign:'middle', + fontSize:12 + }) + group.add(text) + + return group + } + + return{ + container,person + } +} diff --git a/src/views/zyjhzx/qgepgong/comps/pgd.js b/src/views/zyjhzx/qgepgong/comps/pgd.js new file mode 100644 index 0000000..efd3864 --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/pgd.js @@ -0,0 +1,513 @@ +import Konva from "konva"; +import QRCode from 'qrcode' + +export default function (width,height){ + const x=width*0.66+40,y=45,_width=width*0.30,_height=height*0.945 + + const container=function (){ + const group=new Konva.Group({ + x:x, + y:y, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + stroke:'black', + strokeWidth:1, + }) + + group.add(rect) + return group + } + + const drawGd=function (data){ + // this.layer.destroyChildren(); + + const group=new Konva.Group({ + x:0, + y:0, + width:_width, + height:_height + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:_width, + height:_height, + fill:'white' + }) + group.add(rect) + + const title=new Konva.Text({ + x:0, + y:10, + width:_width, + height:35, + lineHeight:1, + stroke:'black', + strokeWidth:1.2, + text:'大连重工大连钢材加工配送有限公司', + align:'center', + fontSize:22, + }) + group.add(title) + + const sgdTitle=new Konva.Text({ + x:0, + y:40, + width:_width, + height:25, + lineHeight:1, + stroke:'black', + strokeWidth:1, + text:'抛丸施工单', + align:'center', + fontSize:20, + }) + group.add(sgdTitle) + + const dhTitle=new Konva.Text({ + x:0, + y:50, + width:_width-48, + height:15, + lineHeight:1, + text:'单号:PW_'+data.gdh, + align:'right', + fontSize:12, + }) + group.add(dhTitle) + + const group0=new Konva.Group({ + x:15, + y:65, + width:_width-60, + height:_width-100, + }) + group.add(group0) + + const group1=drawCzbh(data) + group0.add(group1) + const group2=drawPlAndFd(data) + group0.add(group2) + const group3=drawTzbh(data) + group0.add(group3) + const group4=drawTlt(data) + group0.add(group4) + const group5=drawJs(data) + group0.add(group5) + const group6=drawHb(data) + group0.add(group6) + const group7=drawBz(data) + group0.add(group7) + const group8=drawQz(data) + group0.add(group8) + console.log(data) + generateQRCode(data.gdh,group0) + return group + } + + const drawQz=function (data){ + const group=new Konva.Group({ + x:0, + y:620, + width:(_width-60), + height:30, + }) + + const jsText=new Konva.Text({ + x:5, + y:1, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'负责人:', + fontSize:18, + verticalAlign:'middle' + }) + group.add(jsText) + return group + } + const drawBz=function (data){ + const group=new Konva.Group({ + x:0, + y:440, + width:(_width-60), + height:180, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:180, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawHb=function (data){ + const group=new Konva.Group({ + x:0, + y:410, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'回报', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawJs=function (data){ + const group=new Konva.Group({ + x:0, + y:350, + width:(_width-60), + height:30, + }) + + const jsRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(jsRect) + + const jsText=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'接收', + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(jsText) + + const plRect=new Konva.Rect({ + x:0, + y:30, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jsr, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + + const fdRect=new Konva.Rect({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-60)/2, + y:30, + width:(_width-60)/2, + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.jssj, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + group.add(plText) + + return group + } + const drawTlt=function (data){ + const group=new Konva.Group({ + x:0, + y:150, + width:(_width-60), + height:200, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:200, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + return group + } + const drawTzbh=function (data){ + const group=new Konva.Group({ + x:0, + y:120, + width:(_width-60), + height:30, + }) + + const rect=new Konva.Rect({ + x:0, + y:0, + width:(_width-60), + height:30, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + + const text=new Konva.Text({ + x:0, + y:0, + width:(_width-60), + height:30, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:data.tzbh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(text) + return group + } + const drawPlAndFd=function (data){ + const group=new Konva.Group({ + x:0, + y:60, + width:(_width-188), + height:60, + }) + + const plRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(plRect) + + const plText=new Konva.Text({ + x:0, + y:0, + width:(_width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'批量:'+data.dcPl, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(plText) + + const fdRect=new Konva.Rect({ + x:(_width-188)/2, + y:0, + width:(_width-188)/2, + height:60, + stroke:'black', + strokeWidth:1, + }) + group.add(fdRect) + + const fdText=new Konva.Text({ + x:(_width-188)/2, + y:0, + width:(-width-188)/2, + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'分段:'+data.dcFd, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + group.add(fdText) + + + return group + } + const drawCzbh=function (data){ + const czbhGroup=new Konva.Group({ + x:0, + y:0, + width:(_width-188), + height:60, + }) + + const czbhRect=new Konva.Rect({ + x:0, + y:0, + width:(_width-188), + height:60, + stroke:'black', + strokeWidth:1, + }) + czbhGroup.add(czbhRect) + + const czbhText=new Konva.Text({ + x:0, + y:0, + width:(_width-188), + height:60, + lineHeight:1, + stroke:'black', + strokeWidth:0.8, + text:'船号:'+data.dcCh, + fontSize:18, + align:'center', + verticalAlign:'middle' + }) + czbhGroup.add(czbhText) + return czbhGroup + } + const generateQRCode=function (text,group) { + const imgSize=118 + const rect=new Konva.Rect({ + x:385, + y:0, + width:128.7, + height:120, + stroke:'black', + strokeWidth:1, + }) + group.add(rect) + QRCode.toDataURL(text,{width:600,height:600,margin:1}) + .then(url => { + const imageObj = new Image(); + imageObj.src = url; + imageObj.onload = function () { + + const shape = new Konva.Image({ + x: 390, + y: 1, + width: imgSize, + height: imgSize, + image: imageObj, + }); + group.add(shape) + } + + }).catch(err => { + console.error(err); + }); + } + + return { + container,drawGd + } +} diff --git a/src/views/zyjhzx/qgepgong/comps/pgdTable.js b/src/views/zyjhzx/qgepgong/comps/pgdTable.js new file mode 100644 index 0000000..7c8a289 --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/pgdTable.js @@ -0,0 +1,45 @@ + +export default function () { + const options={ + height:740, + align:'center', + border: true, + resizable: true, + keepSource:true, + size:'mini', + showOverflow: true, + scrollY:{enable:true}, + data:[ + {dcCh:'G175K-6',gdh:'20240812101',dcPl:'001',dcFd:'2302','tzbh':'1231232'} + ] + } + const gdhFormat=function ({cellValue}){ + if (cellValue){ + return 'QG'+cellValue + } + return '' + } + const columns = [ + { type: 'checkbox', width: 40 }, + { type: 'seq',title:'序号', width: 60 }, + { field: 'gdh',title:'派工单号', width: 120,formatter: gdhFormat}, + {field: '', title: '理料垛位', width: 80}, + {field: '', title: '层数', width: 60}, + {field: 'dcCh', title: '船号', width: 80}, + {field: 'dcPl', title: '批量', width: 80}, + {field: '', title: '材质', width: 80}, + {field: '', title: '规格', width: 100}, + {field: '', title: '炉批号', width: 100}, + {field: 'tzbh', title: '套料图号', width: 100}, + {field: '', title: '接收人', width: 80}, + {field: '', title: '接收时间', width: 100}, + {field: '', title: '反馈人', width: 80}, + {field: '', title: '反馈时间', width: 100}, + {field: '', title: '状态', width: 60}, + ] + + return { + options, + columns, + } +} diff --git a/src/views/zyjhzx/qgepgong/comps/title.js b/src/views/zyjhzx/qgepgong/comps/title.js new file mode 100644 index 0000000..711a4ae --- /dev/null +++ b/src/views/zyjhzx/qgepgong/comps/title.js @@ -0,0 +1,18 @@ +import Konva from "konva"; + +const title=function (width,height,title) { + return new Konva.Text({ + x: 0, + y: 8, + width: width, + height: 20, + lineHeight: 1, + stroke: 'blue', + strokeWidth: 2, + text: title, + align: 'center', + fontSize: 32, + }) +} + +export default title diff --git a/src/views/zyjhzx/qgepgong/index.vue b/src/views/zyjhzx/qgepgong/index.vue new file mode 100644 index 0000000..bff9626 --- /dev/null +++ b/src/views/zyjhzx/qgepgong/index.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/sliao/_index.vue b/src/views/zyjhzx/sliao/_index.vue similarity index 100% rename from src/views/sliao/_index.vue rename to src/views/zyjhzx/sliao/_index.vue diff --git a/src/views/sliao/comps/SelectDemo.vue b/src/views/zyjhzx/sliao/comps/SelectDemo.vue similarity index 95% rename from src/views/sliao/comps/SelectDemo.vue rename to src/views/zyjhzx/sliao/comps/SelectDemo.vue index 9984cba..2af7acd 100644 --- a/src/views/sliao/comps/SelectDemo.vue +++ b/src/views/zyjhzx/sliao/comps/SelectDemo.vue @@ -7,7 +7,7 @@