2.切割完成后,存在余料的,自动生成带来源图纸的余料信息 3.余料上料,自动同步余料库存,余料被哪个套料图使用 4.余料报工,切割完成,存在余料的,自动生成带来源图纸余料信息 5.调整技术准备,导出数据筛选从套料图号中获取 6.抛丸完成后自动设置光电为六区,进行切割报工 7.增加看板数据表显示看板图形对应数据master
parent
2fdebc9806
commit
bc6c0b93d8
@ -0,0 +1,184 @@
|
||||
<template>
|
||||
<el-container>
|
||||
<el-container style="padding-top: 10px">
|
||||
<el-container>
|
||||
<el-main>
|
||||
<VxeGrid ref="bFangRef" v-bind="gridOptions" />
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import init from "@/views/cxtj/index";
|
||||
import XEUtils from 'xe-utils'
|
||||
import {getData} from "@/api/kban";
|
||||
|
||||
export default {
|
||||
name:'CXTJ',
|
||||
data(){
|
||||
return{
|
||||
gridOptions:{},
|
||||
}
|
||||
},
|
||||
created(){
|
||||
const {data:options,init:_init}=init(this.$route.path)
|
||||
this.gridOptions=options
|
||||
},
|
||||
mounted(){
|
||||
this.$nextTick(()=>{
|
||||
this.init('yuewc')
|
||||
})
|
||||
},
|
||||
methods:{
|
||||
init(type){
|
||||
getData().then(res=>{
|
||||
const _data=JSON.parse(res.data)
|
||||
|
||||
let begin=XEUtils.toDateString(XEUtils.now(),'yyyy/MM/dd')
|
||||
let end=XEUtils.toDateString(XEUtils.getWhatDay(XEUtils.now(), 1),'yyyy/MM/dd')
|
||||
const endOfMonth=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'last'),'yyyy/MM/dd')
|
||||
switch (type){
|
||||
case 'riwc':
|
||||
this.gridOptions.data= this.完成率计算(_data,begin,end,endOfMonth).point
|
||||
break
|
||||
case 'zhouwc':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 0,1,0),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 1,1,0),'yyyy/MM/dd')
|
||||
this.gridOptions.data= this.完成率计算(_data,begin,end,endOfMonth).point
|
||||
break
|
||||
case 'yuewc':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'first'),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'last'),'yyyy/MM/dd')
|
||||
this.gridOptions.data=this.完成率计算(_data,begin,end,endOfMonth).point
|
||||
break
|
||||
case 'ricl':
|
||||
this.gridOptions.data=this.完成率计算(_data,begin,end,endOfMonth).wc
|
||||
break
|
||||
case 'zhoucl':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 0,1,0),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 1,1,0),'yyyy/MM/dd')
|
||||
this.gridOptions.data= this.完成率计算(_data,begin,end,endOfMonth).wc
|
||||
break
|
||||
case 'yuecl':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'first'),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'last'),'yyyy/MM/dd')
|
||||
this.gridOptions.data= this.完成率计算(_data,begin,end,endOfMonth).wc
|
||||
break
|
||||
}
|
||||
})
|
||||
},
|
||||
完成率计算(data,date,nextDate,endOfMonth){
|
||||
|
||||
const wc=[],point=[]
|
||||
|
||||
const 一跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '二区'&&['7','8'].includes(item.kw))
|
||||
const 一跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '二区'&&['7','8'].includes(item.kw)).length
|
||||
|
||||
let 一跨完成率='100'
|
||||
if (一跨计划数量){
|
||||
一跨完成率=(一跨完成数据.length/一跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'1跨',c:一跨完成率,n:一跨完成率>100?'0':(100-一跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '1跨', quantity: 一跨完成数据.length, weight: 一跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue?.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
const 二跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '三区')
|
||||
const 二跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '三区').length
|
||||
|
||||
let 二跨完成率='100'
|
||||
if (二跨计划数量){
|
||||
二跨完成率=(二跨完成数据.length/二跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'2跨',c:二跨完成率,n:二跨完成率>100?'0':(100-二跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '2跨', quantity: 二跨完成数据.length, weight: 二跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
const 三跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '二区'&&['6','13','14'].includes(item.kw))
|
||||
const 三跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '二区'&&['6','13','14'].includes(item.kw)).length
|
||||
|
||||
let 三跨完成率='100'
|
||||
if (三跨计划数量){
|
||||
三跨完成率=(三跨完成数据.length/三跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'3跨',c:三跨完成率,n:三跨完成率>100?'0':(100-三跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '3跨', quantity: 三跨完成数据.length, weight: 三跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
const 四跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '四区')
|
||||
const 四跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '四区').length
|
||||
|
||||
let 四跨完成率='100'
|
||||
if (四跨计划数量){
|
||||
四跨完成率=(四跨完成数据.length/四跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'4,5,6跨',c:四跨完成率,n:四跨完成率>100?'0':(100-四跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '4、5、6跨', quantity: 四跨完成数据.length, weight: 四跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
return {point,wc}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-header {
|
||||
margin: 0;
|
||||
padding: 5px 0;
|
||||
height: auto;
|
||||
}
|
||||
.el-container {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.el-main {
|
||||
padding: 0;
|
||||
}
|
||||
.el-col {
|
||||
padding: 0;
|
||||
}
|
||||
.el-aside {
|
||||
background: #fff;
|
||||
padding: 0;
|
||||
}
|
||||
.el-container {
|
||||
padding: 0;
|
||||
}
|
||||
.el-row {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.el-row:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.tableStyles {
|
||||
background: #0a76a4;
|
||||
}
|
||||
.my-dropdown {
|
||||
width: 450px;
|
||||
height: 250px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dcdfe6;
|
||||
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
|
||||
font-size: 12px;
|
||||
}
|
||||
::v-deep .mytable .vxe-input {
|
||||
display: flex !important;
|
||||
}
|
||||
::v-deep .el-form-item{
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,157 @@
|
||||
import request from '@/utils/request'
|
||||
import XEUtils from 'xe-utils'
|
||||
|
||||
const 看板对应数据=(type)=>{
|
||||
const init=()=>{
|
||||
getData().then(res=>{
|
||||
const _data=JSON.parse(res.data)
|
||||
|
||||
let begin=XEUtils.toDateString(XEUtils.now(),'yyyy/MM/dd')
|
||||
let end=XEUtils.toDateString(XEUtils.getWhatDay(XEUtils.now(), 1),'yyyy/MM/dd')
|
||||
const endOfMonth=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'last'),'yyyy/MM/dd')
|
||||
switch (type){
|
||||
case 'riwc':
|
||||
data.options.data= 完成率计算(_data,begin,end,endOfMonth).point
|
||||
break
|
||||
case 'zhouwc':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 0,1,0),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 1,1,0),'yyyy/MM/dd')
|
||||
data.options.data= 完成率计算(_data,begin,end,endOfMonth).point
|
||||
break
|
||||
case 'yuewc':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'first'),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'last'),'yyyy/MM/dd')
|
||||
data.options.data=完成率计算(_data,begin,end,endOfMonth).point
|
||||
break
|
||||
case 'ricl':
|
||||
data.options.data=完成率计算(_data,begin,end,endOfMonth).wc
|
||||
break
|
||||
case 'zhoucl':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 0,1,0),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatWeek (XEUtils.now(), 1,1,0),'yyyy/MM/dd')
|
||||
data.options.data= 完成率计算(_data,begin,end,endOfMonth).wc
|
||||
break
|
||||
case 'yuecl':
|
||||
begin=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'first'),'yyyy/MM/dd')
|
||||
end=XEUtils.toDateString(XEUtils.getWhatMonth(XEUtils.now(), 0,'last'),'yyyy/MM/dd')
|
||||
data.options.data= 完成率计算(_data,begin,end,endOfMonth).wc
|
||||
break
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const data={
|
||||
options:{
|
||||
align:'center',
|
||||
border: true,
|
||||
resizable: true,
|
||||
keepSource:true,
|
||||
size:'mini',
|
||||
showOverflow: true,
|
||||
editConfig:{trigger: 'click', mode: 'cell', showStatus: true},
|
||||
highlightCurrentRow:true,
|
||||
columns:[],
|
||||
data:[],
|
||||
},
|
||||
}
|
||||
|
||||
switch (type){
|
||||
case 'riwc':
|
||||
case 'zhouwc':
|
||||
case 'yuewc':
|
||||
data.columns=columns0
|
||||
break
|
||||
case 'ricl':
|
||||
case 'zhoucl':
|
||||
case 'yuecl':
|
||||
data.columns=columns1
|
||||
break
|
||||
default:
|
||||
data.columns=columns0
|
||||
}
|
||||
|
||||
return {data,init}
|
||||
}
|
||||
|
||||
const columns0=[
|
||||
{ type: 'seq', width: 60, title: '序号' },
|
||||
{ field: 'kua', title: '跨',},
|
||||
{ field: 'c', title: '完成',},
|
||||
{ field: 'n', title: '未完成',},
|
||||
]
|
||||
|
||||
const columns1=[
|
||||
{ type: 'seq', width: 60, title: '序号' },
|
||||
{ field: 'dc_ch', title: '船号',},
|
||||
{ field: 'c', title: '完成',},
|
||||
{ field: 'n', title: '未完成',},
|
||||
]
|
||||
|
||||
const 完成率计算=(data,date,nextDate,endOfMonth)=>{
|
||||
|
||||
const wc=[],point=[]
|
||||
|
||||
const 一跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '二区'&&['7','8'].includes(item.kw))
|
||||
const 一跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '二区'&&['7','8'].includes(item.kw)).length
|
||||
|
||||
let 一跨完成率='100'
|
||||
if (一跨计划数量){
|
||||
一跨完成率=(一跨完成数据.length/一跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'1跨',c:一跨完成率,n:一跨完成率>100?'0':(100-一跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '1跨', quantity: 一跨完成数据.length, weight: 一跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue?.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
const 二跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '三区')
|
||||
const 二跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '三区').length
|
||||
|
||||
let 二跨完成率='100'
|
||||
if (二跨计划数量){
|
||||
二跨完成率=(二跨完成数据.length/二跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'2跨',c:二跨完成率,n:二跨完成率>100?'0':(100-二跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '2跨', quantity: 二跨完成数据.length, weight: 二跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
const 三跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '二区'&&['6','13','14'].includes(item.kw))
|
||||
const 三跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '二区'&&['6','13','14'].includes(item.kw)).length
|
||||
|
||||
let 三跨完成率='100'
|
||||
if (三跨计划数量){
|
||||
三跨完成率=(三跨完成数据.length/三跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'3跨',c:三跨完成率,n:三跨完成率>100?'0':(100-三跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '3跨', quantity: 三跨完成数据.length, weight: 三跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
const 四跨完成数据=data.filter(item=> item.qgfkrq >= date && item.qgfkrq < nextDate && item.zyq1 === '四区')
|
||||
const 四跨计划数量=data.filter(item=> item.qgjhrq >= date && item.qgjhrq < endOfMonth && item.zyq1 === '四区').length
|
||||
|
||||
let 四跨完成率='100'
|
||||
if (四跨计划数量){
|
||||
四跨完成率=(四跨完成数据.length/四跨计划数量*100).toFixed(2)
|
||||
}
|
||||
|
||||
point.push({kua:'4,5,6跨',c:四跨完成率,n:四跨完成率>100?'0':(100-四跨完成率).toFixed(2)})
|
||||
|
||||
wc.push({ label: '4、5、6跨', quantity: 四跨完成数据.length, weight: 四跨完成数据.reduce((accumulator, currentValue) => {
|
||||
return accumulator + (currentValue.bcshzl||0)/1000;
|
||||
}, 0) },)
|
||||
|
||||
return {point,wc}
|
||||
}
|
||||
|
||||
const getData=()=>{
|
||||
return request({url:'/sc/getYdjhByMonth'})
|
||||
}
|
||||
|
||||
export default 看板对应数据
|
@ -0,0 +1,103 @@
|
||||
<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 "./index";
|
||||
|
||||
export default {
|
||||
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>
|
Loading…
Reference in new issue