factory_web/src/views/statistics/bxerp/maopi.vue

334 lines
13 KiB
Vue

<template>
<el-container>
<el-header>
<div class="right-panel">
<el-input v-model="query.name__contains"
placeholder="产品名称"
clearable
style="width: 200px;"
></el-input>
<el-input v-model="query.batch__contains"
placeholder="批次号"
clearable
style="width: 200px;"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
:params="params"
:query="params"
id="exportDiv"
row-key="id"
:summary-method="getSummaries"
show-summary
stripe
>
<el-table-column type="index" width="50" fixed="left"/>
<el-table-column label="产品名称" prop="material_name" fixed="left" min-width="100">
</el-table-column>
<el-table-column label="批次号" fixed="left">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_批次号 }}</span>
</template>
</el-table-column>
<el-table-column label="板号" prop="number" fixed="left">
</el-table-column>
<el-table-column label="放大率¢2mm" align="center" class-name="colorheader1">
<el-table-column label="差值" class-name="colorheader1">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_检测项_放大率2mm }}</span>
</template>
</el-table-column>
<el-table-column label="合格数" class-name="colorheader1">
<template #default="scope">
<span>{{ scope.row.data['毛坯检测_缺陷项_放大率¢2mm不合格']?0:1 }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="放大率¢16mm" align="center" class-name="colorheader2">
<el-table-column label="差值" class-name="colorheader2">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_检测项_放大率16mm }}</span>
</template>
</el-table-column>
<el-table-column label="合格数" class-name="colorheader2">
<template #default="scope">
<span>{{ scope.row.data['毛坯检测_缺陷项_放大率¢16mm不合格']?0:1 }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="剪切¢18.3mm" align="center" class-name="colorheader3">
<el-table-column label="剪切" class-name="colorheader3">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_检测项_剪切18mm }}</span>
</template>
</el-table-column>
<el-table-column label="剪切值" class-name="colorheader3">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_检测项_剪切值18mm }}</span>
</template>
</el-table-column>
<el-table-column label="合格数" class-name="colorheader3">
<template #default="scope">
<span>{{ !scope.row.data['毛坯检测_缺陷项_剪切¢18.3mm不合格']&&!scope.row.data['毛坯检测_缺陷项_剪切¢18.3mm可加工']?1:0 }}</span>
</template>
</el-table-column>
<el-table-column label="可加工" class-name="colorheader3">
<template #default="scope">
<span>{{ scope.row.data['毛坯检测_缺陷项_剪切¢18.3mm可加工']?1:0 }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="暗点" align="center" class-name="colorheader4">
<el-table-column label="内标合格" class-name="colorheader4">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_暗点合格?scope.row.data.毛坯检测_缺陷项_暗点合格:0 }}</span>
</template>
</el-table-column>
<el-table-column label="长点不合格" class-name="colorheader4">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_暗点不合格?scope.row.data.毛坯检测_缺陷项_暗点不合格:0 }}</span>
</template>
</el-table-column>
<el-table-column label="可加工" class-name="colorheader4">
<template #default="scope">
<span>{{ !scope.row.data.毛坯检测_缺陷项_暗点合格&&!scope.row.data.毛坯检测_缺陷项_暗点不合格?1:0 }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="暗点重" align="center" class-name="colorheader5">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_暗点重?scope.row.data.毛坯检测_缺陷项_暗点重:0 }}</span>
</template>
</el-table-column>
<el-table-column label="花丝" align="center" class-name="colorheader6">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_花丝?scope.row.data.毛坯检测_缺陷项_花丝:0 }}</span>
</template>
</el-table-column>
<el-table-column label="网格" align="center" class-name="colorheader7">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_网格?scope.row.data.毛坯检测_缺陷项_网格:0 }}</span>
</template>
</el-table-column>
<el-table-column label="花朵" align="center" class-name="colorheader1">
<el-table-column label="轻" align="center" class-name="colorheader1">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_花朵?scope.row.data.毛坯检测_缺陷项_花朵:0 }}</span>
</template>
</el-table-column>
<el-table-column label="重" align="center" class-name="colorheader1">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_花朵重?scope.row.data.毛坯检测_缺陷项_花朵重:0 }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="S畸变不合格" align="center" class-name="colorheader2">
<template #default="scope">
<span>{{scope.row.data.毛坯检测_缺陷项_S畸变不合格?scope.row.data.毛坯检测_缺陷项_S畸变不合格:0 }}</span>
</template>
</el-table-column>
<el-table-column label="弓形畸变不合格" align="center" class-name="colorheader3">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_弓形畸变不合格?scope.row.data.毛坯检测_缺陷项_弓形畸变不合格:0 }}</span>
</template>
</el-table-column>
<el-table-column label="炸废" align="center" class-name="colorheader4">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_炸废?scope.row.data.毛坯检测_缺陷项_炸废:0 }}</span>
</template>
</el-table-column>
<el-table-column label="角偏" align="center" class-name="colorheader5">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_角偏?scope.row.data.毛坯检测_缺陷项_角偏:0 }}</span>
</template>
</el-table-column>
<el-table-column label="色差" align="center" class-name="colorheader6">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_色差?scope.row.data.毛坯检测_缺陷项_色差:0 }}</span>
</template>
</el-table-column>
<el-table-column label="改实验" align="center" class-name="colorheader6">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_改实验?scope.row.data.毛坯检测_缺陷项_改实验:0 }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" class-name="colorheader7">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_缺陷项_备注 }}</span>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
</template>
<script>
export default {
name: "statistics_guan",
data() {
return {
params: {
ordering:'data__毛坯检测_批次号,-data__毛坯检测_小日期,number_prefix,number_suffix',
annotate_field_list:["number_prefix", "number_suffix"],
querys:[[{field:"wm",value:false,compare:"isnull"},{field:"data__has_key",compare:"",value:"毛坯检测_批次号"}]],
},
query:{
name__contains:'',
batch__contains:'',
last_time__gte:'',
last_time__lte:'',
},
apiObj: this.$API.wpm.wpr.query,
options:[],
tableData:[],
};
},
methods: {
handleQuery(){
let that = this;
let querys = [[{field:"wm",value:false,compare:"isnull"},{field:"data__has_key",compare:"",value:"毛坯检测_批次号"}]];
let obj = {},obj1 = {},obj2 = {},obj3 = {};
obj.field = 'data__毛坯检测_批次号';
obj.value = that.query.batch__contains;
obj.compare = '';
obj1.field = 'last_time';
obj1.value = that.query.last_time__gte;
obj1.compare = 'gte';
obj2.field = 'last_time';
obj2.value = that.query.last_time__lte;
obj2.compare = 'lte';
obj3.field = 'material__name';
obj3.value = that.query.name__contains;
obj3.compare = 'contains';
if(that.query.batch__contains!==''&&that.query.batch__contains!==null){
querys[0].push(obj);
}
if(that.query.last_time__gte!==''&&that.query.last_time__gte!==null){
querys[0].push(obj1);
}
if(that.query.last_time__lte!==''&&that.query.last_time__lte!==null){
querys[0].push(obj2);
}
if(that.query.name__contains!==''&&that.query.name__contains!==null){
querys[0].push(obj3);
}
that.params.querys = querys;
this.$refs.table.queryData(that.params);
},
getCountQt(data,type){
let count_qt = 0,count = 0;
},
getSummaries({ columns, data }) {
const sums = [];
let total = data.length;
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = <p class="count_row">合计<br /><br />比率<br /></p>
return;
}
let propert = '';
if(index == 5&&column.label=='合格数'){
propert= '毛坯检测_缺陷项_放大率¢2mm不合格';
}
if(index == 7&&column.label=='合格数'){
propert= '毛坯检测_缺陷项_放大率¢16mm不合格';
}
if(index == 10&&column.label=='合格数'){
propert= '毛坯检测_缺陷项_剪切¢18.3mm不合格';
}
if(index == 11&&column.label=='可加工'){
propert= '毛坯检测_缺陷项_剪切¢18.3mm可加工';
}
if(index == 12&&column.label=='内标合格'){
propert= '毛坯检测_缺陷项_暗点合格';
}
if(index == 13&&column.label=='长点不合格'){
propert= '毛坯检测_缺陷项_暗点不合格';
}
if(index == 14&&column.label=='可加工'){
propert= '毛坯检测_缺陷项_暗点合格';
}
if(index == 15&&column.label=='暗点重'){
propert= '毛坯检测_缺陷项_暗点重';
}
if(index == 16&&column.label=='花丝'){
propert= '毛坯检测_缺陷项_花丝';
}
if(index == 17&&column.label=='网格'){
propert= '毛坯检测_缺陷项_网格';
}
if(index == 18&&column.label=='轻'){
propert= '毛坯检测_缺陷项_花朵';
}
if(index == 19&&column.label=='重'){
propert= '毛坯检测_缺陷项_花朵重';
}
if(index == 20&&column.label=='S畸变不合格'){
propert= '毛坯检测_缺陷项_S畸变不合格';
}
if(index == 21&&column.label=='弓形畸变不合格'){
propert= '毛坯检测_缺陷项_弓形畸变不合格';
}
if(index == 22&&column.label=='炸废'){
propert= '毛坯检测_缺陷项_炸废';
}
if(index == 23&&column.label=='角偏'){
propert= '毛坯检测_缺陷项_角偏';
}
if(index == 24&&column.label=='色差'){
propert= '毛坯检测_缺陷项_色差';
}
if (propert!=='') {
let values = [];
if(index==5||index==7){
values = data.map((item) =>!item.data[propert]?1:0);
}else if(index==10){
values = data.map((item) =>!item.data[propert]&&!item.data['毛坯检测_缺陷项_剪切¢18.3mm可加工']?1:0);
}else if(index==14){
values = data.map((item) =>!item.data[propert]&&!item.data['毛坯检测_缺陷项_暗点不合格']?1:0);
}else{
values = data.map((item) =>item.data[propert]&&item.data[propert]!==undefined?Number(item.data[propert]):0);
}
console.log('values',values);
if (!values.every((value) => Number.isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
let value = Number(curr);
let sum = 0;
sum = Number(Number(prev) + Number(curr));
if (!isNaN(value)) {
return sum;
} else {
return prev;
}
}, 0);
} else{
sums[index] = <p class="count_row"><div ref="borrowAmount1">0</div><br /><div ref="borrowAmount2">0</div></p>
}
sums[index] =
<p class="count_row"><div ref="borrowAmount1">{sums[index]}</div><br /><div ref="borrowAmount2">{Number(sums[index]/total*100).toFixed(2)}%</div></p>
}
});
return sums;
},
},
};
</script>
<style scoped>
</style>