1.调整优化

2.增加作业计划反馈定位功能
master
董哲奇 9 months ago
parent 94abb9c395
commit a473fafbb2

@ -18,3 +18,4 @@ export function ydjhxf(data) {return request({url: '/dmYdjh/xf', method: 'post',
//采购计划到货情况
export function cgjhdhqk(data={}) {return request({url: '/dmSygdMx/cgjhdhqk', method: 'post',data})}
export function saveData(data={}) {return request({url: '/dmYdjh/save', method: 'post',data})}

@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title'
NProgress.configure({ showSpinner: false }) // NProgress Configuration
const whiteList = ['/menu','/login', '/auth-redirect','/kban','/sliao','/pwpg','/pwfk','/llpg','/llfk','/hxpg','/hxfk','/qgpg','/qgfk'] // no redirect whitelist
const whiteList = ['/menu','/login', '/auth-redirect','/kban','/sliao','/pwpg','/pwfk','/llpg','/llfk','/hxpg','/hxfk','/qgpg','/qgfk','/ljian'] // no redirect whitelist
export function flatRoutes(routes) {
let ret = [];
routes.forEach(it => {

@ -113,7 +113,12 @@ export const constantRoutes = [
component: () => import('@/views/zyjhzx/qgefkui/index'),
hidden: true
},
//零件
{
path: '/ljian',
component: () => import('@/views/zyjhzx/ljian/index'),
hidden: true
},
{
path: '/login',
component: () => import('@/views/login/index'),

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -56,160 +56,18 @@
{{row.dcCh}}
</div>
</template>
<template #gg="{ row }">
<div>
<el-tooltip v-if="!!handlerTooTipContent(row)" class="item" effect="dark" :content="handlerTooTipContent(row)" placement="top-start">
<i class="el-icon-warning icon-style"/>
</el-tooltip>
{{row.dcCh}}
</div>
</template>
</vxe-grid>
</div>
<!--
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="月度计划" name="first">
<div class="mytable">
<el-button type="success" @click="symxhz"></el-button>
<vxe-grid
id="id"
ref="xGrid"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn"
:data="list"
:custom-config="{ storage: true }"
:edit-config="{
trigger: 'click',
mode: 'row',
showStatus: true,
}"
@checkbox-all="selectAllEvent"
@checkbox-change="selectChangeEvent"
highlight-current-row
highlight-hover-row
show-overflow
>
</vxe-grid>
</div>
</el-tab-pane>
<el-tab-pane label="图纸信息" name="second">
<div class="mytable">
<vxe-grid
id="id2"
ref="xGrid2"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn2"
:data="list2"
:custom-config="{ storage: true }"
highlight-current-row
highlight-hover-row
show-overflow
>
</vxe-grid>
</div>
</el-tab-pane>
<el-tab-pane label="到货信息" name="third">
<div class="mytable">
<vxe-grid
id="id3"
ref="xGrid3"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn3"
highlight-current-row
:data="list3"
:custom-config="{ storage: true }"
:cell-style="cellStyle"
highlight-current-row
highlight-hover-row
show-overflow
>
</vxe-grid>
</div>
</el-tab-pane>
<el-tab-pane label="上料信息" name="fourth">
<div class="mytable">
<vxe-grid
id="id4"
ref="xGrid4"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn4"
highlight-current-row
:data="list4"
:custom-config="{ storage: true }"
:span-method="rowspanMethod"
:cell-style="cellStyle"
highlight-hover-row
show-overflow
show-header-overflow
>
</vxe-grid>
</div>
</el-tab-pane>
<el-tab-pane label="抛丸信息" name="fifth">
<div class="mytable">
<vxe-grid
id="id5"
ref="xGrid5"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn5"
highlight-current-row
:data="list5"
:custom-config="{ storage: true }"
:cell-style="cellStyle"
highlight-hover-row
show-overflow
show-header-overflow
>
</vxe-grid>
</div>
</el-tab-pane>
<el-tab-pane label="切割信息" name="sixth">
<div class="mytable">
<vxe-grid
id="id6"
ref="xGrid6"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn7"
highlight-current-row
:data="list6"
:custom-config="{ storage: true }"
:cell-style="cellStyle"
highlight-hover-row
show-overflow
show-header-overflow
>
</vxe-grid>
</div>
</el-tab-pane>
</el-tabs> -->
</el-main>
</el-container>
</el-container>
</template>
@ -254,11 +112,11 @@ export default {
{ field: 'dcCh', title: '船号',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
slots:{default:'ng'}
// slots:{default:'ng'}
},
{ field: 'dcCh1', title: '目标船号',width: 90,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},//
// { field: 'dcCh1', title: '',width: 90,
// filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
// filterRender: { name: 'FilterCombination', }},//
{ field: 'dcPl', title: '批量',width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
@ -277,6 +135,10 @@ export default {
{ field: 'jssj', title: '前方需求时间',width: 110,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'czplpNew.xfqTlt', title: '套料图下发日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'slrq', title: '上料计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
@ -389,579 +251,6 @@ export default {
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'czplpNew.xfqTlt', title: '套料图下发日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
],
tableColumn2: [
{ type: 'seq', width: 60, title: '序号',fixed: "left"},
{ field: 'tzzt', title: '图纸状态', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'czbh', title: '船号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pl', title: '批量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'fd', title: '分段', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'lqbxfrq', title: '领取表下发日期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'lqbjsrq', title: '领取表接收日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'tltxfrq', title: '套料图下发日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'tltjsrq', title: '套料图接收日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qgxqrq', title: '切割需求日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqxz', title: '前方需求小组期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqdz', title: '前方需求大组期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
],
tableColumn3:[
{ type: 'seq', width: 60, title: '序号',fixed: "left"},
{ field: 'czbh', title: '船号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'dhqdh', title: '订货清单号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpcz', title: '物品材质', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'hd', title: '厚度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'kd', title: '宽度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'cd', title: '长度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'xqsl', title: '数量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'slxqrq', title: '上料需求日期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqxz', title: '前方需求小组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqdz', title: '前方需求大组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'hth', title: '合同号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'xhth', title: '小合同号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'dhsl', title: '到货数量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
],
tableColumn4:[
{ type: 'seq', width: 60, title: '序号',fixed: "left"},
{ field: 'czbh', title: '船号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pl', title: '批量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'fd', title: '分段', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'zl', title: '组立', width: 100,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'lqlb', title: '领取类别', width: 100,formatter: ['dictFormat','CLlQ'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'kw', title: '跨位', width: 100,formatter: ['dictFormat','QGKW'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'tlth', title: '套料图号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpgg', title: '规格', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpcz', title: '材质', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpzl', title: '重量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'hth', title: '合同号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'xhth', title: '小合同号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'lph', title: '炉批号/物料号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'kwh', title: '库存垛位', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'cs', title: '层数', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'jpbs', title: '校平标识', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'slfzry', title: '上料负责人', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'slwz', title: '上料位置', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'sljhrq', title: '上料计划期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqxz', title: '前方需求小组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqdz', title: '前方需求大组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
],
tableColumn5:[
{ type: 'seq', width: 60, title: '序号',fixed: "left"},
{ field: 'czbh', title: '船号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pl', title: '批量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'fd', title: '分段', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'zl', title: '组立', width: 100,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'lqlb', title: '领取类别', width: 100,formatter: ['dictFormat','CLlQ'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'kw', title: '跨位', width: 100,formatter: ['dictFormat','QGKW'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'tlth', title: '套料图号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpgg', title: '规格', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpcz', title: '材质', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpzl', title: '重量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pwwz', title: '抛丸位置', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pwjhrq', title: '抛丸计划日期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqxz', title: '前方需求小组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqdz', title: '前方需求大组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'sljhwgrq', title: '上料计划完工期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pwfzr', title: '抛丸负责人', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'jpbs', title: '校平标识', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
],
tableColumn6:[
{ type: 'seq', width: 60, title: '序号',fixed: "left"},
{ field: 'dcCh', title: '船号',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'dcPl', title: '批量',width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'zl', title: '组立',width: 80,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'tzbh', title: '套料图号',width: 90,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'wpgg', title: '规格',width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'jssj', title: '组立结束时间',width: 110,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'jzbs', title: '矫正标识',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'jzsb', title: '矫正设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' },editRender: { name: "$select",options: [],props: { clearable: true} }},
{ field: 'slrq', title: '上料计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
// { field: 'pw', title: '',width: 100,
// filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
// filterRender: { name: 'FilterCombination', }},
{ field: 'pwsb', title: '抛丸设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' },editRender: { name: "$select",options: [],props: { clearable: true} } },
{ field: 'pwrq', title: '抛丸计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'hxcd', title: '划线长度(米)',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'hxcdKc', title: '划线空程长度(米)',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'hxsb', title: '划线设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },editRender: { name: "$select",options: [],props: { clearable: true} }},
{ field: 'hxrq', title: '划线计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'qgcd', title: '切割长度(米)',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'qgcdKc', title: '切割空程长度(米)',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'qgsb', title: '切割设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },editRender: { name: "$select",options: [],props: { clearable: true} }},
{ field: 'qgrq', title: '切割计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'pklx', title: '坡口类型',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'pkcd', title: '坡口长度',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'pksb', title: '坡口设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },editRender: { name: "$select",options: [],props: { clearable: true} }},
{ field: 'pkrq', title: '坡口计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'qbs', title: '曲标识',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'qjgsb', title: '曲加工设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },editRender: { name: "$select",options: [],props: { clearable: true} }},
{ field: 'qjgrq', title: '曲加工计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'dmcd', title: '打磨长度',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'dmsb', title: '打磨设备',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },editRender: { name: "$select",options: [],props: { clearable: true} }},
{ field: 'dmrq', title: '打磨计划日期',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'gjjsDz', title: '钢加大组结束',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'gjjsXz', title: '钢加小组结束',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'ljsl', title: '零件数量',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'gjks', title: '钢加开始',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'dcFd', title: '分段号',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'dcCh2', title: '本船号',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},//
{ field: 'dcCh1', title: '目标船号',width: 90,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},//
{ field: 'lqlb', title: '领取类型',width: 90,formatter: ['dictFormat','CLlQ'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'lx', title: '物资类型',width: 90,formatter:this.formatterLx,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'kw', title: '跨位',width: 80,formatter: ['dictFormat','QGKW'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'zt', title: '状态',width: 70,formatter: ['dictFormat','SYZT'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'bcshzl', title: '重量',width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'wpxh', title: '材质',width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],},
{ field: 'xcms', title: '型材米数',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
{ field: 'gxsj', title: '数据更新时间',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }},
],
tableColumn7:[
{ type: 'seq', width: 60, title: '序号',fixed: "left"},
{ field: 'czbh', title: '船号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pl', title: '批量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'fd', title: '分段', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'zl', title: '组立', width: 100,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'lqlb', title: '领取类别', width: 100,formatter: ['dictFormat','CLlQ'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'kw', title: '跨位', width: 100,formatter: ['dictFormat','QGKW'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'tlth', title: '套料图号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpgg', title: '规格', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpcz', title: '材质', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'wpzl', title: '重量', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qgjhrq', title: '切割计划期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqxz', title: '前方需求小组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qfxqrqdz', title: '前方需求大组期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'pwjhwgrq', title: '抛丸计划完工期', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qgfzry', title: '切割负责人', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'hxsbbh', title: '划线设备编号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'hxcd', title: '划线长度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'hxkccd', title: '划线空程长度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qgsbbh', title: '切割设备编号', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qgcd', title: '切割长度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: 'qgkccd', title: '切割空程长度', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
],
}
},

@ -21,7 +21,7 @@
</vxe-grid>
</div>
</el-tab-pane>
<el-tab-pane label="零件明细" name="second">
<el-tab-pane label="前方需求明细" name="second">
<div class="mytable">
<vxe-grid
id="id"

@ -1,6 +1,6 @@
<template>
<div class="component">
<el-radio-group v-model="data.zyType" style="width: 25%">
<el-radio-group v-model="data.zyType" v-if="zyRadioShow" @change="changePage" style="width: 20%">
<el-radio label="0">派工</el-radio>
<el-radio label="1">报工</el-radio>
</el-radio-group>
@ -16,13 +16,43 @@ export default {
name:"ZyjhSelectComp",
data(){
return {
zyRadioShow:true,
data:{
zyType:'0',
bzType:'01'
}
bzType:'01',
},
nextPath:'',
nextPathName: {
sliao:{path:''},
pwpg:{path:'/pwfk'},
pwfk:{path:'/pwpg'},
llfk:{path:''},
hxpg:{path:'/hxfk'},
hxfk:{path:'/hxpg'},
qgpg:{path:'/qgfk'},
qgfk:{path:'/qgpg'},
},
}
},
created(){
this.data.zyType=this.$route.query.zyType||'0'
const path=this.$route.path.replace('/','')
this.nextPath=this.nextPathName[path].path
if (path==='llfk'){
this.zyRadioShow=false
}
},
methods:{
changePage(){
this.$emit('clear')
this.$router.push(`${this.nextPath}?zyq=${this.$route.query.zyq}&zyType=${this.data.zyType}`)
// if (this.data.zyType==='0'){
// this.$router.push(`/${this.nextPath}?zyq=${this.$route.query.zyq}&zyType=${this.data.zyType}`)
// }
// if (this.data.zyType==='1'){
// this.$router.push(`/qgfk?zyq=${this.$route.query.zyq}&zyType=${this.data.zyType}`)
// }
},
init(){
this.$emit('initWorkers',this.data.bzType)
},

@ -41,6 +41,7 @@ export default {
window.localStorage.setItem("hxfk",JSON.stringify(data))
},
cellClick({row}){
this.$emit('pgdClick',row)
this.$emit('initPgd',row)
}
}

@ -61,17 +61,7 @@ export default function (width,height,callback){
height:height
})
group.on('click touchstart',function (){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
selected()
})
const bgObj = new Image();
@ -89,9 +79,26 @@ export default function (width,height,callback){
shape.zIndex(0)
}
let selectShape=null
function selected(){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
}
group.selected=selected
const selectObj = new Image();
selectObj.src = require('@/assets/sliao/selected.png');
let selectShape=null
const setSelectShape=function (shape){
selectShape=shape
}

@ -79,7 +79,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'划线计划单',
align:'center',
fontSize:20,
})
@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'HX'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -48,7 +48,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 50 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120,},
{field: 'lldw', title: '垛位', width: 80,formatter: dwFormat},
{field: 'llcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},

@ -1,7 +1,8 @@
<template>
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<HxianPgd id="hxpgd" ref="hxpgd" @initPgd="initPgd" :pgd="pgd" :workers="workers" />
<HxianPgd id="hxpgd" ref="hxpgd" @initPgd="initPgd" :pgd="pgd" :workers="workers" @pgdClick="pgdClick"/>
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers"/>
</div>
</template>
@ -16,10 +17,11 @@ import baifang from "./comps/baifang";
import {getPgd, getYcldw} from "@/api/zyjh";
import {getBzryList} from "@/api/sjzx/bzzGL";
import HxianPgd from "@/views/zyjhzx/hxianfkui/comps/HxianPgd.vue";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name:'PWanFKui',
components: {HxianPgd},
components: {ZyjhSelectComp, HxianPgd},
data(){
return {
title:'划 线 作 业 报 工',
@ -38,7 +40,9 @@ export default {
currentWorker:null,
setWorkers:null,
workers:null,
dwGroup:null
dwGroup:null,
workerGroup:null,
person:null,
}
},
mounted() {
@ -85,6 +89,39 @@ export default {
const group=this.drawGd(pgd)
this.pgdGroup.add(group)
},
pgdClick(option){
let index=-1
let dw=null
for (const item of this.dw) {
index+=1
if ((item.id+'')===option.lldw){
dw=item
}
}
this.dwGroup.children[index].selected()
this.initDwInfo(index,dw)
const that=this
this.slGroup.children.forEach(item=>{
const data=item.getAttr('item')
if (data.czbh===option.dcCh&&data.pl===option.dcPl&&data.fd===option.dcFd&&data.tlth===option.tzbh){
const imageObj = new Image();
imageObj.src = require('@/assets/pwan/gbSelectBg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 10,
y: 0,
offsetY:5,
width: that.width*0.32-20,
height:50,
image: this,
});
item.add(shape)
shape.zIndex(0)
}
}
})
},
initDwInfo(index,dw){
if (this.slGroup){
this.slGroup.destroyChildren()
@ -119,24 +156,30 @@ export default {
}
})
},
initWorkers(){
getBzryList({resourcesCode:'4KB002'}).then(res=>{
initWorkers(bzType){
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person,getCurrentWorker}=workers(this.width,this.height)
this.person=person
this.getCurrentWorker=getCurrentWorker
const {bgGroup,group}=container()
this.workerGroup=group
this.layer.add(bgGroup)
this.workers=res.data
}
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
this.setWorkers(res.data)
const that=this
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=person(i,item)
const worker=this.person(i,item)
worker.on('click touchstart',function (){
that.currentWorker=item
that.$refs.hxpgd.initData(that.currentWorker.userCode,'51')
})
group.add(worker)
this.workerGroup.add(worker)
}
})
},
@ -150,7 +193,7 @@ export default {
const titel=drawTitle(this.width,this.height,this.title)
this.layer.add(titel)
this.initWorkers()
this.initWorkers(this.$refs.selRef.getData().bzType)
this.initDw()
@ -171,6 +214,15 @@ export default {
</script>
<style>
#selectComp {
width:50%;
height: auto;
position: absolute;
top:10px;
left:20px;
border: none;
margin: 0;
}
#hxpgd {
width:67%;
height: auto;

@ -33,17 +33,21 @@ export default {
this.gridOptions=options
this.gridOptions.columns=columns
this.initData()
getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data
})
},
methods:{
initData() {
getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data
})
getPgd({zt: '42'}).then(res => {
this.gridOptions.data = res.data
this.setExt('workers',this.$props.workers)
})
},
setWorkers(workers){
this.setExt('workers',workers)
this.initData()
},
checkboxAll({checked}) {
const worker = this.$props.worker
if (!worker) {

@ -79,7 +79,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'划线计划单',
align:'center',
fontSize:20,
})
@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'HX'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -45,7 +45,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 50 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120,},
{field: 'lldw', title: '垛位', width: 80,formatter: dwFormat},
{field: 'llcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},

@ -96,9 +96,9 @@ export default {
}
this.workerGroup.x(0)
this.workerGroup.y(0)
console.log(this.$route.query)
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
this.$refs.pwpgd.setWorkers(this.workers)
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=this.person(i,item)

@ -0,0 +1,48 @@
<template>
<VxeGrid ref="hxPgd" v-bind="gridOptions" @cell-click="cellClick" @current-change="getCurrentData" />
</template>
<script>
import paoWanPgdConfig from './pgdTable'
import {getDw, getPgd} from "@/api/zyjh";
export default {
name:'HxianPgd',
props:{
workers:{
type:Array,
default:[]
},
},
data(){
return{
gridOptions:{},
list:{},
setExt:null,
}
},
created(){
const {options,columns,setExt}=paoWanPgdConfig()
this.setExt=setExt
this.gridOptions=options
this.gridOptions.columns=columns
},
methods:{
initData(worker,zt){
getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data
})
getPgd({user:worker,zt:zt,field:'hxry'}).then(res=>{
this.gridOptions.data=res.data
this.setExt('workers',this.$props.workers)
})
},
getCurrentData(){
const data= this.$refs.hxPgd.getCurrentRecord()
window.localStorage.setItem("hxfk",JSON.stringify(data))
},
cellClick({row}){
this.$emit('initPgd',row)
}
}
}
</script>

@ -0,0 +1,276 @@
import Konva from "konva";
import {zx} from "@/api/zyjh";
import { VXETable } from 'vxe-table'
const baifang=function (option={}) {
const width=option.width,height=option.height,slList=option.dw,image=require('@/assets/gb.png')
const _width=width*0.32,_height=height*0.713
const x=width*0.16+25,y=260
const bg=function (){
const group=new Konva.Group({
x:x,
y:y,
width:_width,
height:_height
})
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/personbg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: _width,
height:_height,
image: this,
});
bgGroup.add(shape)
shape.zIndex(0)
}
return group
}
const container=function (){
return new Konva.Group({
x:0,
y:0,
width:_width,
height:_height
})
}
const bgGroup=bg();
const slGroup=container()
bgGroup.add(slGroup)
slGroup.zIndex(1)
let currSlist=null
const thatHeight=height
const gangban=function (index,item){
const group=new Konva.Group({
x:0,
y:thatHeight-310-index*40,
// draggable:true
})
group.setAttr('index',index)
group.setAttr('item',item)
slGroup.add(group)
const {x}=group.absolutePosition()
group.dragBoundFunc(function (pos){
return {
x:x,
y:pos.y
}
})
let _index=0
let touchingFlag=false;
group.on('mousedown touchstart',function (evt){
const layer=this.parent.parent.parent
touchingFlag=true
const {x,y}=evt.evt
setTimeout(()=>{
const moving=this.isDragging()
if (!moving){
if (touchingFlag){
this.draggable(false)
const tmpGroup=this.clone()
tmpGroup.x(x-50)
tmpGroup.y(y-10)
layer.add(tmpGroup)
tmpGroup.draggable(true)
tmpGroup.dragBoundFunc(function (pos){
return{...pos}
})
tmpGroup.startDrag()
const that=this
tmpGroup.on('dragend',function (){
const {x:thisX,y:thisY}=this.absolutePosition()
for (const item of layer.children) {
if(item.attrs.id==='sb'){
const {x,y}=item.absolutePosition()
const worker=JSON.parse(window.localStorage.getItem('worker'))
if ((thisX>=x&&thisY>=y&&thisX<=(x+item.attrs.width)&&thisY<=(y+item.attrs.height))&&!!worker){
const info=this.getAttr('item')
const zyjh=JSON.parse(window.localStorage.getItem('hxfk'))
console.log(zyjh)
if (!zyjh){
VXETable.modal.message({content: '请先选择待报工的派工单', status: 'warning'})
this.remove()
that.visible(true)
return
}
if (zyjh.dcCh!==info.czbh&&zyjh.dcPl!==info.pl&&zyjh.dcFd!==info.fd&&zyjh.tzbh!==info.tlth){
VXETable.modal.message({content: '板材与工单未对应', status: 'warning'})
this.remove()
that.visible(true)
return
}
zx({
field:'hxfkrq',
zxZtName:'HXFK',
list:[{
id:zyjh.id,
hxfkry: worker.userCode
}],
ycldwInfo:info
}).then(res=>{
if (res.success){
window.localStorage.removeItem('hxfk')
this.remove()
that.remove()
}else{
this.remove()
that.visible(true)
}
})
}else{
this.remove()
that.visible(true)
}
}
}
})
this.visible(false)
}
}
},500)
})
group.on('mouseup touchend',function (){
touchingFlag=false
})
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(7)
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 = currSlist.splice(index-1, 1)[0];
currSlist.splice(_index-1, 0, element);
this.setAttr('index',_index)
_index=0
slGroup.destroyChildren()
handler(currSlist)
})
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:`${item.wph||''},${item.wpgg}`,
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:`${item.czbh},${item.pl},${item.fd}\n上料:${item.bfrq||''},切割:${item.qgjhrq||''}`,
align:'center',
verticalAlign:'middle',
})
group.add(concent)
return group
}
function handler(slList){
currSlist=slList;
for (let i = 1; i <= slList.length; i++) {
const item=slList[i-1]
const _group=gangban(i,item,item.length)
slGroup.add(_group)
}
}
return {
container,slGroup,handler,bgGroup
}
}
export default baifang

