1.余料库存管理(未完成)

master
董哲奇 4 weeks ago
parent f0312aa60a
commit 0718967219

@ -0,0 +1,306 @@
import request from '@/utils/request'
import { VXETable } from 'vxe-table'
import XLSX from 'xlsx'
const init=function (that){
const butClick=function (){
data.options.formConfig.data.dcCh=that.$refs.projectSelectRef.getDcch()
if (!data.options.formConfig.data.dcCh){
VXETable.modal.message({ content: '请选择船号', status: 'warning' })
return
}
getData(data.options.formConfig.data).then(res=>{
data.options.data=res.data
})
}
const 核对=function (){
const dcCh=that.$refs.xqProjectSelectRef.getDcch();
const dcPl=data.options.formConfig.data.xqpl
if (!dcCh||!dcPl){
VXETable.modal.message({ content: '请选择需求船号和批量', status: 'warning' })
return
}
const table=that.$refs.vGrid
const list=table.getCheckboxRecords()
if (list.length===0){
VXETable.modal.message({ content: '请选择数据', status: 'warning' })
return
}
const _data={
dcCh:dcCh,
dcPl:dcPl,
ylList:list
}
核对数据(_data).then(res=>{
const data=res.data
VXETable.modal.message({ content: `核对结束,匹配${data.length}张套料图`, status: 'warning' })
for (const item of data) {
for (let it of list) {
if (it.id===item.id){
it=Object.assign(it,item)
break;
}
}
}
})
}
const 保存=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if (list.length>0){
edit(list).then(res=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const 打印=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if (list.length>0){
print(list).then(res=>{
const workBook = XLSX.utils.book_new();
const _data=list.map(item=>{
return {
船号:item.使用船号,
批量:item.使用批量,
图纸编号:item.使用图纸,
余料编号:item.余料编号,
垛位:item.垛位
}
})
const sheet=XLSX.utils.json_to_sheet(_data)
XLSX.utils.book_append_sheet(workBook, sheet, "sheet");
XLSX.writeFile(workBook, `${data.options.formConfig.dcCh}-${data.options.formConfig.dcPl}余料上料计划.xlsx`)
butClick()
})
}
}
const 退回=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if(list.length>0){
rollback(list).then(()=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const useStatus=[
{label:'未使用',value:'0'},
{label:'未打印',value:'1'},
{label:'已打印',value:'2'},
{label:'已切割',value:'3'},
]
const formatUseStatus=({cellValue})=>{
for (const item of useStatus) {
if(item.value===cellValue){
return item.label
}
}
return cellValue
}
const data={
options:{
height:830,
align:'center',
border: true,
resizable: true,
keepSource:true,
size:'mini',
showOverflow: true,
showHeaderOverflow:true,
editConfig:{trigger: 'click', mode: 'cell', showStatus: true},
highlightCurrentRow:true,
formConfig:{
data:{
dcCh:'',
dcPl:'',
tzbh:'',
status:'0',
xqch:'',
xqpl:'',
},
items:[
{ field: 'dcCh', title: '来源船只', span: 3,slots: { default: 'name_czbh' } },
{ field: 'dcPl', title: '来源批量', span: 3 ,itemRender: {name: '$input'}},
{ field: 'tzbh', title: '来源图号', span: 3 ,itemRender: {name: '$input'}},
{ field: 'status', title: '使用状态', span: 3 ,
itemRender: {name: '$select',props:{options:useStatus}}
},
{span: 12,
children:[
{ span: 15,align:'right',itemRender: {
name: '$button', props: {content:'查询',status:'primary'},events:{click:butClick}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'核对',status:'primary'},events:{click:核对}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'保存',status:'primary'},events:{click:保存}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'打印',status:'primary'},events:{click:打印}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'退回',status:'primary'},events:{click:退回}
}
},
]
},
{ field: 'xqch', title: '需求船只', span: 3,slots: { default: 'name_xqch' } },
{ field: 'xqpl', title: '需求批量', span: 3 ,itemRender: {name: '$input'}},
],
},
columns:[
{type:'checkbox',title:'序号'},
{type:'seq',title:''},
// { field: 'id', title: 'ID', width: 150 },
{ field: '余料编号', title: '余料编号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '规格', title: '规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板厚', title: '板厚', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板宽', title: '板宽', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板长', title: '板长', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '炉批号', title: '炉批号', width: 140,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '重量', title: '重量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '数量', title: '数量', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '垛位', title: '垛位', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '层数', title: '层数', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用船号', title: '使用船号', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用批量', title: '使用批量', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用分段', title: '使用分段', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用图纸', title: '使用图纸', width: 150,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用日期', title: '使用日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源船号', title: '来源船号', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源批量', title: '来源批量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源图纸', title: '来源图纸', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '切割日期', title: '切割日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品型号', title: '物品型号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品规格', title: '物品规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{field: '使用状态', title: '使用状态', width: 120, formatter:formatUseStatus}
],
data:[],
},
}
return data
}
const getData=(data)=>{
return request({
url: "/yl/list",
method: "post",
data,
});
}
const 核对数据=(data)=>{
return request({
url: "/yl/gdsl",
method: "post",
data,
});
}
const edit=(data)=>{
return request({
url: "/yl/edit",
method: "post",
data,
});
}
const print=(data)=>{
return request({
url: "/yl/print",
method: "post",
data,
});
}
const rollback=(data)=>{
return request({
url: "/yl/rollback",
method: "post",
data,
});
}
export default init

