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 @@