diff --git a/src/api/kban.js b/src/api/kban.js index b9a1630..b0fd24f 100644 --- a/src/api/kban.js +++ b/src/api/kban.js @@ -59,3 +59,7 @@ export const getKqData=function(){ method: 'get', }) } + +export const getData=()=>{ + return request({url:'/sc/getYdjhByMonth'}) +} diff --git a/src/views/cxtj/index.js b/src/views/cxtj/index.js index ac3e721..ff81d37 100644 --- a/src/views/cxtj/index.js +++ b/src/views/cxtj/index.js @@ -1,9 +1,16 @@ import 作业计划完成量统计 from "@/views/cxtj/作业计划完成量统计"; import 技术准备 from "@/views/cxtj/技术准备"; +import 看板对应数据 from "@/views/cxtj/看板对应数据表"; const methods={ '/scgl/jh/cxtj1':作业计划完成量统计(), - '/scgl/sc/cxtj_jszb':技术准备() + '/scgl/sc/cxtj_jszb':技术准备(), + '/scgl/jh/cxtj_rikwc':看板对应数据('riwc'), + '/scgl/jh/cxtj_zkwc':看板对应数据('zhouwc'), + '/scgl/jh/cxtj_ykwc':看板对应数据('yuewc'), + '/scgl/jh/cxtj_rikcl':看板对应数据('ricl'), + '/scgl/jh/cxtj_zkcl':看板对应数据('zhoucl'), + '/scgl/jh/cxtj_ykcl':看板对应数据('yuecl'), } const init=(page)=>{ diff --git a/src/views/cxtj/new_index.vue b/src/views/cxtj/new_index.vue new file mode 100644 index 0000000..e4dd492 --- /dev/null +++ b/src/views/cxtj/new_index.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/src/views/cxtj/技术准备.js b/src/views/cxtj/技术准备.js index 7a57eb0..8ef6c10 100644 --- a/src/views/cxtj/技术准备.js +++ b/src/views/cxtj/技术准备.js @@ -1,12 +1,12 @@ import request from '@/utils/request' import XLSX from 'xlsx' +import { VXETable } from 'vxe-table' const 技术准备=()=>{ const list=()=>{ request({url:'/jszb/getFlowInfoList',method:'get',params:data.formData}) .then(res => { - console.log(res.data) data.options.data=res.data }) } @@ -29,7 +29,7 @@ const 技术准备=()=>{ const exportMethod=({options})=>{ const workBook = XLSX.utils.book_new(); - const T型材Group=['SG2'] + const T型材Group=['S2T','N2T'] const {sheet:T型材重量sheet}=处理数据(T型材Group,(list)=>{ return list.map(item=>{ @@ -130,7 +130,7 @@ const 技术准备=()=>{ XLSX.utils.book_append_sheet(workBook, 曲外板sheet, "曲外板"); const {sheet:lastSheet}=处理数据(['NCA','NCB','NCC','NCG','NCJ','NCL','NCP','NCT'],(list)=>{ - return list.map(item=>{ + return list.filter(item=>['Z','D'].includes(item.option3)).map(item=>{ return { 船名:item.ch, 分段号:item.fd, @@ -154,7 +154,7 @@ const 技术准备=()=>{ } const 处理数据=(groups,fun)=>{ - const list=data.filter(item=>groups.includes(item.type0)) + const list=data.filter(item=>groups.includes(item.nestingInfo?.substring(4,7))) return {list:fun(list),sheet:XLSX.utils.json_to_sheet(_data)} } diff --git a/src/views/cxtj/看板对应数据表.js b/src/views/cxtj/看板对应数据表.js new file mode 100644 index 0000000..b56d625 --- /dev/null +++ b/src/views/cxtj/看板对应数据表.js @@ -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 看板对应数据 diff --git a/src/views/jhzxgl/ylgl/index.vue b/src/views/jhzxgl/ylgl/index.vue new file mode 100644 index 0000000..dd2920d --- /dev/null +++ b/src/views/jhzxgl/ylgl/index.vue @@ -0,0 +1,103 @@ + + + +