@ -0,0 +1,34 @@
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();
const imageObj = new Image();
const imgSize=width
imageObj.src = require('@/assets/kban/bg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: imgSize,
height:this.height,
image: imageObj,
});
layer.add(shape)
shape.zIndex(0)
}
return {
stage,layer
}
}
export default container

@ -0,0 +1,156 @@
import Konva from "konva";
export default function (width,height,callback){
const _width=width*0.08,_height=height*0.73
const container=function (){
const x=width*0.08+20,y=260
const group=new Konva.Group({
x:0,
y:0,
width:_width,
height:_height,
draggable:true,
dragBoundFunc:function (pos){
return {
x:x,
y:pos.y
}
},
})
const bgGroup=new Konva.Group({
x:x,
y:y,
width:_width,
height:_height
})
bgGroup.add(group)
bgGroup.clipFunc(function(ctx) {
ctx.rect(0, 4, _width, _height*0.969);
});
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/personbg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: _width,
height:_height*0.975,
image: this,
});
bgGroup.add(shape)
shape.zIndex(0)
}
return {bgGroup,group}
}
let selectedShape=null;
const dw=function (index,item=[]){
const alignSize=1
const width=((_width-5)/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 (){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
})
const bgObj = new Image();
bgObj.src = require('@/assets/sliao/personbg1.png');
bgObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
offsetX:4,
width: width,
height:height,
image: this,
});
group.add(shape)
shape.zIndex(0)
}
const selectObj = new Image();
selectObj.src = require('@/assets/sliao/selected.png');
let selectShape=null
const setSelectShape=function (shape){
selectShape=shape
}
selectObj.onload = function () {
const shape = new Konva.Image({
x: width-width*0.31,
y: 4,
width: width*0.25,
height:width*0.25,
image: this,
visible:false
});
group.add(shape)
shape.zIndex(0)
setSelectShape(shape)
}
const formatName=()=>{
for (const it of qgkw) {
if (it.bm===item.tzbh){
return it.bmsm
}
}
}
const text=new Konva.Text({
x:0,
y:0,
width: width,
height: height,
fill:'black',
text:`${formatName()}\n${item.list.length}`,
align:'center',
verticalAlign:'middle',
fontSize:14
})
group.add(text)
return group
}
const qgkw=[
{"bmsm": "2跨超长超宽曲板", "bmlb": "QGKW", "bm": "10"},
{"bmsm": "2跨T型材腹板", "bmlb": "QGKW", "bm": "11"},
{"bmsm": "2跨激光切割板", "bmlb": "QGKW", "bm": "12"},
{"bmsm": "3跨曲板", "bmlb": "QGKW", "bm": "13"},
{"bmsm": "3跨厚板", "bmlb": "QGKW", "bm": "14"},
{"bmsm": "4跨普通板", "bmlb": "QGKW", "bm": "15"},
{"bmsm": "7跨型板", "bmlb": "QGKW", "bm": "16"},
{"bmsm": "光电", "bmlb": "QGKW", "bm": "17"},
{"bmsm": "2跨T型材面板", "bmlb": "QGKW", "bm": "5"},
{"bmsm": "3跨平铁", "bmlb": "QGKW", "bm": "6"},
{"bmsm": "1跨平直大板", "bmlb": "QGKW", "bm": "7"},
{"bmsm": "1跨进线板", "bmlb": "QGKW", "bm": "8"},
{"bmsm": "2跨超长超宽板", "bmlb": "QGKW", "bm": "9"}
]
return {
container,dw
}
}