@ -0,0 +1,104 @@
<template>
<el-container>
<el-container style="padding-top: 10">
<el-container>
<el-main>
<VxeGrid ref="vGrid" :scroll-y="{enabled: true}" :scroll-x="{enabled: true,gt:10}" v-bind="gridOptions">
<template #name_czbh="{ data }">
<ProjectSelect ref="projectSelectRef" clearable :_style="{width:'150px'}" />
</template>
<template #name_xqch="{ data }">
<ProjectSelect ref="xqProjectSelectRef" clearable :_style="{width:'150px'}" />
</template>
</VxeGrid>
</el-main>
</el-container>
</el-container>
</el-container>
</template>
<script>
import ProjectSelect from "@/components/ProjectSelect/index.vue";
import init from "./gd";
export default {
name:'YLSLGL',
components: {ProjectSelect},
data(){
return{
gridOptions:{},
}
},
created(){
const {options}=init(this)
this.gridOptions=options
},
}
</script>
<style lang="scss" scoped >
.el-header{margin:0;padding: 5px;height:auto;
.el-input{
width: 140px;
}
.el-select{
width: 140px;
}
}
.el-container{padding: 0;margin:0;}
.el-main{padding: 0;}
.el-col{padding: 0;height: 32px;}
.el-aside{background: #fff;padding: 0}
.el-container{padding: 0}
.el-row {}
.el-row:last-child {margin-bottom: 0; }
.tableStyles{
background: #0a76a4;
}
.my-dropdown {
width: 400px;
height: 400px;
background-color: #fff;
border: 1px solid #dcdfe6;
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
font-size: 12px;
}
.mytable1{
}
.borderClass{
}
.vxe-input {
display: inline-block !important;
position: relative !important;
width: auto;
}
.el-input {
display: inline-block !important;
position: relative !important;
width: auto;
}
.keyword-lighten {
color: #000;
background-color: #FFFF00;
}
.vxe-textarea--inner {
line-height: inherit;
}
.el-form-item__label-wrap {
margin-left: 0px !important;
float: left;
}
.fontClass{
font-size: 12px;
font-weight: bold;
}
</style>

@ -3,11 +3,14 @@ import { VXETable } from 'vxe-table'
import XLSX from 'xlsx'
const init=function (that){
let list=[]
const butClick=function (){
data.options.formConfig.data.dcCh=that.$refs.projectSelectRef.getDcch()
if (!data.options.formConfig.data.dcCh){
VXETable.modal.message({ content: '请选择船号', status: 'warning' })
return
}
getData(data.options.formConfig.data).then(res=>{
list=res.data
data.options.data=res.data
})
}
@ -32,6 +35,7 @@ const init=function (that){
}
核对数据(_data).then(res=>{
const data=res.data
VXETable.modal.message({ content: `核对结束,匹配${data.length}张套料图`, status: 'warning' })
for (const item of data) {
for (let it of list) {
if (it.id===item.id){
@ -104,13 +108,14 @@ const init=function (that){
const data={
options:{
height:800,
height:830,
align:'center',
border: true,
resizable: true,
keepSource:true,
size:'mini',
showOverflow: true,
showHeaderOverflow:true,
editConfig:{trigger: 'click', mode: 'cell', showStatus: true},
highlightCurrentRow:true,
formConfig:{
@ -118,7 +123,7 @@ const init=function (that){
dcCh:'',
dcPl:'',
tzbh:'',
status:'',
status:'0',
xqch:'',
xqpl:'',
},
@ -131,7 +136,7 @@ const init=function (that){
},
{span: 12,
children:[
{ span: 14,align:'right',itemRender: {
{ span: 15,align:'right',itemRender: {
name: '$button', props: {content:'查询',status:'primary'},events:{click:butClick}
}
},
@ -158,31 +163,100 @@ const init=function (that){
],
},
columns:[
{ field: 'id', title: 'ID', width: 150 },
{ field: '余料编号', title: '余料编号', width: 150 },
{ field: '规格', title: '规格', width: 150 },
{ field: '板厚', title: '板厚', width: 100 },
{ field: '板宽', title: '板宽', width: 100 },
{ field: '板长', title: '板长', width: 100 },
{ field: '炉批号', title: '炉批号', width: 150 },
{ field: '重量', title: '重量', width: 120 },
{ field: '数量', title: '数量', width: 80 },
{ field: '垛位', title: '垛位', width: 100 },
{ field: '层数', title: '层数', width: 80 },
{ field: '来源船号', title: '来源船号', width: 120 },
{ field: '来源批量', title: '来源批量', width: 120 },
{ field: '来源图纸', title: '来源图纸', width: 150 },
{ field: '物品型号', title: '物品型号', width: 150 },
{ field: '物品规格', title: '物品规格', width: 150 },
{ field: '切割日期', title: '切割日期', width: 150 },
{ field: '使用船号', title: '使用船号', width: 120 },
{ field: '使用批量', title: '使用批量', width: 120 },
{ field: '使用分段', title: '使用分段', width: 120 },
{ field: '使用图纸', title: '使用图纸', width: 150 },
{ field: '使用日期', title: '使用日期', width: 150 },
{type:'checkbox',title:'序号'},
{type:'seq',title:''},
// { field: 'id', title: 'ID', width: 150 },
{ field: '余料编号', title: '余料编号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '规格', title: '规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板厚', title: '板厚', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板宽', title: '板宽', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板长', title: '板长', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '炉批号', title: '炉批号', width: 140,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '重量', title: '重量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '数量', title: '数量', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '垛位', title: '垛位', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '层数', title: '层数', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用船号', title: '使用船号', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用批量', title: '使用批量', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用分段', title: '使用分段', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用图纸', title: '使用图纸', width: 150,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用日期', title: '使用日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源船号', title: '来源船号', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源批量', title: '来源批量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源图纸', title: '来源图纸', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '切割日期', title: '切割日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品型号', title: '物品型号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品规格', title: '物品规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{field: '使用状态', title: '使用状态', width: 120, formatter:formatUseStatus}
],
data:list,
data:[],
},
}

@ -0,0 +1,178 @@
import request from '@/utils/request'
import { VXETable } from 'vxe-table'
import XLSX from 'xlsx'
const init=function (that){
const butClick=function (){
data.options.formConfig.data.dcCh=that.$refs.projectSelectRef.getDcch()
if (!data.options.formConfig.data.dcCh){
VXETable.modal.message({ content: '请选择船号', status: 'warning' })
return
}
getData(data.options.formConfig.data).then(res=>{
data.options.data=res.data
})
}
const 保存=()=>{
const updateRecord=that.$refs.vGrid.getUpdateRecords()
if (updateRecord.length>0){
edit(updateRecord).then(res=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const useStatus=[
{label:'未使用',value:'0'},
{label:'未打印',value:'1'},
{label:'已打印',value:'2'},
{label:'已切割',value:'3'},
]
const formatUseStatus=({cellValue})=>{
for (const item of useStatus) {
if(item.value===cellValue){
return item.label
}
}
return cellValue
}
const data={
options:{
height:830,
align:'center',
border: true,
resizable: true,
keepSource:true,
size:'mini',
showOverflow: true,
showHeaderOverflow:true,
editConfig:{trigger: 'click', mode: 'cell', showStatus: true},
highlightCurrentRow:true,
formConfig:{
data:{
dcCh:'',
dcPl:'',
tzbh:'',
status:'0',
},
items:[
{ field: 'dcCh', title: '来源船只', span: 3,slots: { default: 'name_czbh' } },
{ field: 'dcPl', title: '来源批量', span: 3 ,itemRender: {name: '$input'}},
{ field: 'tzbh', title: '来源图号', span: 3 ,itemRender: {name: '$input'}},
{ field: 'status', title: '使用状态', span: 3 ,
itemRender: {name: '$select',props:{options:useStatus,disabled:true}}
},
{span: 12,
children:[
{ span: 21,align:'right',itemRender: {
name: '$button', props: {content:'查询',status:'primary'},events:{click:butClick}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'保存',status:'primary'},events:{click:保存}
}
},
]
},
],
},
columns:[
{type:'checkbox',title:'序号'},
{type:'seq',title:''},
{ field: '余料编号', title: '余料编号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '规格', title: '规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板厚', title: '板厚', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板宽', title: '板宽', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板长', title: '板长', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '炉批号', title: '炉批号', width: 140,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '重量', title: '重量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '数量', title: '数量', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '垛位', title: '垛位', width: 100,
editRender:{name:'$input',},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '层数', title: '层数', width: 80,
editRender:{name:'$input',},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源船号', title: '来源船号', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源批量', title: '来源批量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源图纸', title: '来源图纸', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '切割日期', title: '切割日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品型号', title: '物品型号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品规格', title: '物品规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{field: '使用状态', title: '使用状态', width: 120, formatter:formatUseStatus}
],
data:[],
},
}
return data
}
const getData=(data)=>{
return request({
url: "/yl/list",
method: "post",
data,
});
}
const edit=(data)=>{
return request({
url: "/yl/edit",
method: "post",
data,
});
}
export default init

@ -21,6 +21,7 @@ import ProjectSelect from "@/components/ProjectSelect/index.vue";
import init from "./index";
export default {
name:'YLSLGL',
components: {ProjectSelect},
data(){
return{

@ -1,687 +1,40 @@
<template>
<!-- <el-dialog title="收货地址" :visible.sync="dialogFormVisible">-->
<el-container>
<el-header style="width: 100%; height: 80px;font-size: 12px">
<el-form :inline="true" label-width="60px" label-position="left">
<el-row>
<el-col :span="18">
<el-form-item label="船号:">
<vxe-pulldown ref="xDown4" transfer >
<template #default>
<vxe-input
v-model="queryParam.dcch"
placeholder="船号"
style="height: 28px;
line-height: 28px; width: 140px;"
suffix-icon="vxe-icon--search"
@keyup="keyupEvent4"
@focus="focusEvent4"
/>
</template>
<template #dropdown>
<div class="my-dropdown mytable " style="width: 250px">
<vxe-grid
highlight-hover-row
height="auto"
:data="projectData"
:columns="projectColumns"
@cell-click="cellClickEvent"
show-overflow
>
<template #wgbsEdit="{ row}">
<vxe-checkbox v-model="row.wgbs" checked-value="Y" unchecked-value="N" disabled ></vxe-checkbox>
</template>
</vxe-grid>
</div>
</template>
</vxe-pulldown>
</el-form-item>
<el-form-item label="批量:">
<el-input v-model="queryParam.pl" type="search" placeholder="批量" ></el-input>
</el-form-item>
<!-- <el-form-item label="分段:">-->
<!-- <el-input v-model="queryParam.fd" type="search" placeholder="分段" ></el-input>-->
<!-- </el-form-item>-->
</el-col>
<el-col :span="6">
<el-form-item style="float: right" >
<el-button type="success" @click="initList"></el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20" >
</el-col>
<el-col :span="4" >
<el-form-item style="float: right" >
<!-- <el-button type="success" @click="slpgclick"></el-button>-->
<!-- <el-button type="success" @click="xdClick"></el-button>-->
<!-- <el-button type="success" @click="saveclick"></el-button>-->
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-header>
<el-container style="padding-top: 0px">
<el-container style="padding-top: 10">
<el-container>
<el-main>
<div class="mytable">
<vxe-grid
id="id"
ref="xGrid"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn"
highlight-current-row
:data="list"
:scroll-y="{enabled: true}"
:edit-config="{trigger: 'click', mode: 'cell', showStatus: true}"
highlight-hover-row
show-overflow
show-header-overflow
>
</vxe-grid>
</div>
<VxeGrid ref="vGrid" :scroll-y="{enabled: true}" :scroll-x="{enabled: true,gt:10}" v-bind="gridOptions">
<template #name_czbh="{ data }">
<ProjectSelect ref="projectSelectRef" clearable :_style="{width:'150px'}" />
</template>
<template #name_xqch="{ data }">
<ProjectSelect ref="xqProjectSelectRef" clearable :_style="{width:'150px'}" />
</template>
</VxeGrid>
</el-main>
</el-container>
</el-container>
</el-container>
</template>
<script>
import {
getPgdBase
} from '@/api/jhzxgl/pgd'
import {
getYlList
} from '@/api/jhzx/ylxx'
import { mapGetters } from 'vuex'
import XEUtils from 'xe-utils'
import {null2str} from "@/utils/rpkj";
import { getToken } from '@/utils/auth'
import { startLoading, endLoading } from '@/utils'
import { Message } from 'element-ui'
import ProjectSelect from "@/components/ProjectSelect/index.vue";
import init from "./ylgl/ylgl";
export default {
name:'Ylxx',
data() {
return {
queryParam: {
dcch:'',
pl:'',
fd:'',
fkyy:'',
zt:'01'
},
statusOptions: [
{
value: "01",
label: "编制",
},
{
value: "02",
label: "派工",
},
{
value: "03",
label: "接收",
},
{
value: "04",
label: "反馈",
},
],
inParam:{
slry:'',
slks:'',
sljs:'',
dw:'',
scry:'',
scdw:''
},
list: [],
heads: { token: getToken() },
uploadAction: process.env.VUE_APP_BASE_API + '/dmCzplpNew/uploadPl',
dictData:{},
height: '500px',
projectData:[],
projectData1:[],
projectColumns: [
{field: 'cbbm', title: '船号',width: 110},
{ field: 'wgbs', title: '完工标识', width: 80,
slots:{
default: 'wgbsEdit'
},
},
],
tableColumn: [
{ type: 'seq', width: 40, title: '序号' },
{
field: 'dcCh',
title: '船号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcPl',
title: '批量',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcZl',
title: '组立',
width: 120,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcHx',
title: '划线',formatter: ['dictFormat','HXLX'],
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'tzbh',
title: '图纸编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylbh',
title: '余料编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'wpxh',
title: '物品型号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'wpgg',
title: '物品规格',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylzd1',
title: '余料规格',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 't1',
title: '厚',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'b1',
title: '宽',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'l',
title: '长',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'sl',
title: '张数',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'jldw',
title: '计量单位',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylzl',
title: '余料重量(KG)',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'hxfl',
title: '余料分类',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcLph',
title: '炉批号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'scrq',
title: '余料生成日期',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
// {
// field: 'syrq',
// title: '使',
// width: 120,
// filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
// filterRender: { name: 'FilterCombination' }
// },
{
field: 'sybs',
title: '标识',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcCh2',
title: '使用船号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcPl2',
title: '使用批号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylkwh',
title: '余料存放垛位',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylzd2',
title: '层数',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'tzbh1',
title: '使用余料图纸编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'ysrq',
title: '使用日期',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylcjbm',
title: '余料存放跨',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'gzzx',
title: '工作中心',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'bz',
title: '备注',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'ylsxh',
title: '余料流水号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'hxbh',
title: '内部编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'xh',
title: '内部序号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'bzry',
title: '编制人员',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'bzrq',
title: '编制日期',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'zt',
title: '状态',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
]
components: {ProjectSelect},
data(){
return{
gridOptions:{},
}
},
computed: {
...mapGetters(['name', 'bmbm'])
created(){
const {options}=init(this)
this.gridOptions=options
},
created() {
window.addEventListener('resize', this.getHeight)
this.getHeight()
this.initBase()
},
methods: {
cellClickEvent({row}) {
this.queryParam.dcch = row.cbbm
this.$refs.xDown4.hidePanel()
},
focusEvent4() {
this.$refs.xDown4.showPanel()
},
keyupEvent4() {
if (this.queryParam.dcch) {
this.projectData = this.projectData1.filter(row => row.cbbm.indexOf(this.queryParam.dcch.toUpperCase()) > -1)
} else {
this.projectData = this.projectData1.slice(0)
}
},
ztChange(){
this.list=[]
},
bzClick(){
console.log(this.dictData.gxry)
console.log(this.inParam.scdw)
this.dictData.gxry= this.dictData.gxry.filter(fst=>fst.szcs===this.inParam.scdw)
console.log(this.dictData.gxry)
},
updates2(){
let selectRecords = this.$refs.xGrid.getCheckboxRecords()
if(selectRecords.length>0){
for(let i = 0; i < selectRecords.length; i++) {
selectRecords[i].pscdw = this.inParam.scdw
selectRecords[i].pscry = this.inParam.scry
}
this.$refs.xGrid.updateData(this.list)
}
},
updates(type){
let selectRecords = this.$refs.xGrid.getCheckboxRecords()
if(selectRecords.length>0){
for(let i = 0; i < selectRecords.length; i++) {
if(type==='1'){
selectRecords[i].slksrq = this.inParam.slks
}else if (type==='2'){
selectRecords[i].pkFkry = this.inParam.slry
selectRecords[i].pkFkrq = this.inParam.sljs
}
}
this.$refs.xGrid.updateData(this.list)
}
},
activeRowMethod({ row, rowIndex }){
// if(row.zt==="01"){
// return true
// }else{
// return false
// }
return true;
},
initBase(){
getPgdBase({}).then(res=>{
console.log(res.data)
this.dictData = res.data
this.projectData=res.data.cbbm
this.projectData1=res.data.cbbm
})
},
plClick(){
let selectRecords = this.$refs.xGrid.getCheckboxRecords()
if(selectRecords.length>0){
for(let i = 0; i < selectRecords.length; i++) {
selectRecords[i].fkyy = this.queryParam.fkyy
}
this.$refs.xGrid.updateData(this.list)
}
},
saveclick(){
if(this.queryParam.zt!=='03'){
return
}
let obj=this.$refs.xGrid.getCheckboxRecords()
// if(obj.length===0){
// this.$message({ message: '', type: 'warning' })
// return
// }
savePkPgdFk(obj).then(res=>{
if(res.success){
this.initList()
}
})
},
slpgclick(){
// if(this.queryParam.zt!=="01"){
// return
// }
let obj=this.$refs.xGrid.getCheckboxRecords()
if(obj.length===0){
return
}
if(this.queryParam.zt==='02'){
this.$confirm('取消派工?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() =>{
savePkPgdXdBack(obj).then(res=>{
if(res.success){
this.$message({ message: '取消派工成功', type: 'success' })
this.initList()
}
})
})
}else if (this.queryParam.zt==='01') {
this.$confirm('派工?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() =>{
savePkPgdXd(obj).then(res=>{
if(res.success){
this.initList()
}
})
})
}
},
xdClick(){
if(this.queryParam.zt!=="02"){
return
}
let obj=this.$refs.xGrid.getCheckboxRecords()
if(obj.length===0){
return
}
// if(this.queryParam.zt==='03'){
// this.$confirm('', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(() =>{
// saveQgPgdXdBack(obj).then(res=>{
// if(res.success){
// this.$message({ message: '', type: 'success' })
// this.initList()
// }
// })
//
// })
// }else {
this.$confirm('接收?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() =>{
savePkPgdJs(obj).then(res=>{
if(res.success){
this.$message({ message: '接收成功', type: 'success' })
this.initList()
}
})
})
// }
},
initList() {
// if (this.queryParam.dcch === '') {
// this.$message.warning('')
// return
// }
getYlList(this.queryParam).then((res) => {
console.log(res.data)
this.list = res.data
if (this.$refs.xGrid) {
this.$refs.xGrid.loadData(this.list)
console.log(this.list)
}
})
},
selectChange(row) {
// this.$refs.xGrid.clearActived() //
this.$refs.xGrid.clearEdit() //
// this.$refs.xGrid.setEditCell(row.row, row.column.property) //
null2str(row.row)
},
getHeight() {
this.height = window.innerHeight - 190
},
}
}
</script>
<style lang="scss" scoped >
.el-header{margin:0;padding: 5px;height:auto;

@ -0,0 +1,751 @@
<template>
<!-- <el-dialog title="收货地址" :visible.sync="dialogFormVisible">-->
<el-container>
<el-header style="width: 100%; height: 80px;font-size: 12px">
<el-form :inline="true" label-width="60px" label-position="left">
<el-row>
<el-col :span="18">
<el-form-item label="船号:">
<vxe-pulldown ref="xDown4" transfer >
<template #default>
<vxe-input
v-model="queryParam.dcch"
placeholder="船号"
style="height: 28px;
line-height: 28px; width: 140px;"
suffix-icon="vxe-icon--search"
@keyup="keyupEvent4"
@focus="focusEvent4"
/>
</template>
<template #dropdown>
<div class="my-dropdown mytable " style="width: 250px">
<vxe-grid
highlight-hover-row
height="auto"
:data="projectData"
:columns="projectColumns"
@cell-click="cellClickEvent"
show-overflow
>
<template #wgbsEdit="{ row}">
<vxe-checkbox v-model="row.wgbs" checked-value="Y" unchecked-value="N" disabled ></vxe-checkbox>
</template>
</vxe-grid>
</div>
</template>
</vxe-pulldown>
</el-form-item>
<el-form-item label="批量:">
<el-input v-model="queryParam.pl" type="search" placeholder="批量" ></el-input>
</el-form-item>
<!-- <el-form-item label="分段:">-->
<!-- <el-input v-model="queryParam.fd" type="search" placeholder="分段" ></el-input>-->
<!-- </el-form-item>-->
</el-col>
<el-col :span="6">
<el-form-item style="float: right" >
<el-button type="success" @click="initList"></el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20" >
</el-col>
<el-col :span="4" >
<el-form-item style="float: right" >
<!-- <el-button type="success" @click="slpgclick"></el-button>-->
<!-- <el-button type="success" @click="xdClick"></el-button>-->
<!-- <el-button type="success" @click="saveclick"></el-button>-->
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-header>
<el-container style="padding-top: 0px">
<el-container>
<el-main>
<div class="mytable">
<vxe-grid
id="id"
ref="xGrid"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn"
highlight-current-row
:data="list"
:scroll-y="{enabled: true}"
:edit-config="{trigger: 'click', mode: 'cell', showStatus: true}"
highlight-hover-row
show-overflow
show-header-overflow
>
</vxe-grid>
</div>
</el-main>
</el-container>
</el-container>
</el-container>
</template>
<script>
import {
getPgdBase
} from '@/api/jhzxgl/pgd'
import {
getYlList
} from '@/api/jhzx/ylxx'
import { mapGetters } from 'vuex'
import XEUtils from 'xe-utils'
import {null2str} from "@/utils/rpkj";
import { getToken } from '@/utils/auth'
import { startLoading, endLoading } from '@/utils'
import { Message } from 'element-ui'
export default {
name:'Ylxx',
data() {
return {
queryParam: {
dcch:'',
pl:'',
fd:'',
fkyy:'',
zt:'01'
},
statusOptions: [
{
value: "01",
label: "编制",
},
{
value: "02",
label: "派工",
},
{
value: "03",
label: "接收",
},
{
value: "04",
label: "反馈",
},
],
inParam:{
slry:'',
slks:'',
sljs:'',
dw:'',
scry:'',
scdw:''
},
list: [],
heads: { token: getToken() },
uploadAction: process.env.VUE_APP_BASE_API + '/dmCzplpNew/uploadPl',
dictData:{},
height: '500px',
projectData:[],
projectData1:[],
projectColumns: [
{field: 'cbbm', title: '船号',width: 110},
{ field: 'wgbs', title: '完工标识', width: 80,
slots:{
default: 'wgbsEdit'
},
},
],
tableColumn: [
{ type: 'seq', width: 40, title: '序号' },
{
field: 'dcCh',
title: '船号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcPl',
title: '批量',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcZl',
title: '组立',
width: 120,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcHx',
title: '划线',formatter: ['dictFormat','HXLX'],
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'tzbh',
title: '图纸编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylbh',
title: '余料编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'wpxh',
title: '物品型号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'wpgg',
title: '物品规格',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylzd1',
title: '余料规格',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 't1',
title: '厚',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'b1',
title: '宽',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'l',
title: '长',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'sl',
title: '张数',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'jldw',
title: '计量单位',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylzl',
title: '余料重量(KG)',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'hxfl',
title: '余料分类',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcLph',
title: '炉批号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'scrq',
title: '余料生成日期',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
// {
// field: 'syrq',
// title: '使',
// width: 120,
// filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
// filterRender: { name: 'FilterCombination' }
// },
{
field: 'sybs',
title: '标识',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcCh2',
title: '使用船号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'dcPl2',
title: '使用批号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylkwh',
title: '余料存放垛位',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylzd2',
title: '层数',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'tzbh1',
title: '使用余料图纸编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'ysrq',
title: '使用日期',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'ylcjbm',
title: '余料存放跨',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'gzzx',
title: '工作中心',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'bz',
title: '备注',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'ylsxh',
title: '余料流水号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'hxbh',
title: '内部编号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'xh',
title: '内部序号',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'bzry',
title: '编制人员',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'bzrq',
title: '编制日期',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
,
{
field: 'zt',
title: '状态',
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
}
]
}
},
computed: {
...mapGetters(['name', 'bmbm'])
},
created() {
window.addEventListener('resize', this.getHeight)
this.getHeight()
this.initBase()
},
methods: {
cellClickEvent({row}) {
this.queryParam.dcch = row.cbbm
this.$refs.xDown4.hidePanel()
},
focusEvent4() {
this.$refs.xDown4.showPanel()
},
keyupEvent4() {
if (this.queryParam.dcch) {
this.projectData = this.projectData1.filter(row => row.cbbm.indexOf(this.queryParam.dcch.toUpperCase()) > -1)
} else {
this.projectData = this.projectData1.slice(0)
}
},
ztChange(){
this.list=[]
},
bzClick(){
console.log(this.dictData.gxry)
console.log(this.inParam.scdw)
this.dictData.gxry= this.dictData.gxry.filter(fst=>fst.szcs===this.inParam.scdw)
console.log(this.dictData.gxry)
},
updates2(){
let selectRecords = this.$refs.xGrid.getCheckboxRecords()
if(selectRecords.length>0){
for(let i = 0; i < selectRecords.length; i++) {
selectRecords[i].pscdw = this.inParam.scdw
selectRecords[i].pscry = this.inParam.scry
}
this.$refs.xGrid.updateData(this.list)
}
},
updates(type){
let selectRecords = this.$refs.xGrid.getCheckboxRecords()
if(selectRecords.length>0){
for(let i = 0; i < selectRecords.length; i++) {
if(type==='1'){
selectRecords[i].slksrq = this.inParam.slks
}else if (type==='2'){
selectRecords[i].pkFkry = this.inParam.slry
selectRecords[i].pkFkrq = this.inParam.sljs
}
}
this.$refs.xGrid.updateData(this.list)
}
},
activeRowMethod({ row, rowIndex }){
// if(row.zt==="01"){
// return true
// }else{
// return false
// }
return true;
},
initBase(){
getPgdBase({}).then(res=>{
console.log(res.data)
this.dictData = res.data
this.projectData=res.data.cbbm
this.projectData1=res.data.cbbm
})
},
plClick(){
let selectRecords = this.$refs.xGrid.getCheckboxRecords()
if(selectRecords.length>0){
for(let i = 0; i < selectRecords.length; i++) {
selectRecords[i].fkyy = this.queryParam.fkyy
}
this.$refs.xGrid.updateData(this.list)
}
},
saveclick(){
if(this.queryParam.zt!=='03'){
return
}
let obj=this.$refs.xGrid.getCheckboxRecords()
// if(obj.length===0){
// this.$message({ message: '', type: 'warning' })
// return
// }
savePkPgdFk(obj).then(res=>{
if(res.success){
this.initList()
}
})
},
slpgclick(){
// if(this.queryParam.zt!=="01"){
// return
// }
let obj=this.$refs.xGrid.getCheckboxRecords()
if(obj.length===0){
return
}
if(this.queryParam.zt==='02'){
this.$confirm('取消派工?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() =>{
savePkPgdXdBack(obj).then(res=>{
if(res.success){
this.$message({ message: '取消派工成功', type: 'success' })
this.initList()
}
})
})
}else if (this.queryParam.zt==='01') {
this.$confirm('派工?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() =>{
savePkPgdXd(obj).then(res=>{
if(res.success){
this.initList()
}
})
})
}
},
xdClick(){
if(this.queryParam.zt!=="02"){
return
}
let obj=this.$refs.xGrid.getCheckboxRecords()
if(obj.length===0){
return
}
// if(this.queryParam.zt==='03'){
// this.$confirm('', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(() =>{
// saveQgPgdXdBack(obj).then(res=>{
// if(res.success){
// this.$message({ message: '', type: 'success' })
// this.initList()
// }
// })
//
// })
// }else {
this.$confirm('接收?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() =>{
savePkPgdJs(obj).then(res=>{
if(res.success){
this.$message({ message: '接收成功', type: 'success' })
this.initList()
}
})
})
// }
},
initList() {
// if (this.queryParam.dcch === '') {
// this.$message.warning('')
// return
// }
getYlList(this.queryParam).then((res) => {
console.log(res.data)
this.list = res.data
if (this.$refs.xGrid) {
this.$refs.xGrid.loadData(this.list)
console.log(this.list)
}
})
},
selectChange(row) {
// this.$refs.xGrid.clearActived() //
this.$refs.xGrid.clearEdit() //
// this.$refs.xGrid.setEditCell(row.row, row.column.property) //
null2str(row.row)
},
getHeight() {
this.height = window.innerHeight - 190
},
}
}
</script>
<style lang="scss" scoped >
.el-header{margin:0;padding: 5px;height:auto;
.el-input{
width: 140px;
}
.el-select{
width: 140px;
}
}
.el-container{padding: 0;margin:0;}
.el-main{padding: 0;}
.el-col{padding: 0;height: 32px;}
.el-aside{background: #fff;padding: 0}
.el-container{padding: 0}
.el-row {}
.el-row:last-child {margin-bottom: 0; }
.tableStyles{
background: #0a76a4;
}
.my-dropdown {
width: 400px;
height: 400px;
background-color: #fff;
border: 1px solid #dcdfe6;
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
font-size: 12px;
}
.mytable1{
}
.borderClass{
}
.vxe-input {
display: inline-block !important;
position: relative !important;
width: auto;
}
.el-input {
display: inline-block !important;
position: relative !important;
width: auto;
}
.keyword-lighten {
color: #000;
background-color: #FFFF00;
}
.vxe-textarea--inner {
line-height: inherit;
}
.el-form-item__label-wrap {
margin-left: 0px !important;
float: left;
}
.fontClass{
font-size: 12px;
font-weight: bold;
}
</style>

@ -0,0 +1,29 @@
<template>
<vxe-modal>
<VxeGrid v-bind="gridOptions" v-on="gridEvents"/>
</vxe-modal>
</template>
<script>
import init from '../lib/ylmodal'
export default {
name:'YlModal',
data(){
return {
showFlag:false,
gridOptions:{},
gridEvents:{}
}
},
created(){
const {options}=init(this)
this.gridOptions=options
},
methods:{
show(){
this.showFlag=true
},
}
}
</script>

@ -0,0 +1,41 @@
<template>
<el-container>
<el-container style="padding-top: 10">
<el-container>
<el-main>
<VxeGrid ref="vGrid" :scroll-y="{enabled: true}" :scroll-x="{enabled: true}" v-bind="gridOptions">
<template #name_czbh="{ data }">
<ProjectSelect ref="projectSelectRef" clearable :_style="{width:'150px'}" />
</template>
</VxeGrid>
</el-main>
</el-container>
</el-container>
<YlModal ref="ylModal"/>
</el-container>
</template>
<script>
import ProjectSelect from "@/components/ProjectSelect/index.vue";
import YlModal from "@/views/ylgl/comp/ylmodal.vue";
import init from './lib/kc'
export default {
name:'ylkc',
components: {YlModal, ProjectSelect},
data(){
return{
gridOptions:{}
}
},
created(){
const {options}=init(this)
this.gridOptions=options
},
methods:{
tq:()=>{
this.$refs.ylModal.show()
}
}
}
</script>

@ -0,0 +1,220 @@
import request from '@/utils/request'
import { VXETable } from 'vxe-table'
const init=function (that){
const butClick=function (){
data.options.formConfig.data.dcCh=that.$refs.projectSelectRef.getDcch()
if (!data.options.formConfig.data.dcCh){
VXETable.modal.message({ content: '请选择船号', status: 'warning' })
return
}
getData(data.options.formConfig.data).then(res=>{
data.options.data=res.data
})
}
const 保存=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if (list.length>0){
edit(list).then(res=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const 退回=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if(list.length>0){
rollback(list).then(()=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const useStatus=[
{label:'未使用',value:'0'},
{label:'未打印',value:'1'},
{label:'已打印',value:'2'},
{label:'已切割',value:'3'},
]
const formatUseStatus=({cellValue})=>{
for (const item of useStatus) {
if(item.value===cellValue){
return item.label
}
}
return cellValue
}
const data={
options:{
height:830,
align:'center',
border: true,
resizable: true,
keepSource:true,
size:'mini',
showOverflow: true,
showHeaderOverflow:true,
editConfig:{trigger: 'click', mode: 'cell', showStatus: true},
highlightCurrentRow:true,
formConfig:{
data:{
dcCh:'',
dcPl:'',
tzbh:'',
},
items:[
{ field: 'dcCh', title: '来源船只', span: 3,slots: { default: 'name_czbh' } },
{ field: 'dcPl', title: '来源批量', span: 3 ,itemRender: {name: '$input'}},
{ field: 'tzbh', title: '来源图号', span: 3 ,itemRender: {name: '$input'}},
{ field: 'status', title: '使用状态', span: 3 ,
itemRender: {name: '$select',props:{options:useStatus}}
},
{span: 12,
children:[
{ span: 18,align:'right',itemRender: {
name: '$button', props: {content:'查询',status:'primary'},events:{click:butClick}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'保存',status:'primary'},events:{click:保存}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'退回',status:'primary'},events:{click:退回}
}
},
]
},
],
},
columns:[
{type:'checkbox',title:'序号'},
{type:'seq',title:''},
{ field: '余料编号', title: '余料编号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '规格', title: '规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板厚', title: '板厚', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板宽', title: '板宽', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板长', title: '板长', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '炉批号', title: '炉批号', width: 140,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '重量', title: '重量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '数量', title: '数量', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '垛位', title: '垛位', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '层数', title: '层数', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用船号', title: '使用船号', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用批量', title: '使用批量', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用分段', title: '使用分段', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用图纸', title: '使用图纸', width: 150,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用日期', title: '使用日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源船号', title: '来源船号', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源批量', title: '来源批量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源图纸', title: '来源图纸', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '切割日期', title: '切割日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品型号', title: '物品型号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品规格', title: '物品规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{field: '使用状态', title: '使用状态', width: 120, formatter:formatUseStatus}
],
data:[],
},
}
return data
}
const getData=(data)=>{
return request({
url: "/yl/list",
method: "post",
data,
});
}
const edit=(data)=>{
return request({
url: "/yl/edit",
method: "post",
data,
});
}
const rollback=(data)=>{
return request({
url: "/yl/rollback",
method: "post",
data,
});
}
export default init

@ -0,0 +1,306 @@
import request from '@/utils/request'
import { VXETable } from 'vxe-table'
import XLSX from 'xlsx'
const init=function (that){
const butClick=function (){
data.options.formConfig.data.dcCh=that.$refs.projectSelectRef.getDcch()
if (!data.options.formConfig.data.dcCh){
VXETable.modal.message({ content: '请选择船号', status: 'warning' })
return
}
getData(data.options.formConfig.data).then(res=>{
data.options.data=res.data
})
}
const 核对=function (){
const dcCh=that.$refs.xqProjectSelectRef.getDcch();
const dcPl=data.options.formConfig.data.xqpl
if (!dcCh||!dcPl){
VXETable.modal.message({ content: '请选择需求船号和批量', status: 'warning' })
return
}
const table=that.$refs.vGrid
const list=table.getCheckboxRecords()
if (list.length===0){
VXETable.modal.message({ content: '请选择数据', status: 'warning' })
return
}
const _data={
dcCh:dcCh,
dcPl:dcPl,
ylList:list
}
核对数据(_data).then(res=>{
const data=res.data
VXETable.modal.message({ content: `核对结束,匹配${data.length}张套料图`, status: 'warning' })
for (const item of data) {
for (let it of list) {
if (it.id===item.id){
it=Object.assign(it,item)
break;
}
}
}
})
}
const 保存=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if (list.length>0){
edit(list).then(res=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const 打印=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if (list.length>0){
print(list).then(res=>{
const workBook = XLSX.utils.book_new();
const _data=list.map(item=>{
return {
船号:item.使用船号,
批量:item.使用批量,
图纸编号:item.使用图纸,
余料编号:item.余料编号,
垛位:item.垛位
}
})
const sheet=XLSX.utils.json_to_sheet(_data)
XLSX.utils.book_append_sheet(workBook, sheet, "sheet");
XLSX.writeFile(workBook, `${data.options.formConfig.dcCh}-${data.options.formConfig.dcPl}余料上料计划.xlsx`)
butClick()
})
}
}
const 退回=()=>{
const list=that.$refs.vGrid.getCheckboxRecords()
if(list.length>0){
rollback(list).then(()=>{
VXETable.modal.message({ content: '成功', status: 'success' })
butClick()
})
}
}
const useStatus=[
{label:'未使用',value:'0'},
{label:'未打印',value:'1'},
{label:'已打印',value:'2'},
{label:'已切割',value:'3'},
]
const formatUseStatus=({cellValue})=>{
for (const item of useStatus) {
if(item.value===cellValue){
return item.label
}
}
return cellValue
}
const data={
options:{
height:830,
align:'center',
border: true,
resizable: true,
keepSource:true,
size:'mini',
showOverflow: true,
showHeaderOverflow:true,
editConfig:{trigger: 'click', mode: 'cell', showStatus: true},
highlightCurrentRow:true,
formConfig:{
data:{
dcCh:'',
dcPl:'',
tzbh:'',
status:'0',
xqch:'',
xqpl:'',
},
items:[
{ field: 'dcCh', title: '来源船只', span: 3,slots: { default: 'name_czbh' } },
{ field: 'dcPl', title: '来源批量', span: 3 ,itemRender: {name: '$input'}},
{ field: 'tzbh', title: '来源图号', span: 3 ,itemRender: {name: '$input'}},
{ field: 'status', title: '使用状态', span: 3 ,
itemRender: {name: '$select',props:{options:useStatus}}
},
{span: 12,
children:[
{ span: 15,align:'right',itemRender: {
name: '$button', props: {content:'查询',status:'primary'},events:{click:butClick}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'核对',status:'primary'},events:{click:核对}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'保存',status:'primary'},events:{click:保存}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'打印',status:'primary'},events:{click:打印}
}
},
{ align:'right',itemRender: {
name: '$button', props: {content:'退回',status:'primary'},events:{click:退回}
}
},
]
},
{ field: 'xqch', title: '需求船只', span: 3,slots: { default: 'name_xqch' } },
{ field: 'xqpl', title: '需求批量', span: 3 ,itemRender: {name: '$input'}},
],
},
columns:[
{type:'checkbox',title:'序号'},
{type:'seq',title:''},
// { field: 'id', title: 'ID', width: 150 },
{ field: '余料编号', title: '余料编号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '规格', title: '规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板厚', title: '板厚', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板宽', title: '板宽', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '板长', title: '板长', width: 100 ,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '炉批号', title: '炉批号', width: 140,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '重量', title: '重量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '数量', title: '数量', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '垛位', title: '垛位', width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '层数', title: '层数', width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用船号', title: '使用船号', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用批量', title: '使用批量', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用分段', title: '使用分段', width: 120,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用图纸', title: '使用图纸', width: 150,
editRender:{name:'$input'},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '使用日期', title: '使用日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源船号', title: '来源船号', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源批量', title: '来源批量', width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '来源图纸', title: '来源图纸', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '切割日期', title: '切割日期', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品型号', title: '物品型号', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{ field: '物品规格', title: '物品规格', width: 150,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{field: '使用状态', title: '使用状态', width: 120, formatter:formatUseStatus}
],
data:[],
},
}
return data
}
const getData=(data)=>{
return request({
url: "/yl/list",
method: "post",
data,
});
}
const 核对数据=(data)=>{
return request({
url: "/yl/gdsl",
method: "post",
data,
});
}
const edit=(data)=>{
return request({
url: "/yl/edit",
method: "post",
data,
});
}
const print=(data)=>{
return request({
url: "/yl/print",
method: "post",
data,
});
}
const rollback=(data)=>{
return request({
url: "/yl/rollback",
method: "post",
data,
});
}
export default init
Loading…
Cancel
Save