fix:coding#481统计中心优化

This commit is contained in:
shijing 2024-09-13 15:43:16 +08:00
parent 58bf615de3
commit 4b9b768647
6 changed files with 492 additions and 154 deletions

View File

@ -3294,6 +3294,17 @@ const routes = [
}, },
component: "statistics/task_rate_gx.vue", component: "statistics/task_rate_gx.vue",
}, },
//人员绩效统计——光芯
{
path: "/work_statistics",
name: "work_statistics",
meta: {
title: "人员生产统计",
icon: "el-icon-trend-charts",
perms: ["work_statistics"],
},
component: "statistics/work_statistics.vue",
},
//库存统计——光芯 //库存统计——光芯
{ {
path: "/statistic_inm", path: "/statistic_inm",

View File

@ -2,6 +2,39 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="right-panel"> <div class="right-panel">
<!-- 检验类型 -->
<el-select v-model="query.process_name"
placeholder="检验类型">
<el-option
v-for="item in options"
:key="item.value"
:label="item.name"
:value="item.value"
>
</el-option>
</el-select>
<!-- 检验人 -->
<!-- <el-select v-model="query.test_user"
placeholder="检验人">
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<el-select v-model="query.shift"
placeholder="班次">
<el-option
v-for="item in shiftOptions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select> -->
<el-date-picker <el-date-picker
v-model="query.start_date" v-model="query.start_date"
type="date" type="date"
@ -18,8 +51,13 @@
</div> </div>
<el-button @click="handleExport" type="primary">导出</el-button> <el-button @click="handleExport" type="primary">导出</el-button>
</el-header> </el-header>
<el-main style="background: #ffffff"> <el-main class="nopadding">
<scTable :data="tableData" id="exportDiv"> <scTable
:data="tableData"
id="exportDiv"
stripe
hideDo
hidePagination>
<el-table-column type="index" width="50" /> <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>
@ -32,7 +70,7 @@
</el-table-column> </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="不合格数" align="center"> <el-table-column label="不合格数" align="center" v-if="query.process_name == '一次超洗'">
<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>
@ -43,6 +81,9 @@
<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>
<el-table-column label="不合格数" align="center" v-else>
<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>
@ -61,7 +102,6 @@
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
<script> <script>
export default { export default {
name: "chart", name: "chart",
@ -69,12 +109,25 @@ export default {
data() { data() {
return { return {
query:{ query:{
start_date:'', fw_type:'prod',
end_date:'', end_date:'',
fw_type:'prod' start_date:'',
process_name:'一次超洗',
group_by_dept: ", dept.id",
group_by_user: ", suser.id",
group_by_shift: ", shift.id",
select_col_dept: ", dept.name as 部门",
select_col_user: ", suser.name as 检验人",
select_col_shift: ", shift.name as 班次"
}, },
currentDate: "", currentDate: "",
tableData: [], tableData: [],
options:[
{name:'外观',value:'一次超洗'},
{name:'尺寸',value:'二次超洗'}
],
userOptions:[],
shiftOptions:[],
}; };
}, },
mounted() { mounted() {
@ -88,8 +141,22 @@ export default {
let queryDate = year + "-" + month + "-" + day; let queryDate = year + "-" + month + "-" + day;
that.query.start_date = that.query.end_date = that.currentDate = queryDate; that.query.start_date = that.query.end_date = that.currentDate = queryDate;
this.getData(); this.getData();
this.getUsers();
this.getShifts();
}, },
methods: { methods: {
getUsers(){
let that = this;
this.$API.system.user.list.req({ page: 0, posts__code__contains: "check" }).then((res) => {
that.userOptions = res;
});
},
getShifts(){
let that = this;
that.$API.mtm.shift.list.req({ page: 0 }).then((res) => {
that.shiftOptions = res;
});
},
getData() { getData() {
let that = this; let that = this;
let obj = {}; let obj = {};

View File

@ -125,6 +125,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -183,6 +185,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -241,6 +245,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -299,6 +305,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -357,6 +365,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -415,6 +425,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -473,6 +485,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -531,6 +545,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -589,6 +605,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -647,6 +665,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -705,6 +725,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -763,6 +785,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -821,6 +845,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -879,6 +905,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
@ -937,6 +965,8 @@
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="合格数"> <el-table-column label="合格数" prop="合格数">
</el-table-column> </el-table-column>
<el-table-column label="前道不良" prop="加工前不良">
</el-table-column>
<el-table-column label="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>

View File

@ -2,14 +2,27 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="right-panel"> <div class="right-panel">
<el-select v-model="query.process_name"
style="width: 200px"
placeholder="请选择工序">
<el-option
v-for="item in options"
:key="item.name"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
<el-date-picker <el-date-picker
v-model="query.start_date" v-model="query.start_date"
type="date" type="date"
placeholder="查询日期" placeholder="查询日期"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
style="width: 160px" style="width: 200px"
> >
</el-date-picker> </el-date-picker>
<el-input v-model="query.m_s"
placeholder="物料名称" clearable style="width:200px"></el-input>
<el-button <el-button
type="primary" type="primary"
icon="el-icon-search" icon="el-icon-search"
@ -18,8 +31,13 @@
</div> </div>
<el-button @click="handleExport" type="primary">导出</el-button> <el-button @click="handleExport" type="primary">导出</el-button>
</el-header> </el-header>
<el-main style="background: #ffffff"> <el-main>
<scTable :data="tableData" id="exportDiv"> <scTable
:data="tableData"
id="exportDiv"
stripe
hideDo
hidePagination>
<el-table-column type="index" width="50" /> <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>
@ -33,28 +51,16 @@
<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="不合格数" align="center"> <el-table-column label="不合格数" align="center">
<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>
<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>
<el-table-column label="合计" prop="不合格数"></el-table-column> <el-table-column label="合计" prop="不合格数"></el-table-column>
</el-table-column> </el-table-column>
</scTable> </scTable>
@ -69,12 +75,21 @@ export default {
data() { data() {
return { return {
query:{ query:{
start_date:'', m_s:'',
fw_type:'process',
end_date:'', end_date:'',
fw_type:'process' start_date:'',
process_name:'',
group_by_dept: ", dept.id",
group_by_user: ", suser.id",
group_by_shift: ", shift.id",
select_col_dept: ", dept.name as 部门",
select_col_user: ", suser.name as 检验人",
select_col_shift: ", shift.name as 班次"
}, },
currentDate: "", currentDate: "",
tableData: [], tableData: [],
options:[],
}; };
}, },
mounted() { mounted() {
@ -87,14 +102,21 @@ export default {
day = day < 10 ? "0" + day : day; day = day < 10 ? "0" + day : day;
let queryDate = year + "-" + month + "-" + day; let queryDate = year + "-" + month + "-" + day;
that.query.start_date = that.query.end_date = that.currentDate = queryDate; that.query.start_date = that.query.end_date = that.currentDate = queryDate;
this.getProcess();
this.getData(); this.getData();
}, },
methods: { methods: {
getProcess(){
let that = this;
that.$API.mtm.process.list.req({ page: 0}).then((res) => {
that.options = res;
});
},
getData() { getData() {
let that = this; let that = this;
let obj = {}; let obj = {};
obj.query = that.query; obj.query = that.query;
that.tableData =[];
that.$API.bi.dataset.exec.req('ftestDay', obj).then((res) => { that.$API.bi.dataset.exec.req('ftestDay', obj).then((res) => {
that.tableData = res.data2.ds0; that.tableData = res.data2.ds0;
console.log(that.tableData); console.log(that.tableData);

View File

@ -2,12 +2,25 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="right-panel"> <div class="right-panel">
<el-select v-model="material__name"> <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 <el-option
v-for="item in options" v-for="item in options"
:key="item" :key="item.id"
:label="item" :label="item.name"
:value="item" :value="item.name"
> >
</el-option> </el-option>
</el-select> </el-select>
@ -16,76 +29,78 @@
icon="el-icon-search" icon="el-icon-search"
@click="handleQuery" @click="handleQuery"
></el-button> ></el-button>
<el-button
@click="handleExport"
class="tables"
type="primary"
>导出</el-button
>
</div> </div>
</el-header> </el-header>
<el-main id="elMain"> <el-main class="nopadding">
<el-row :gutter="10" id="elCol"> <scTable
<el-col :lg="12"> :data="tableData"
<el-card shadow="never"> id="exportDiv"
<div id="bachart1"></div> stripe
<!-- <scEcharts height="500px" :option="option"></scEcharts> --> hideDo
</el-card> hidePagination
</el-col> >
<el-col :lg="12"> <el-table-column type="index" width="50" />
<el-card shadow="never" style="position: relative"> <el-table-column label="部门" prop="部门">
<el-button </el-table-column>
@click="handleExport" <el-table-column label="工段" prop="工段">
class="tables" </el-table-column>
type="primary" <el-table-column label="原料数" prop="原料数">
>导出</el-button </el-table-column>
> <el-table-column label="待加工原料数" prop="待加工原料数">
<el-table </el-table-column>
:data="tableData1" <el-table-column label="非本段产物数" prop="非本段产物数">
id="exportDiv7" </el-table-column>
:height="tableHeight" <el-table-column label="待加工产物数" prop="待加工产物数">
> </el-table-column>
<el-table-column type="index" width="50" /> <el-table-column label="加工中原料数" prop="加工中原料数">
<el-table-column </el-table-column>
label="任务编号" <el-table-column label="加工中产物数" prop="加工中产物数">
prop="number" </el-table-column>
min-width="100px" <el-table-column label="合格品数" prop="合格品数">
> </el-table-column>
</el-table-column> <el-table-column label="不合格品数" prop="不合格品数">
<el-table-column label="计划数" prop="count"> </el-table-column>
</el-table-column> <el-table-column label="返工品数" prop="返工品数">
<el-table-column label="完成数" prop="count_ok"> </el-table-column>
</el-table-column> <el-table-column label="检验数" prop="检验数">
<el-table-column label="完成率" prop="rate"> </el-table-column>
</el-table-column> <el-table-column label="废品数" prop="废品数">
</el-table> </el-table-column>
</el-card> <el-table-column label="仓库原料数" prop="仓库原料数">
</el-col> </el-table-column>
</el-row> <el-table-column label="仓库合格品数" prop="仓库合格品数">
</el-table-column>
<el-table-column label="仓库合格成品数" prop="仓库合格成品数">
</el-table-column>
</scTable>
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
<script> <script>
import * as echarts from "echarts";
import T from "@/components/scEcharts/echarts-theme-T.js";
echarts.registerTheme("T", T);
import scEcharts from "@/components/scEcharts";
function deepCopy(obj) { function deepCopy(obj) {
return JSON.parse(JSON.stringify(obj)); return JSON.parse(JSON.stringify(obj));
} }
export default { export default {
name: "chart", name: "chart",
components: {
scEcharts,
},
data() { data() {
return { return {
currentYear:'', query: {
currentMonth:'', batch: "",
start_date:'', m_name: "",
end_date:'', m_model: "",
queryDate:'', m_specification: ""
option:{}, },
seriesData1:[], searchType:'batch',
seriesData2:[], options:[],
seriesData3:[], tableData:[],
material__name:'',
options:['白片','DDG片','一次抛','外协海富'],
basicOption: { basicOption: {
backgroundColor: "transparent", backgroundColor: "transparent",
title: { title: {
@ -132,77 +147,49 @@ export default {
}; };
}, },
mounted() { mounted() {
let that = this; let that = this;
that.getOptions();
that.getInmMaterial(); that.getInmMaterial();
}, },
methods: { 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(){ getInmMaterial(){
let that = this; let that = this;
let obj = { let obj = {};
name__contains:that.material__name, obj.query = that.query;
page:0 that.tableData =[];
}; that.$API.bi.dataset.exec.req('batch_search', this.query).then((res) => {
this.$API.mtm.material.list.req(obj).then(res=>{ if(res.data2.ds0){
console.log('InmMaterial',res); that.tableData = res.data2.ds0;
that.getWmaterial();
if(res.length>0){
res.forEach(item => {
that.seriesData3[0]+=item.count;
});
} }
}) });
}, },
getWmaterial(){ searchTypeChange(){
this.query.batch = '';
this.query.m_name = '';
this.query.m_model = '';
this.query.m_specification = '';
},
materialChange(val){
let that = this; let that = this;
let obj = { console.log(val);
material__name__contains:that.material__name, that.options.forEach((item) => {
page:0 if (item.name == val) {
}; that.query.m_model = item.model;
this.$API.wpm.wmaterial.list.req(obj).then(res=>{ that.query.m_specification = item.specification;
console.log('Wmaterial',res);
if(res.length>0){
res.forEach(item => {
if(item.belong_dept_name=="扫边车间"){
if(item.count_xtest==null){
seriesData3[1]+=item.count;
}else{
seriesData1[1]+=item.count;
}
}else if(item.belong_dept_name=="黑化车间"){
if(item.count_xtest==null){
seriesData3[2]+=item.count;
}else{
seriesData1[2]+=item.count;
}
}else if(item.belong_dept_name=="减薄车间"){
if(item.count_xtest==null){
seriesData3[3]+=item.count;
}else{
seriesData1[3]+=item.count;
}
}else if(item.belong_dept_name=="精雕车间"){
if(item.count_xtest==null){
seriesData3[4]+=item.count;
}else{
seriesData1[4]+=item.count;
}
}else if(item.belong_dept_name=="倒角车间"){
if(item.count_xtest==null){
seriesData3[5]+=item.count;
}else{
seriesData1[5]+=item.count;
}
}else if(item.belong_dept_name=="磨抛车间"){
if(item.count_xtest==null){
seriesData3[6]+=item.count;
}else{
seriesData1[6]+=item.count;
}
}
});
} }
let option = deepCopy(that.basicOption);
that.setChart("bachart1", option);
}) })
}, },
handleQuery(){ handleQuery(){
@ -234,9 +221,7 @@ export default {
width: 100%; width: 100%;
height: 500px; height: 500px;
} }
.tables{
width:
}
.tableHead { .tableHead {
background:rgb(0,176,240); background:rgb(0,176,240);
height:40px; height:40px;

View File

@ -0,0 +1,223 @@
<template>
<el-container>
<el-aside style="width: 45%; background: #ffffff">
<el-container>
<el-header>
<div class="left-panel">
<span style="font-size: 14px">人员生产统计</span>
</div>
<div class="right-panel">
<!-- 工段 -->
<el-select
v-model="query.mgroup_name"
>
<el-option
v-for="item in options"
:key="item.name"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
<!-- 日期 -->
<el-date-picker
v-model="queryData"
type="date"
placeholder="查询日期"
value-format="YYYY-MM-DD"
style="width: 160px"
@change="dateChange"
>
</el-date-picker>
<el-button
type="primary"
icon="el-icon-search"
@click="searchHandle"
></el-button>
<el-button @click="handleExport('1')" type="primary"
>导出</el-button>
</div>
</el-header>
<el-main>
<scTable
ref="tables1"
:data="tableData"
id="exportDiv1"
@row-click="rowClick"
stripe
hideDo
hidePagination
>
<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>
</el-aside>
<el-main class="nopadding">
<el-container>
<el-header>
<div class="left-panel">
<span style="font-size: 14px">人员生产统计详情</span>
</div>
<div class="right-panel">
<el-button @click="handleExport('2')" type="primary"
>导出</el-button
>
</div>
</el-header>
<el-main>
<scTable
ref="tables2"
:data="tableData2"
id="exportDiv2"
stripe
hideDo
hidePagination
>
<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>
</el-main>
</el-container>
</template>
<script>
import { mioTypeEnum } from "@/utils/enum.js";
function deepCopy(obj) {
return JSON.parse(JSON.stringify(obj));
}
const ondDayTime = 86400000;
export default {
name: "chart",
data() {
return {
query:{
start_date:"",
end_date:''
},
start_date: "",
end_date: "",
options:[],
tableData: [],
tableData2: [],
queryData:'',
};
},
mounted() {
let that = this;
let date = new Date();
that.query.start_date = that.start_date = that.queryData =
that.query.end_date = that.end_date = date.toISOString().split('T')[0];
// let week = date.getDay(); //week
// let weekFirst = week - 1; //
// let weekLast = 7 - week; //
// if (week == 0) {
// weekFirst = 6;
// weekLast = 0; //
// } else {
// weekFirst = week - 1;
// weekLast = 7 - week;
// }
// let first = new Date(new Date(date.getTime() - weekFirst * ondDayTime)); //
// let last = new Date(new Date(date.getTime() + weekLast * ondDayTime)); //
// this.query.start_date = this.start_date = first.toISOString().split('T')[0];
// this.query.end_date = this.end_date = last.toISOString().split('T')[0];
this.getMgroup();
},
methods: {
getWeekDate(dateTime) {
let date = new Date(dateTime);
let week = date.getDay(); //week
let weekFirst = week - 1; //
let weekLast = 7 - week; //
if (week == 0) {
weekFirst = 6;
weekLast = 0; //
} else {
weekFirst = week - 1;
weekLast = 7 - week;
}
let first = new Date(new Date(date.getTime() - weekFirst * ondDayTime)); //
let last = new Date(new Date(date.getTime() + weekLast * ondDayTime)); //
this.query.start_date = first.toISOString().split('T')[0];
this.query.end_date = last.toISOString().split('T')[0];
},
getMgroup(){
let that = this;
this.$API.mtm.mgroup.list.req({page:0}).then((res) => {
that.options = res;
that.query.mgroup_name = res[0].name;
that.getTableData();
})
},
searchHandle() {
let that = this;
that.tableData = [];
that.getTableData();
},
dateChange(){
this.query.start_date = this.query.end_date = this.queryData;
},
//
getTableData() {
let that = this;
let obj = {};
let query = deepCopy(that.query);
query.group_by_material = "";
query.select_col_material = "";
obj.query = query;
that.$API.bi.dataset.exec.req('ryjxtj', obj).then((res) => {
if (res.data2.ds0) {
that.tableData = res.data2.ds0;
}
});
},
rowClick(row){
console.log(row);
let that = this;
let obj = {};
let query = deepCopy(that.query);
query.where_user = "and userd.name = '"+row.操作人+"'";
obj.query = query;
that.tableData2 = [];
that.$API.bi.dataset.exec.req('ryjxtj', obj).then((res) => {
if( res.data2.ds0){
that.tableData2 = res.data2.ds0;
}
})
},
handleExport(val) {
this.exportLoading = true;
let id = "#exportDiv" + val;
let name = val == "1" ? "库存统计" : "库存出入库统计";
this.$XLSX(id, name);
this.exportLoading = false;
},
},
};
</script>
<style scoped>
.tables {
position: absolute;
top: 4px;
right: 6px;
z-index: 10;
}
</style>