@ -0,0 +1,152 @@
import Konva from "konva";
export default function (width,height){
const _width=width*0.075,_height=height*0.73
const container=function (){
const x=20,y=260
const group=new Konva.Group({
x:0,
y:0,
width:_width,
height:_height,
draggable:true,
dragBoundFunc:function (pos){
return {
x:x,
y:pos.y
}
},
})
const bgGroup=new Konva.Group({
x:x,
y:y,
width:_width,
height:_height,
})
bgGroup.clipFunc(function(ctx) {
ctx.rect(0, 0, _width, _height*0.969);
});
bgGroup.add(group)
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/personbg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: _width,
height:_height*0.975,
image: this,
});
bgGroup.add(shape)
shape.zIndex(0)
}
return {bgGroup,group}
}
let currentWork=null;
let selectedShape=null;
const getCurrentWorker=function (){
return currentWork
}
const person=function (index,persons={}){
const alignSize=1
const width=(_width-5)/alignSize,height=110
const x=index%alignSize*width+index%alignSize+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 selectObj = new Image();
selectObj.src = require('@/assets/sliao/selected.png');
let selectShape=null
const setSelectShape=function (shape){
selectShape=shape
}
selectObj.onload = function () {
const shape = new Konva.Image({
x: width-width*0.3,
y: 2,
width: width*0.25,
height:height*0.25,
image: this,
visible:false
});
group.add(shape)
shape.zIndex(0)
setSelectShape(shape)
}
group.on('click touchstart',function (){
currentWork=persons
window.localStorage.setItem('worker',JSON.stringify(currentWork))
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
return
}
}
selectedShape=selectShape
selectedShape.show()
})
const bgObj = new Image();
bgObj.src = require('@/assets/sliao/personbg1.png');
bgObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
offsetX:4,
width: width,
height:height,
image: this,
});
group.add(shape)
shape.zIndex(0)
}
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/headImage.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
offsetX:-4,
offsetY:-10,
width: width*0.89,
height:height*0.85,
image: this,
});
group.add(shape)
shape.zIndex(0)
}
const text=new Konva.Text({
x:0,
y:height,
width:width,
height:height*0.1,
text: persons.userName,
align: 'center',
verticalAlign:'middle',
fontSize:12
})
group.add(text)
return group
}
return{
container,person
}
}

