Compare commits
2 Commits
3e77fb77fb
...
564fa2e1c3
| Author | SHA1 | Date |
|---|---|---|
|
|
564fa2e1c3 | |
|
|
04e3a2e18d |
|
|
@ -4,6 +4,7 @@
|
||||||
<div class="left-panel"></div>
|
<div class="left-panel"></div>
|
||||||
<div class="right-panel">
|
<div class="right-panel">
|
||||||
<xtSelect
|
<xtSelect
|
||||||
|
v-if="activeName=='shengchan'"
|
||||||
:apiObj="apiObj"
|
:apiObj="apiObj"
|
||||||
v-model="query.user_name"
|
v-model="query.user_name"
|
||||||
:valueField="'name'"
|
:valueField="'name'"
|
||||||
|
|
@ -36,43 +37,121 @@
|
||||||
</div>
|
</div>
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-main class="nopadding">
|
<el-main class="nopadding">
|
||||||
<scTable
|
<el-tabs type="border-card" v-model="activeName" @tab-click="tabsClick" style="height: 100%;" lazy>
|
||||||
ref="table"
|
<el-tab-pane name="shengchan" label="生产统计" style="height: 100%;" key="shengchan">
|
||||||
:data="tableData"
|
<el-container v-if="activeName=='shengchan'">
|
||||||
id="exportDiv"
|
<el-main>
|
||||||
row-key="id"
|
<scTable
|
||||||
hidePagination
|
ref="table"
|
||||||
hideDo
|
:data="tableData"
|
||||||
stripe
|
id="exportDiv"
|
||||||
>
|
row-key="id"
|
||||||
<el-table-column label="日期" prop="日期" width="100" fixed="left">
|
hidePagination
|
||||||
</el-table-column>
|
hideDo
|
||||||
<el-table-column label="操作人" prop="操作人" width="100" fixed="left">
|
stripe
|
||||||
</el-table-column>
|
>
|
||||||
<el-table-column v-for="item in lists" :key="item" :label="item.text" align="center">
|
<el-table-column label="日期" prop="日期" width="100" fixed="left">
|
||||||
<el-table-column v-for="item1 in item.value" :key="item1" :label="item1">
|
</el-table-column>
|
||||||
<template #default="scope">
|
<el-table-column label="操作人" prop="操作人" width="100" fixed="left">
|
||||||
<el-input v-if="scope.row.indexs==0&&scope.row" v-model="scope.row[item.text+'_'+item1]" @change="xishuChange"></el-input>
|
</el-table-column>
|
||||||
<span v-if="scope.row.indexs!==0&&scope.row">{{ scope.row[item.text+'_'+item1] }}</span>
|
<el-table-column v-for="item in lists" :key="item" :label="item.text" align="center">
|
||||||
</template>
|
<el-table-column v-for="item1 in item.value" :key="item1" :label="item1">
|
||||||
</el-table-column>
|
<template #default="scope">
|
||||||
</el-table-column>
|
<el-input v-if="scope.row.indexs==0&&scope.row" v-model="scope.row[item.text+'_'+item1]" @change="xishuChange"></el-input>
|
||||||
<el-table-column label="其它工时" prop="其它工时">
|
<span v-if="scope.row.indexs!==0&&scope.row">{{ scope.row[item.text+'_'+item1] }}</span>
|
||||||
<template #default="scope">
|
</template>
|
||||||
<el-input v-if="scope.row.indexs!==0&&scope.row" v-model="scope.row.time_other" @change="xishuChange"></el-input>
|
</el-table-column>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="其它工时" prop="其它工时">
|
||||||
<el-table-column label="总工时" prop="总工时">
|
<template #default="scope">
|
||||||
<template #default="scope">
|
<el-input v-if="scope.row.indexs!==0&&scope.row" v-model="scope.row.time_other" @change="xishuChange"></el-input>
|
||||||
<el-input v-if="scope.row.indexs!==0&&scope.row" v-model="scope.row.time_all"></el-input>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="总工时" prop="总工时">
|
||||||
<el-table-column label="备注" prop="备注">
|
<template #default="scope">
|
||||||
<template #default="scope">
|
<el-input v-if="scope.row.indexs!==0&&scope.row" v-model="scope.row.time_all"></el-input>
|
||||||
<el-input v-if="scope.row.indexs!==0&&scope.row" v-model="scope.row.note"></el-input>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="备注" prop="备注">
|
||||||
</scTable>
|
<template #default="scope">
|
||||||
|
<el-input v-if="scope.row.indexs!==0&&scope.row" v-model="scope.row.note"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
|
||||||
|
<el-drawer v-model="visible" :title="userName+'板段列表'" size="50%" direction="rtl" append-to-body destroy-on-close>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<div v-for="(item,index) in detailRow" :key="item" style="height:22px;border-bottom: 1px solid #efefef;">
|
||||||
|
<span style="margin-right:10px;width: 18px;display: inline-block;">{{ index+1 }} </span>
|
||||||
|
{{ item }}
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-drawer>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane name="gongzhuang" label="工装统计" style="height: 100%;" key="gongzhuang">
|
||||||
|
<el-container v-if="activeName=='gongzhuang'">
|
||||||
|
<el-main>
|
||||||
|
<scTable
|
||||||
|
ref="table"
|
||||||
|
:data="tableData"
|
||||||
|
id="exportDiv"
|
||||||
|
row-key="id"
|
||||||
|
hidePagination
|
||||||
|
hideDo
|
||||||
|
stripe
|
||||||
|
>
|
||||||
|
<el-table-column type="index" width="50" fixed="left"/>
|
||||||
|
<el-table-column label="工装编号" prop="工装编号" :filters="userFilters" :filter-method="filterUser" filter-placement="bottom-end">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物料名" prop="物料名" :filters="nameFilters" :filter-method="filterName" filter-placement="bottom-end">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="总数">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.总切片数" @click="handleClick(scope.row)" style="color:#0052d9;">{{ scope.row.总切片数 }}</span>
|
||||||
|
<span v-else @click="handleClick(scope.row)" style="color:#0052d9;">{{ scope.row.总生产数 }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="合格率" prop="合格率">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{((scope.row.总切片合格数/scope.row.总切片数)*100).toFixed(2) }}%</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane name="renyuan" label="开台人员统计" style="height: 100%;" key="renyuan">
|
||||||
|
<el-container v-if="activeName=='renyuan'">
|
||||||
|
<el-main>
|
||||||
|
<scTable
|
||||||
|
ref="table"
|
||||||
|
:data="tableData"
|
||||||
|
id="exportDiv"
|
||||||
|
row-key="id"
|
||||||
|
hidePagination
|
||||||
|
hideDo
|
||||||
|
stripe
|
||||||
|
>
|
||||||
|
<el-table-column type="index" width="50" fixed="left"/>
|
||||||
|
<el-table-column label="开台人" prop="开台人员姓名" :filters="userFilters" :filter-method="filterUser3" filter-placement="bottom-end">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物料名" prop="物料名" :filters="nameFilters" :filter-method="filterName" filter-placement="bottom-end">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="总数" prop="总切片数">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="合格率" prop="合格率">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.总切片数>0">{{((scope.row.总切片合格数/scope.row.总切片数)*100).toFixed(2) }}%</span>
|
||||||
|
<span v-else>0%</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -93,6 +172,14 @@ export default {
|
||||||
lists:[],
|
lists:[],
|
||||||
mgruops:[],
|
mgruops:[],
|
||||||
tableData:[],
|
tableData:[],
|
||||||
|
userFilters:[],
|
||||||
|
filterUsers:[],
|
||||||
|
nameFilters:[],
|
||||||
|
filterNames:[],
|
||||||
|
visible:false,
|
||||||
|
userName:'',
|
||||||
|
code:'lineDay_p',
|
||||||
|
activeName:'shengchan',
|
||||||
apiObj: this.$API.system.user.list,
|
apiObj: this.$API.system.user.list,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
@ -104,6 +191,12 @@ export default {
|
||||||
that.getData();
|
that.getData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
tabsClick(){
|
||||||
|
let that = this;
|
||||||
|
that.$nextTick(()=>{
|
||||||
|
that.getData();
|
||||||
|
})
|
||||||
|
},
|
||||||
getData(){
|
getData(){
|
||||||
let that = this;
|
let that = this;
|
||||||
that.lists = [];
|
that.lists = [];
|
||||||
|
|
@ -113,51 +206,85 @@ export default {
|
||||||
that.coefficient = [];
|
that.coefficient = [];
|
||||||
let params = {};
|
let params = {};
|
||||||
params.query = that.query;
|
params.query = that.query;
|
||||||
that.$API.bi.dataset.exec.req('lineDay_p', params).then((res) => {
|
let code = that.activeName=='shengchan'?'lineDay_p':that.activeName=='gongzhuang'?'product_toolings':'product_kaitairen';
|
||||||
|
that.$API.bi.dataset.exec.req(code, params).then((res) => {
|
||||||
let data = res.data2.ds0;
|
let data = res.data2.ds0;
|
||||||
let coefficient = [];
|
let coefficient = [];
|
||||||
if(data.length>0){
|
if(data.length>0){
|
||||||
data.forEach(item=>{
|
if(that.activeName=='shengchan'){
|
||||||
let obj = item.工序物料生产数?JSON.parse(item.工序物料生产数):{};
|
data.forEach(item=>{
|
||||||
for(let key in obj){
|
let obj = item.工序物料生产数?JSON.parse(item.工序物料生产数):{};
|
||||||
if(coefficient.indexOf(key)<0){
|
for(let key in obj){
|
||||||
coefficient.push(key);
|
if(coefficient.indexOf(key)<0){
|
||||||
}
|
coefficient.push(key);
|
||||||
let mgroup = key.split('_')[0];
|
|
||||||
let pname = key.split('_')[1];
|
|
||||||
if(that.mgruops.indexOf(mgroup)<0){
|
|
||||||
that.mgruops.push(mgroup);
|
|
||||||
that.lists.push({text:mgroup,value:[pname]});
|
|
||||||
}else{
|
|
||||||
var index = that.mgruops.indexOf(mgroup);
|
|
||||||
if(that.lists[index].value.indexOf(pname)<0){
|
|
||||||
that.lists[index].value.push(pname);
|
|
||||||
}
|
}
|
||||||
}
|
let mgroup = key.split('_')[0];
|
||||||
item[key]= obj[key];
|
let pname = key.split('_')[1];
|
||||||
item[pname]= obj[key];
|
if(that.mgruops.indexOf(mgroup)<0){
|
||||||
}
|
that.mgruops.push(mgroup);
|
||||||
})
|
that.lists.push({text:mgroup,value:[pname]});
|
||||||
that.coefficient = coefficient;
|
}else{
|
||||||
let item0 = {日期:'系数',操作人:'',indexs:0};
|
var index = that.mgruops.indexOf(mgroup);
|
||||||
coefficient.forEach(cof=>{
|
if(that.lists[index].value.indexOf(pname)<0){
|
||||||
item0[cof]= 1;
|
that.lists[index].value.push(pname);
|
||||||
})
|
}
|
||||||
data.unshift(item0);
|
}
|
||||||
data.forEach(item1 => {
|
item[key]= obj[key];
|
||||||
item1.time_other=0;
|
item[pname]= obj[key];
|
||||||
let all = 0;
|
|
||||||
coefficient.forEach(item2 => {
|
|
||||||
if(item1[item2]){
|
|
||||||
all = all+ Number(item1[item2])
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
item1.time_all = all;
|
that.coefficient = coefficient;
|
||||||
|
let item0 = {日期:'系数',操作人:'',indexs:0};
|
||||||
|
coefficient.forEach(cof=>{
|
||||||
|
item0[cof]= 1;
|
||||||
|
})
|
||||||
|
data.unshift(item0);
|
||||||
|
data.forEach(item1 => {
|
||||||
|
item1.time_other=0;
|
||||||
|
let all = 0;
|
||||||
|
coefficient.forEach(item2 => {
|
||||||
|
if(item1[item2]){
|
||||||
|
all = all+ Number(item1[item2])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
item1.time_all = all;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let userList = [],users = [];
|
||||||
|
let nameList = [],names = [];
|
||||||
|
data.forEach(item=>{
|
||||||
|
if(that.activeName=='gongzhuang'){
|
||||||
|
if(users.indexOf(item.工装编号)>-1){}else{
|
||||||
|
users.push(item.工装编号);
|
||||||
|
userList.push({text:item.工装编号,value:item.工装编号})
|
||||||
|
}
|
||||||
|
}else if(that.activeName=='renyuan'){
|
||||||
|
if(users.indexOf(item.开台人员姓名)>-1){}else{
|
||||||
|
users.push(item.开台人员姓名);
|
||||||
|
userList.push({text:item.开台人员姓名,value:item.开台人员姓名})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(names.indexOf(item.物料名)>-1){}else{
|
||||||
|
names.push(item.物料名);
|
||||||
|
nameList.push({text:item.物料名,value:item.物料名})
|
||||||
|
}
|
||||||
|
that.userFilters = userList;
|
||||||
|
that.nameFilters = nameList;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
that.tableData = data;
|
that.tableData = data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
filterUser(value, row) {
|
||||||
|
return row.工装编号 == value;
|
||||||
|
},
|
||||||
|
filterUser3(value, row) {
|
||||||
|
return row.开台人员姓名 == value;
|
||||||
|
},
|
||||||
|
filterName(value, row) {
|
||||||
|
return row.物料名 == value;
|
||||||
|
},
|
||||||
|
|
||||||
xishuChange(){
|
xishuChange(){
|
||||||
let that = this;
|
let that = this;
|
||||||
that.tableData.forEach((item1,index1) => {
|
that.tableData.forEach((item1,index1) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue