factory_web/src/views/statistics/statistics_inm.vue

238 lines
5.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-container>
<el-header>
<div class="right-panel">
<el-select v-model="searchType" style="width: 200px" @change="searchTypeChange">
<el-option label="原料批次号" value="batch"></el-option>
<el-option label="物料名称" value="material"></el-option>
</el-select>
<el-input
v-if="searchType === 'batch'"
v-model="query.batch" placeholder="物料批次"
clearable style="width:200px"
></el-input>
<el-select v-else
v-model="query.m_name"
style="width: 200px"
@change="materialChange"
placeholder="请选择物料">
<el-option
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
<el-button
@click="handleExport"
class="tables"
type="primary"
>导出</el-button
>
</div>
</el-header>
<el-main class="nopadding">
<scTable
:data="tableData"
id="exportDiv"
stripe
hideDo
hidePagination
>
<el-table-column type="index" width="50" />
<el-table-column label="部门" prop="部门">
</el-table-column>
<el-table-column label="工段" prop="工段">
</el-table-column>
<el-table-column label="原料数" prop="原料数">
</el-table-column>
<el-table-column label="待加工原料数" prop="待加工原料数">
</el-table-column>
<el-table-column label="非本段产物数" prop="非本段产物数">
</el-table-column>
<el-table-column label="待加工产物数" prop="待加工产物数">
</el-table-column>
<el-table-column label="加工中原料数" prop="加工中原料数">
</el-table-column>
<el-table-column label="加工中产物数" prop="加工中产物数">
</el-table-column>
<el-table-column label="合格品数" prop="合格品数">
</el-table-column>
<el-table-column label="不合格品数" prop="不合格品数">
</el-table-column>
<el-table-column label="返工品数" prop="返工品数">
</el-table-column>
<el-table-column label="检验数" prop="检验数">
</el-table-column>
<el-table-column label="废品数" prop="废品数">
</el-table-column>
<el-table-column label="仓库原料数" prop="仓库原料数">
</el-table-column>
<el-table-column label="仓库合格品数" prop="仓库合格品数">
</el-table-column>
<el-table-column label="仓库合格成品数" prop="仓库合格成品数">
</el-table-column>
</scTable>
</el-main>
</el-container>
</template>
<script>
function deepCopy(obj) {
return JSON.parse(JSON.stringify(obj));
}
export default {
name: "chart",
data() {
return {
query: {
batch: "",
m_name: "",
m_model: "",
m_specification: ""
},
searchType:'batch',
options:[],
tableData:[],
basicOption: {
backgroundColor: "transparent",
title: {
text: "库存统计",
},
grid: {
top: "80px",
},
tooltip: {
trigger: "axis",
},
xAxis: {
type: "category",
data: ['库房','扫边车间','黑化车间','减薄车间','精雕车间','倒角车间','磨抛车间'],
},
yAxis: {
type: "value",
},
legend: {
top: "3",
right: "3%",
},
series: [
{
data: [0,0,0,0,0,0,0],
type: "bar",
name:'未处理',
barWidth: "15px",
},
{
data: [0,0,0,0,0,0,0],
type: "bar",
name:'处理中',
barWidth: "15px",
},
{
data: [0,0,0,0,0,0,0],
type: "bar",
name:'已处理',
barWidth: "15px",
},
],
},
};
},
mounted() {
let that = this;
that.getOptions();
that.getInmMaterial();
},
methods: {
getOptions(){
let that = this;
let obj = {};
obj.page = 0;
obj.type__in = "10,20";
obj.is_hidden = false;
that.options = [];
that.$API.mtm.material.list.req(obj).then((res) => {
if(res.length>0){
that.options = res;
}
});
},
getInmMaterial(){
let that = this;
let obj = {};
obj.query = that.query;
that.tableData =[];
that.$API.bi.dataset.exec.req('batch_search', obj).then((res) => {
if(res.data2.ds0){
that.tableData = res.data2.ds0;
}
});
},
searchTypeChange(){
this.query.batch = '';
this.query.m_name = '';
this.query.m_model = '';
this.query.m_specification = '';
},
materialChange(val){
let that = this;
console.log(val);
that.options.forEach((item) => {
if (item.name == val) {
that.query.m_model = item.model;
that.query.m_specification = item.specification;
}
})
},
handleQuery(){
this.getInmMaterial();
},
setChart(name, option = null) {
// 根据name 渲染数据, option需填写否则option为模拟数据
var myChart = echarts.getInstanceByDom(
document.getElementById(name)
);
if (myChart == undefined) {
myChart = echarts.init(document.getElementById(name), "T");
}
if (option == null) {
option = Object.assign({}, this.basicOption);
}
setTimeout(() => {
try {
myChart.setOption(option);
} catch (error) {}
}, 500);
},
},
};
</script>
<style scoped>
#bachart1{
width: 100%;
height: 500px;
}
.tableHead {
background:rgb(0,176,240);
height:40px;
}
.tableTh{
width:120px;
height:36px;
}
.tableTd{
width:120px;
height:36px;
}
</style>