@ -0,0 +1,505 @@
import Konva from "konva";
import QRCode from 'qrcode'
export default function (width,height){
const x=width*0.66+40,y=40,_width=width*0.30,_height=height*0.95
const container=function (){
const group=new Konva.Group({
x:x,
y:y,
width:_width,
height:_height
})
const bgObj = new Image();
bgObj.src = require('@/assets/pwan/pgdbg.png');
bgObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: _width,
height:_height,
image: this,
});
group.add(shape)
shape.zIndex(0)
}
return group
}
let workers=[]
const setWorkers=function (persons){
workers=persons
}
const formatWorker=function (code){
for (const item of workers) {
if(item.userCode===code){
return item.userName
}
}
}
const drawGd=function (data){
// this.layer.destroyChildren();
const group=new Konva.Group({
x:13,
y:12,
width:_width,
height:_height
})
const rect=new Konva.Rect({
x:0,
y:0,
width:_width-25,
height:_height-20,
})
group.add(rect)
const title=new Konva.Text({
x:0,
y:10,
width:_width,
height:35,
fill:'#fff',
text:'大连重工大连钢材加工配送有限公司',
align:'center',
fontSize:22,
})
group.add(title)
const sgdTitle=new Konva.Text({
x:0,
y:40,
width:_width,
height:25,
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'划线计划单',
align:'center',
fontSize:20,
})
group.add(sgdTitle)
const dhTitle=new Konva.Text({
x:_width*0.7,
y:50,
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh}`,
align:'left',
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)
generateQRCode(data.djh,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,
fill:'#fff',
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:'#4991E5',
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:'#4991E5',
strokeWidth:1,
})
group.add(jsRect)
const jsText=new Konva.Text({
x:0,
y:0,
width:(_width-60),
height:30,
fill:'#fff',
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:'#4991E5',
strokeWidth:1,
})
group.add(plRect)
const plText=new Konva.Text({
x:0,
y:30,
width:(_width-60)/2,
height:30,
fill:'#fff',
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:'#4991E5',
strokeWidth:1,
})
group.add(fdRect)
const fdText=new Konva.Text({
x:(_width-60)/2,
y:30,
width:(_width-60)/2,
height:30,
fill:'#fff',
text:data.pwfkrq,
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:'#4991E5',
strokeWidth:1,
})
group.add(jsRect)
const jsText=new Konva.Text({
x:0,
y:0,
width:(_width-60),
height:30,
fill:'#fff',
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:'#4991E5',
strokeWidth:1,
})
group.add(plRect)
const name=formatWorker(data.pwry)
const plText=new Konva.Text({
x:0,
y:30,
width:(_width-60)/2,
height:30,
fill:'#fff',
text:name,
fontSize:18,
align:'center',
verticalAlign:'middle'
})
const fdRect=new Konva.Rect({
x:(_width-60)/2,
y:30,
width:(_width-60)/2,
height:30,
stroke:'#4991E5',
strokeWidth:1,
})
group.add(fdRect)
const fdText=new Konva.Text({
x:(_width-60)/2,
y:30,
width:(_width-60)/2,
height:30,
fill:'#fff',
text:data.pwpgrq||'',
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:'#4991E5',
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:'#4991E5',
strokeWidth:1,
})
group.add(rect)
const text=new Konva.Text({
x:0,
y:0,
width:(_width-60),
height:30,
fill:'#fff',
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:'#4991E5',
strokeWidth:1,
})
group.add(plRect)
const plText=new Konva.Text({
x:0,
y:0,
width:(_width-188)/2,
height:60,
fill:'#fff',
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:'#4991E5',
strokeWidth:1,
})
group.add(fdRect)
const fdText=new Konva.Text({
x:(_width-188)/2,
y:0,
width:(-width-188)/2,
height:60,
fill:'#fff',
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:'#4991E5',
strokeWidth:1,
})
czbhGroup.add(czbhRect)
const czbhText=new Konva.Text({
x:0,
y:0,
width:(_width-188),
height:60,
fill:'#fff',
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:'#4991E5',
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,setWorkers
}
}

@ -0,0 +1,86 @@
export default function () {
const options={
height:215,
align:'center',
border: true,
resizable: true,
keepSource:true,
size:'mini',
showOverflow: true,
scrollY:{enable:true},
highlightCurrentRow:true,
data:[],
ycldw:null,
}
const ext={}
const setExt=function (key,value){
ext[key]=value
}
const nameFormat=function ({cellValue}){
const workers=ext.workers
for (const item of workers) {
if(item.userCode===cellValue){
return item.userName
}
}
}
const gdhFormat=function ({cellValue}){
if (cellValue){
return 'PW'+cellValue
}
return ''
}
const dwFormat=function ({cellValue}){
console.log(cellValue)
console.log(options.ycldw)
for (const item of options.ycldw) {
if (cellValue===(item.id+"")){
for (const it of ycldw){
if (it.bm===item.tzbh){
return it.bmsm
}
}
}
}
}
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 50 },
{ field: 'djh',title:'派工单号', width: 120,},
{field: 'lldw', title: '垛位', width: 80,formatter: dwFormat},
{field: 'llcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},
{field: 'dcPl', title: '批量', width: 80},
{field: 'wpgg', title: '材质', width: 80},
{field: 'wpxh', title: '规格', width: 70},
{field: 'slwlh', title: '炉批号', width: 100},
{field: 'tzbh', title: '套料图号', width: 100},
{field: 'hxry', title: '接收人', width: 80,formatter: nameFormat},
{field: 'hxpgry', title: '派工人', width: 80,formatter: nameFormat},
{field: 'hxpgrq', title: '派工时间', width: 100},
]
const ycldw=[
{"bmsm": "2跨超长超宽曲板", "bmlb": "QGKW", "bm": "10"},
{"bmsm": "2跨T型材腹板", "bmlb": "QGKW", "bm": "11"},
{"bmsm": "2跨激光切割板", "bmlb": "QGKW", "bm": "12"},
{"bmsm": "3跨曲板", "bmlb": "QGKW", "bm": "13"},
{"bmsm": "3跨厚板", "bmlb": "QGKW", "bm": "14"},
{"bmsm": "4跨普通板", "bmlb": "QGKW", "bm": "15"},
{"bmsm": "7跨型板", "bmlb": "QGKW", "bm": "16"},
{"bmsm": "光电", "bmlb": "QGKW", "bm": "17"},
{"bmsm": "2跨T型材面板", "bmlb": "QGKW", "bm": "5"},
{"bmsm": "3跨平铁", "bmlb": "QGKW", "bm": "6"},
{"bmsm": "1跨平直大板", "bmlb": "QGKW", "bm": "7"},
{"bmsm": "1跨进线板", "bmlb": "QGKW", "bm": "8"},
{"bmsm": "2跨超长超宽板", "bmlb": "QGKW", "bm": "9"}
]
return {
options,
columns,
setExt
}
}

@ -0,0 +1,41 @@
import Konva from "konva";
export default function (width,height){
const x=width*0.495,y=260,_width=width*0.186,_height=height*0.713
const container=new Konva.Group({
id:'sb',
x:x,
y:y,
width:_width,
height:_height
})
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/personbg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: _width,
height:_height,
image: this,
});
container.add(shape)
shape.zIndex(0)
}
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
}

@ -0,0 +1,280 @@
import Konva from "konva";
export const sljh=function (width,height){
const layer=new Konva.Layer({
id:'2',
x:20,
y:75,
})
const group=new Konva.Group({
x:0,
y:0,
width: width*0.6,
height: height*0.2-60,
draggable: true,
dragBoundFunc:function (pos){
return {
x:pos.x,
y:75
}
},
});
const bgGroup=new Konva.Group({
x:34,
y:0,
})
bgGroup.clipFunc(function(ctx) {
ctx.rect(4, 0, width*0.6, height*0.2-10);
});
layer.add(bgGroup)
bgGroup.zIndex(0)
bgGroup.add(group)
const left2ImageObj=new Image()
left2ImageObj.src = require('@/assets/sliao/left2.png');
left2ImageObj.onload = function () {
const shape1 = new Konva.Image({
x: 0,
y: 35,
width: 32,
height:120,
image: this,
});
layer.add(shape1)
shape1.zIndex(1)
shape1.on('click touchstart',function (){
group.move({
x:-116
})
})
}
const right2ImageObj=new Image()
right2ImageObj.src = require('@/assets/sliao/right2.png');
right2ImageObj.onload = function () {
const shape1 = new Konva.Image({
x: width*0.65,
y: 35,
width: 32,
height:120,
image: this,
});
layer.add(shape1)
shape1.zIndex(1)
shape1.on('click touchstart',function (){
group.move({
x:116
})
})
}
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/sljhbg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 8,
y: 0,
width: width*0.66,
height:181,
image: this,
});
layer.add(shape)
shape.zIndex(0)
}
function drawItem(i,item){
const itemWith=111;
const itemHeight=108
const x=(i+1)*5+i*itemWith;
const qyGroup=new Konva.Group({
x:x,
y:10,
width:itemWith,
height:itemHeight,
})
qyGroup.setAttr('index',i)
qyGroup.setAttr('item',item)
group.add(qyGroup)
const imageObj = new Image();
imageObj.src = require('@/assets/sliao/sljhItemBg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: 111,
height:163,
image: this,
});
qyGroup.add(shape)
shape.zIndex(0)
}
const tlth=new Konva.Text({
x: 0,
y: 0,
width: 111,
height:34,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:item.tzbh
})
qyGroup.add(tlth)
const nameGroup=new Konva.Group({
x: 5,
y: 43,
width: 38,
height:105,
})
const nameImageObj1 = new Image();
nameImageObj1.src = require('@/assets/sliao/nameBg1.png');
nameImageObj1.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: 38,
height:105,
image: this,
});
nameGroup.add(shape)
shape.zIndex(0)
}
qyGroup.add(nameGroup)
const name1=new Konva.Text({
x: 0,
y: 0,
width: 38,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:'船号'
})
nameGroup.add(name1)
const name2=new Konva.Text({
x: 0,
y: 21,
width: 38,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:'批量'
})
nameGroup.add(name2)
const name3=new Konva.Text({
x: 0,
y: 43,
width: 38,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:'规格'
})
nameGroup.add(name3)
const name4=new Konva.Text({
x: 0,
y: 64.5,
width: 38,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:'垛位'
})
nameGroup.add(name4)
const name5=new Konva.Text({
x: 0,
y: 86.5,
width: 38,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:'层数'
})
nameGroup.add(name5)
const infoGroup=new Konva.Group({
x: 43,
y: 43,
width: 65,
height:105,
})
qyGroup.add(infoGroup)
const info1=new Konva.Text({
x: 0,
y: 0,
width: 65,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:item.dcCh
})
infoGroup.add(info1)
const info2=new Konva.Text({
x: 0,
y: 21,
width: 65,
height:20,
fontSize:12,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:item.dcPl
})
infoGroup.add(info2)
const info3=new Konva.Text({
x: 0,
y: 43,
width: 65,
height:20,
fontSize:9,
fontStyle:'bold',
fill:'#fff',
align:'center',
verticalAlign:'middle',
text:item.wpgg
})
infoGroup.add(info3)
return qyGroup
}
return {
layer,group,drawItem
}
}

@ -0,0 +1,40 @@
import Konva from "konva";
const title=function (width,height,title) {
const group=new Konva.Group({
x: 0,
y: 0,
width: width,
height: 20,
})
const imageObj = new Image();
imageObj.src = require('@/assets/kban/logo.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 0,
y: 0,
width: width*0.86,
height:41,
image: imageObj,
});
group.add(shape)
}
const text=new Konva.Text({
x: 0,
y: 8,
width: width,
height: 20,
text: title,
align: 'center',
fill:'#fff',
fontSize: 32,
fontStyle:'bold'
})
group.add(text)
return group
}
export default title

@ -0,0 +1,216 @@
<template>
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<HxianPgd id="hxpgd" ref="hxpgd" @initPgd="initPgd" :pgd="pgd" :workers="workers" @pgdClick="pagClick" />
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers"/>
</div>
</template>
<script>
import container from "./comps/container";
import drawTitle from './comps/title'
import workers from "./comps/person";
import drawDw from './comps/dw'
import drawPgd from './comps/pgd'
import drawSb from './comps/sb'
import baifang from "./comps/baifang";
import {getPgd, getYcldw} from "@/api/zyjh";
import {getBzryList} from "@/api/sjzx/bzzGL";
import HxianPgd from "@/views/zyjhzx/hxianfkui/comps/HxianPgd.vue";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name:'PWanFKui',
components: {ZyjhSelectComp, HxianPgd},
data(){
return {
title:'零 件 作 业 报 工',
width:0,
height:0,
stage:null,
layer:null,
sljhGroup:null,
pgdGroup:null,
drawGd:null,
dw:[],
pgd:[],
slGroup:null,
currentDw:null,
currentDwIndex:null,
currentWorker:null,
setWorkers:null,
workers:null,
dwGroup:null,
workerGroup:null,
person:null,
}
},
mounted() {
this.$socket.open()
this.wsSubscribe()
this.initKonvaStage();
},
created(){
window.addEventListener('resize', this.initKonvaStage)
},
sockets:{},
methods:{
wsSubscribe(){
this.sockets.subscribe('hxComplete', data => {
if (this.currentDw&&this.currentDw.id===data.dwId) {
if (this.slGroup){
this.slGroup.destroyChildren()
}
for (let i = 0; i < this.currentDw.list.length; i++) {
const item=this.currentDw.list[i]
if (item.czbh===data.czbh&&item.pl===data.pl&&item.tlth===data.tlth){
this.currentDw.list.splice(i,1)
break
}
}
this.drawBaiFang(this.dw[this.currentDwIndex].list)
this.initDw()
this.$refs.hxpgd.initData(this.currentWorker.userCode,'51')
}
})
this.sockets.subscribe('zyjhzx', data => {
if (this.zt===data.zt){
const tmpArr=[{
id:data.zyjh.id,
hxfkry:data.zyjh.hxry
}]
this.$refs.hxpgd.paigong0(tmpArr)
}else{
this.$message.error(`工单号错误:${data.gdh}`)
}
})
},
initPgd(pgd={}){
const group=this.drawGd(pgd)
this.pgdGroup.add(group)
},
pagClick(){
},
initDwInfo(index,dw){
if (this.slGroup){
this.slGroup.destroyChildren()
}
this.canSl=true
this.currentDw=dw
this.currentDwIndex=index
!!dw&&this.drawBaiFang(dw.list)
},
initBaiFang(){
const {slGroup,handler,bgGroup:slBgGroup}= baifang({width:this.width,height:this.height})
this.slGroup=slGroup
this.layer.add(slBgGroup)
this.drawBaiFang=handler
},
initDw(){
if (this.dwGroup){
this.dwGroup.destroyChildren()
}
const that=this
getYcldw({type:'llj'}).then(res=>{
const {container,dw}=drawDw(this.width,this.height,that.initDwInfo)
const {bgGroup,group}=container()
this.dwGroup=group
this.dw=res.data
this.layer.add(bgGroup)
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const dwGroup=dw(i,item)
group.add(dwGroup)
}
})
},
initWorkers(bzType){
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person,getCurrentWorker}=workers(this.width,this.height)
this.person=person
this.getCurrentWorker=getCurrentWorker
const {bgGroup,group}=container()
this.workerGroup=group
this.layer.add(bgGroup)
}
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
this.setWorkers(res.data)
const that=this
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=this.person(i,item)
worker.on('click touchstart',function (){
that.currentWorker=item
that.$refs.hxpgd.initData(that.currentWorker.userCode,'51')
})
this.workerGroup.add(worker)
}
})
},
initKonvaStage(){
this.width=this.$refs.pwpg.clientWidth
this.height=this.$refs.pwpg.clientHeight
const {stage,layer}=container(this.width,this.height,'pwpg')
this.stage=stage
this.layer=layer
const titel=drawTitle(this.width,this.height,this.title)
this.layer.add(titel)
this.initWorkers(this.$refs.selRef.getData().bzType)
this.initDw()
const {container:pgdContainer,drawGd,setWorkers}=drawPgd(this.width,this.height)
this.setWorkers=setWorkers
this.drawGd=drawGd
this.pgdGroup=pgdContainer()
this.layer.add(this.pgdGroup)
const csdGroup = drawSb(this.width, this.height)
this.layer.add(csdGroup)
this.initBaiFang()
},
}
}
</script>
<style>
#selectComp {
width:50%;
height: auto;
position: absolute;
top:10px;
left:20px;
border: none;
margin: 0;
}
#hxpgd {
width:67%;
height: auto;
position: absolute;
top:45px;
left:20px;
border: none;
margin: 0;
}
#pwpg {
overflow: hidden;
width: 100%;
height: 100vh;
aspect-ratio: 16/9;
}
.container{
background: #ddd;
}
</style>

@ -79,7 +79,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'理料计划单',
align:'center',
fontSize:20,
})
@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'LL'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -39,7 +39,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 60 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120,},
{field: 'dcCh', title: '船号', width: 80},
{field: 'dcPl', title: '批量', width: 80},
{field: 'wpgg', title: '材质', width: 80},

@ -1,6 +1,7 @@
<template>
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers"/>
</div>
</template>
@ -14,9 +15,11 @@ import baifang from "./comps/baifang";
import {sljh} from "@/views/zyjhzx/lliaofkui/comps/sljh";
import {getPgd, getYcldw, shangLiao} from "@/api/zyjh";
import {getBzryList} from "@/api/sjzx/bzzGL";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name:'PWanFKui',
components: {ZyjhSelectComp},
data(){
return {
title:'理 料 作 业 报 工',
@ -37,6 +40,8 @@ export default {
setWorkers:null,
workers:null,
drawItem:null,
workerGroup:null,
person:null,
kwBm:[
{"bmsm": "2跨超长超宽曲板", "bmlb": "QGKW", "bm": "10"},
{"bmsm": "2跨T型材腹板", "bmlb": "QGKW", "bm": "11"},
@ -229,7 +234,7 @@ export default {
},500)
})
qyGroup.on('touchend',function (){
qyGroup.on('mouseup touchend',function (){
touchingFlag=false;
this.draggable(false)
_sljhGroup.draggable(true)
@ -255,31 +260,45 @@ export default {
}
})
},
initWorkers(){
initWorkers(bzType){
const that=this
getBzryList({resourcesCode:'4KB002'}).then(res=>{
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person,getCurrentWorker}=workers(this.width,this.height)
this.getCurrentWorker=getCurrentWorker
this.person=person
const {bgGroup,group}=container()
this.workerGroup=group
this.layer.add(bgGroup)
this.getCurrentWorker=getCurrentWorker
}
this.workerGroup.x(0)
this.workerGroup.y(0)
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
that.setWorkers(res.data)
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=person(i,item)
const worker=this.person(i,item)
worker.on('click touchstart',function (){
that.currentWorker=item
getPgd({field:'llry',user:item.userCode,zt:'41'}).then(res=>{
that.sljhItemList=res.data
that.drawSljhItem(res.data)
})
// getPgd({field:'llry',user:item.userCode,zt:'41'}).then(res=>{
// that.sljhItemList=res.data
// that.drawSljhItem(res.data)
// })
})
group.add(worker)
this.workerGroup.add(worker)
worker.zIndex(1)
}
})
},
initSljhItem(){
getPgd({zt:'32'}).then(res=>{
this.sljhItemList=res.data
this.drawSljhItem(res.data)
})
},
initKonvaStage(){
this.width=this.$refs.pwpg.clientWidth
this.height=this.$refs.pwpg.clientHeight
@ -290,8 +309,6 @@ export default {
const titel=drawTitle(this.width,this.height,this.title)
this.layer.add(titel)
this.initWorkers()
this.initDw()
const {container:pgdContainer,drawGd,setWorkers}=drawPgd(this.width,this.height)
@ -306,6 +323,10 @@ export default {
this.stage.add(sljhLayer)
this.initBaiFang()
this.initSljhItem()
this.initWorkers(this.$refs.selRef.getData().bzType)
},
kwNameFormat(code){
for (const item of this.kwBm) {
@ -320,11 +341,11 @@ export default {
</script>
<style>
#pwpgd {
width:55%;
#selectComp {
width:50%;
height: auto;
position: absolute;
top:45px;
top:10px;
left:20px;
border: none;
margin: 0;

@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'LL'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -36,6 +36,7 @@ export default {
})
},
cellClick({row}){
this.$emit('pgdClick',row)
this.$emit('initPgd',row)
}
}

@ -43,17 +43,7 @@ export default function (width,height,callback){
height:height
})
group.on('click touchstart',function (){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
selected()
})
const bgObj = new Image();
@ -71,9 +61,24 @@ export default function (width,height,callback){
shape.zIndex(0)
}
let selectShape=null
function selected(){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
}
const selectObj = new Image();
selectObj.src = require('@/assets/sliao/selected.png');
let selectShape=null
const setSelectShape=function (shape){
selectShape=shape
}
@ -91,6 +96,11 @@ export default function (width,height,callback){
setSelectShape(shape)
}
group.selected=selected
console.log(group)
const text=new Konva.Text({
x:0,
y:0,

@ -80,7 +80,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'抛丸计划单',
align:'center',
fontSize:20,
})
@ -92,7 +92,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'PW'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -49,7 +49,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 60 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120},
{field: 'slycldw', title: '垛位', width: 60,formatter: dwFormat},
{field: 'slyclcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},

@ -1,7 +1,8 @@
<template>
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<PWanPgd id="pwpgd" ref="pwpgd" @initPgd="initPgd" :pgd="pgd" :workers="workers" />
<PWanPgd id="pwbgd" ref="pwpgd" @initPgd="initPgd" :pgd="pgd" :workers="workers" @pgdClick="pgdClick"/>
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers"/>
</div>
</template>
@ -16,10 +17,11 @@ import baifang from "./comps/baifang";
import drawCsd from './comps/csd'
import { getYcldw} from "@/api/zyjh";
import {getBzryList} from "@/api/sjzx/bzzGL";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name:'PWanFKui',
components: {PWanPgd},
components: {ZyjhSelectComp, PWanPgd},
data(){
return {
title:'抛 丸 作 业 报 工',
@ -38,6 +40,8 @@ export default {
workers:null,
slGroup:null,
dwGroup:null,
workerGroup:null,
person:null,
}
},
mounted() {
@ -84,6 +88,40 @@ export default {
const group=this.drawGd(pgd)
this.pgdGroup.add(group)
},
pgdClick(option){
let index=-1
let dw=null
for (const item of this.dw) {
index+=1
if (item.id===option.slycldw){
dw=item
}
}
this.dwGroup.children[index].selected()
this.initDwInfo(index,dw)
const that=this
this.slGroup.children.forEach(item=>{
const data=item.getAttr('item')
if (data.czbh===option.dcCh){
const imageObj = new Image();
imageObj.src = require('@/assets/pwan/gbSelectBg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 10,
y: 0,
offsetY:5,
width: that.width*0.25-20,
height:50,
image: this,
});
item.add(shape)
shape.zIndex(0)
}
}
})
},
initDwInfo(index,dw){
if (this.slGroup){
this.slGroup.destroyChildren()
@ -107,7 +145,7 @@ export default {
getYcldw({type:'ycl'}).then(res=>{
const {container,dw}=drawDw(this.width,this.height,that.initDwInfo)
const group=container()
this.dwGroup=group
this.layer.add(group)
this.dw=res.data
@ -118,23 +156,29 @@ export default {
}
})
},
initWorkers(){
initWorkers(bzType){
const that=this
getBzryList({resourcesCode:'4KB002'}).then(res=>{
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person}=workers(this.width,this.height)
this.person=person
const {bgGroup,group}=container()
this.workerGroup=group
this.layer.add(bgGroup)
}
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
that.setWorkers(res.data)
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=person(i,item)
const worker=this.person(i,item)
worker.on('click touchstart',function (){
that.currentWorker=item
that.$refs.pwpgd.initData(that.currentWorker.userCode,'31')
})
group.add(worker)
this.workerGroup.add(worker)
worker.zIndex(1)
}
})
@ -160,7 +204,7 @@ export default {
const csdGroup=drawCsd(this.width,this.height)
this.layer.add(csdGroup)
this.initWorkers()
this.initWorkers(this.$refs.selRef.getData().bzType)
this.initBaiFang()
},
@ -170,7 +214,16 @@ export default {
</script>
<style>
#pwpgd {
#selectComp {
width:50%;
height: auto;
position: absolute;
top:10px;
left:20px;
border: none;
margin: 0;
}
#pwbgd {
width:55%;
height: auto;
position: absolute;

@ -79,7 +79,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'抛丸计划单',
align:'center',
fontSize:20,
})
@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'PW'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -43,7 +43,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 60 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120},
{field: 'slycldw', title: '垛位', width: 60,formatter: dwFormat},
{field: 'slyclcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},

@ -2,6 +2,7 @@
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<PWanPgd id="pwpgd" ref="pwpgd" @initPgd="initPgd" :worker="getWorker" :workers="workers"/>
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers"/>
</div>
</template>
@ -14,10 +15,11 @@ import drawDw from './comps/dw'
import drawPgd from './comps/pgd'
import {getBzryList} from "@/api/sjzx/bzzGL";
import {dict, getYcldw, shangLiao} from "@/api/zyjh";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name:'PWanPGong',
components: {PWanPgd},
components: {ZyjhSelectComp, PWanPgd},
data(){
return {
title:'抛 丸 作 业 派 工',
@ -31,7 +33,9 @@ export default {
setWorkers:null,
workers:null,
tlt:null,
zt:'21'
zt:'21',
workerGroup:null,
person:null,
}
},
mounted() {
@ -82,20 +86,26 @@ export default {
getWorker(){
return this.getCurrentWorker()
},
initWorkers(){
getBzryList({resourcesCode:'4KB002'}).then(res=>{
initWorkers(bzType){
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person,getCurrentWorker}=workers(this.width,this.height)
this.getCurrentWorker=getCurrentWorker
this.person=person
const {layer,group}=container()
this.workerGroup=group
this.stage.add(layer)
}
this.workerGroup.x(0)
this.workerGroup.y(0)
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
this.$refs.pwpgd.setWorkers(this.workers)
this.setWorkers(res.data)
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=person(i,item)
group.add(worker)
const worker=this.person(i,item)
this.workerGroup.add(worker)
}
})
},
@ -117,7 +127,7 @@ export default {
this.pgdGroup=pgdContainer()
this.layer.add(this.pgdGroup)
this.initWorkers()
this.initWorkers(this.$refs.selRef.getData().bzType)
},
}
@ -126,6 +136,15 @@ export default {
</script>
<style>
#selectComp {
width:50%;
height: auto;
position: absolute;
top:10px;
left:20px;
border: none;
margin: 0;
}
#pwpgd {
width:50%;
height: auto;

@ -94,6 +94,7 @@ export default {
})
},
cellClick({row}) {
this.$emit('pgdClick',row)
this.$emit('initPgd', row)
}
}

@ -55,23 +55,14 @@ export default function (width,height,callback){
const width=((_width-5)/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({
id:item.id,
x:x,
y:y,
width:width,
height:height
})
group.on('click touchstart',function (){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
selected()
})
const bgObj = new Image();
@ -89,9 +80,24 @@ export default function (width,height,callback){
shape.zIndex(0)
}
let selectShape=null
function selected(){
if (selectedShape){
selectedShape.hide()
if (selectedShape===selectShape){
selectedShape=null
callback(null,null)
return
}
}
selectedShape=selectShape
selectedShape.show()
callback(index,item)
}
const selectObj = new Image();
selectObj.src = require('@/assets/sliao/selected.png');
let selectShape=null
const setSelectShape=function (shape){
selectShape=shape
}
@ -109,6 +115,8 @@ export default function (width,height,callback){
setSelectShape(shape)
}
group.selected=selected
const formatName=()=>{
for (const it of qgkw) {
if (it.bm===item.tzbh){
@ -150,7 +158,7 @@ export default function (width,height,callback){
]
return {
container,dw
container,dw,
}
}

@ -79,7 +79,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'切割计划单',
align:'center',
fontSize:20,
})
@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'QG'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -48,7 +48,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 50 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120,},
{field: 'lldw', title: '垛位', width: 80,formatter: dwFormat},
{field: 'llcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},

@ -1,7 +1,8 @@
<template>
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<QgePgd id="pwpgd" ref="hxpgd" @initPgd="initPgd" :pgd="pgd" :worker="getWorker" :workers="workers"/>
<QgePgd id="qgfkpgd" v-if="pgdShow" ref="hxpgd" @initPgd="initPgd" :pgd="pgd" :worker="getWorker" :workers="workers" @pgdClick="pgdClick"/>
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers" @clear="clear"/>
</div>
</template>
@ -16,13 +17,15 @@ import baifang from "./comps/baifang";
import {getPgd, getYcldw, shangLiao} from "@/api/zyjh";
import {getBzryList} from "@/api/sjzx/bzzGL";
import QgePgd from "@/views/zyjhzx/qgefkui/comps/QgePgd.vue";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name: 'QGeFKui',
components: {QgePgd},
components: {ZyjhSelectComp, QgePgd},
data() {
return {
title: '切 割 作 业 报 工',
pgdShow:false,
width:0,
height:0,
stage:null,
@ -40,6 +43,8 @@ export default {
setWorkers:null,
workers:null,
dwGroup:null,
workerGroup:null,
person:null,
}
},
mounted() {
@ -86,6 +91,39 @@ export default {
const group = this.drawGd(pgd)
this.pgdGroup.add(group)
},
pgdClick(option){
let index=-1
let dw=null
for (const item of this.dw) {
index+=1
if ((item.id+'')===option.lldw){
dw=item
}
}
this.dwGroup.children[index].selected()
this.initDwInfo(index,dw)
const that=this
this.slGroup.children.forEach(item=>{
const data=item.getAttr('item')
if (data.czbh===option.dcCh){
const imageObj = new Image();
imageObj.src = require('@/assets/pwan/gbSelectBg.png');
imageObj.onload = function () {
const shape = new Konva.Image({
x: 10,
y: 0,
offsetY:5,
width: that.width*0.32-20,
height:50,
image: this,
});
item.add(shape)
shape.zIndex(0)
}
}
})
},
initDwInfo(index,dw){
if (this.slGroup){
this.slGroup.destroyChildren()
@ -123,24 +161,30 @@ export default {
getWorker(){
return this.getCurrentWorker()
},
initWorkers() {
getBzryList({resourcesCode: '4KB002'}).then(res => {
initWorkers(bzType) {
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person,getCurrentWorker}=workers(this.width,this.height)
this.getCurrentWorker=getCurrentWorker
this.person=person
const {bgGroup,group}=container()
this.workerGroup=group
this.layer.add(bgGroup)
}
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res => {
this.workers=res.data
this.setWorkers(res.data)
const that=this
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=person(i,item)
const worker=this.person(i,item)
worker.on('click touchstart',function (){
that.currentWorker=item
that.$refs.hxpgd.initData(that.currentWorker.userCode,'61')
})
group.add(worker)
this.workerGroup.add(worker)
}
})
},
@ -154,7 +198,7 @@ export default {
const titel = drawTitle(this.width, this.height, this.title)
this.layer.add(titel)
this.initWorkers()
this.initWorkers(this.$refs.selRef.getData().bzType)
this.initDw()
@ -168,14 +212,29 @@ export default {
this.layer.add(csdGroup)
this.initBaiFang()
this.pgdShow=true
},
clear(){
console.log('qgfk')
this.stage.remove()
}
}
}
</script>
<style>
#pwpgd {
#selectComp {
width:50%;
height: auto;
position: absolute;
top:10px;
left:20px;
border: none;
margin: 0;
}
#qgfkpgd {
width: 67%;
height: auto;
position: absolute;

@ -32,18 +32,21 @@ export default {
this.setExt=setExt
this.gridOptions=options
this.gridOptions.columns=columns
this.initData()
getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data
})
},
methods:{
initData() {
getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data
})
getPgd({zt: '42',ztHx:'52'}).then(res => {
this.gridOptions.data = res.data
this.setExt('workers',this.$props.workers)
})
},
setWorkers(workers){
this.setExt('workers',workers)
this.initData()
},
checkboxAll({checked}) {
const worker = this.$props.worker
if (!worker) {

@ -79,7 +79,7 @@ export default function (width,height){
lineHeight:1,
fill:'#fff',
strokeWidth:1,
text:'抛丸施工单',
text:'切割作计划单',
align:'center',
fontSize:20,
})
@ -91,7 +91,7 @@ export default function (width,height){
width:_width-48,
height:15,
fill:'#fff',
text:`单号:${data.djh?'QG'+data.djh:''}`,
text:`单号:${data.djh}`,
align:'left',
fontSize:12,
})

@ -14,7 +14,6 @@ export default function () {
}
const ext={}
const setExt=function (key,value){
console.log(key,value)
ext[key]=value
}
@ -46,7 +45,7 @@ export default function () {
const columns = [
{ type: 'checkbox', width: 40 },
{ type: 'seq',title:'序号', width: 50 },
{ field: 'djh',title:'派工单号', width: 120,formatter: gdhFormat},
{ field: 'djh',title:'派工单号', width: 120,},
{field: 'lldw', title: '垛位', width: 80,formatter: dwFormat},
{field: 'llcs', title: '层数', width: 60},
{field: 'dcCh', title: '船号', width: 80},

@ -1,7 +1,8 @@
<template>
<div class="container">
<div id="pwpg" class="pwpg" ref="pwpg"></div>
<QgePgd id="pwpgd" ref="pwpgd" @initPgd="initPgd" :worker="getWorker" :workers="workers" />
<QgePgd id="qgpgd" v-if="pgdShow" ref="pwpgd" @initPgd="initPgd" :worker="getWorker" :workers="workers" />
<ZyjhSelectComp id="selectComp" ref="selRef" @initWorkers="initWorkers" @clear="clear"/>
</div>
</template>
@ -14,13 +15,15 @@ import drawPgd from './comps/pgd'
import {getBzryList} from "@/api/sjzx/bzzGL";
import {getYcldw} from "@/api/zyjh";
import QgePgd from "@/views/zyjhzx/qgepgong/comps/QgePgd.vue";
import ZyjhSelectComp from "@/views/zyjhzx/components/SelectComp.vue";
export default {
name:'PWanPGong',
components: {QgePgd},
components: {ZyjhSelectComp, QgePgd},
data(){
return {
title:'切 割 作 业 派 工',
pgdShow:false,
width:0,
height:0,
stage:null,
@ -29,6 +32,8 @@ export default {
drawGd:null,
getCurrentWorker:null,
workers:null,
workerGroup:null,
person:null
}
},
mounted() {
@ -79,18 +84,26 @@ export default {
getWorker(){
return this.getCurrentWorker()
},
initWorkers(){
getBzryList({resourcesCode:'4KB002'}).then(res=> {
const {container, person, getCurrentWorker} = workers(this.width, this.height)
this.getCurrentWorker = getCurrentWorker
const {layer, group} = container()
initWorkers(bzType){
if (this.workerGroup){
this.workerGroup.destroyChildren()
}else{
const {container,person,getCurrentWorker}=workers(this.width,this.height)
this.getCurrentWorker=getCurrentWorker
this.person=person
const {layer,group}=container()
this.workerGroup=group
this.stage.add(layer)
}
this.workerGroup.x(0)
this.workerGroup.y(0)
getBzryList({zyq:this.$route.query.zyq,zt:bzType}).then(res=>{
this.workers=res.data
for (let i = 0; i < res.data.length; i++) {
const item = res.data[i]
const worker = person(i, item)
group.add(worker)
this.$refs.pwpgd.setWorkers(this.workers)
for (let i=0;i<res.data.length;i++){
const item=res.data[i]
const worker=this.person(i,item)
this.workerGroup.add(worker)
}
})
},
@ -104,7 +117,7 @@ export default {
const titel = drawTitle(this.width, this.height, this.title)
this.layer.add(titel)
this.initWorkers()
this.initWorkers(this.$refs.selRef.getData().bzType)
this.initDw()
@ -112,15 +125,28 @@ export default {
this.drawGd = drawGd
this.pgdGroup = pgdContainer()
this.layer.add(this.pgdGroup)
this.pgdShow=true
},
clear(){
console.log('qgpg')
this.stage.remove()
}
}
}
</script>
<style>
#pwpgd {
#selectComp {
width:50%;
height: auto;
position: absolute;
top:10px;
left:20px;
border: none;
margin: 0;
}
#qgpgd {
width: 50.3%;
height: auto;
position: absolute;

@ -1,9 +1,8 @@
<template>
<div id="searchPl" ref="searchPl">
<VxeInput v-model="queryParam.kw" placeholder="请输入跨位"/>
<ProjectSelect ref="projectSelectRef" :_style="{width:'115px'}"/>
<VxeInput v-model="queryParam.dcPl" placeholder="请输入批量"/>
<VxeInput type="date" value-format="yyyy/MM/dd" label-format="yyyy/MM/dd" v-model="queryParam.sljhrq" placeholder="请选择上料日期"/>
<VxeInput v-model="queryParam.kw" placeholder="请输入跨位"/>
<VxeButton status="primary" content="查询" @click="search" />
</div>
</template>
@ -20,7 +19,6 @@ export default {
dcCh:'',
dcPl:'',
dcFd:'',
sljhrq:''
},
}
},

@ -37,16 +37,16 @@ const search=function (){
})
group.add(fdRect)
const sljhrqRect=new Konva.Rect({
x: 345,
y: 0,
fill:'#ffffff',
width: 115,
height:20,
stroke:'black',
strokeWidth:1,
})
group.add(sljhrqRect)
// const sljhrqRect=new Konva.Rect({
// x: 345,
// y: 0,
// fill:'#ffffff',
// width: 115,
// height:20,
// stroke:'black',
// strokeWidth:1,
// })
// group.add(sljhrqRect)
return {
group

Loading…
Cancel
Save