生产数据
This commit is contained in:
parent
8164b2d677
commit
0aa208aa0b
1
dist/css/1653.72b2e894.css
vendored
Normal file
1
dist/css/1653.72b2e894.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.main-box[data-v-afb2cca2]{width:100%;padding:8px 6px 0 16px}.main-box .left-box[data-v-afb2cca2],.main-box .right-box[data-v-afb2cca2]{border-radius:8px;background-color:#fff;height:calc(100vh - 148px)}.main-box .left-box[data-v-afb2cca2]{padding:16px 10px 0;overflow-y:auto}.main-box .right-box[data-v-afb2cca2]{padding:16px}
|
1
dist/css/1965.1dc83e33.css
vendored
Normal file
1
dist/css/1965.1dc83e33.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.glassWasteReport .el-table{display:flex;flex-direction:column}.glassWasteReport .el-table__body-wrapper{order:1}.glassWasteReport .el-table__fixed-body-wrapper{top:116px!important}.glassWasteReport .el-table__fixed-footer-wrapper{z-index:0;top:81px!important}.wasteMachineReport .el-table thead.is-group tr:first-of-type th:first-of-type{border-bottom:none}.wasteMachineReport .el-table thead.is-group tr:first-of-type th:first-of-type div.cell{text-align:right}.wasteMachineReport .el-table th.el-table__cell{height:28px}.wasteMachineReport .el-table thead.is-group tr:first-of-type th:first-of-type:before{content:"";position:absolute;height:35px;top:0;left:60px;background-color:#ebeef5;transform:rotate(-35deg);transform-origin:top;width:1px}.wasteMachineReport .el-table thead.is-group tr:last-of-type th:first-of-type:before{content:"";position:absolute;height:35px;top:0;left:80px;background-color:#ebeef5;transform:rotate(-35deg);transform-origin:top;width:1px}.wasteLocationReport .el-table thead.is-group tr:first-of-type th:first-of-type{border-bottom:none}.wasteLocationReport .el-table thead.is-group tr:first-of-type th:first-of-type div.cell{text-align:right}.wasteLocationReport .el-table th.el-table__cell{height:28px}.wasteLocationReport .el-table thead.is-group tr:first-of-type th:first-of-type:before{content:"";position:absolute;height:35px;top:0;left:48px;background-color:#ebeef5;transform:rotate(-35deg);transform-origin:top;width:1px}.wasteLocationReport .el-table thead.is-group tr:last-of-type th:first-of-type:before{content:"";position:absolute;height:35px;top:0;left:68px;background-color:#ebeef5;transform:rotate(-35deg);transform-origin:top;width:1px}.glassDefectReport .baseMsg{font-size:14px;height:40px;line-height:40px;display:flex;border:1px solid #e8e8e8;border-radius:4px;margin-bottom:20px}.glassDefectReport .baseMsg li{width:25%;text-align:center;padding:0 10px;border-right:1px solid #e8e8e8;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.glassDefectReport .baseMsg li span{font-weight:600}.glassDefectReport .el-table thead.is-group tr:first-of-type th:first-of-type{border-bottom:none}.glassDefectReport .el-table thead.is-group tr:first-of-type th:first-of-type div.cell{text-align:right}.glassDefectReport .el-table th.el-table__cell{height:28px}.glassDefectReport .el-table thead.is-group tr:first-of-type th:first-of-type:before{content:"";position:absolute;height:35px;top:0;left:48px;background-color:#ebeef5;transform:rotate(-35deg);transform-origin:top;width:1px}.glassDefectReport .el-table thead.is-group tr:last-of-type th:first-of-type:before{content:"";position:absolute;height:35px;top:0;left:68px;background-color:#ebeef5;transform:rotate(-35deg);transform-origin:top;width:1px}.finalInspectionData[data-v-4f3b2616]{width:100%}.finalInspectionData .box-top[data-v-4f3b2616]{width:100%;padding:8px 16px 0}.finalInspectionData .box-top .search-box[data-v-4f3b2616]{height:62px;padding:10px 16px;box-sizing:border-box;border-radius:8px;background-color:#fff}.finalInspectionData .box[data-v-4f3b2616]{width:100%;padding:8px 8px 0 16px}.finalInspectionData .box .left-box[data-v-4f3b2616],.finalInspectionData .box .right-box[data-v-4f3b2616]{height:calc(100vh - 220px);padding:16px;border-radius:8px;background-color:#fff}.finalInspectionData .box .left-box .table-box[data-v-4f3b2616],.finalInspectionData .box .right-box .table-box[data-v-4f3b2616]{margin-top:16px;height:calc(100vh - 290px);overflow:auto}.finalInspectionData .box .left-box .table-button[data-v-4f3b2616]{display:inline-block;height:30px;width:100%;text-align:center;padding-top:4px;margin-bottom:16px;font-size:14px;color:#0b58ff;border-radius:4px;border:1px dotted #0b58ff;cursor:pointer}.finalInspectionData .box .right-box .title[data-v-4f3b2616]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}
|
1
dist/css/5271.3daf5a00.css
vendored
1
dist/css/5271.3daf5a00.css
vendored
@ -1 +0,0 @@
|
||||
.finalInspectionData[data-v-6bd3173e]{width:100%}.finalInspectionData .box-top[data-v-6bd3173e]{width:100%;padding:8px 16px 0}.finalInspectionData .box-top .search-box[data-v-6bd3173e]{height:62px;padding:10px 16px;box-sizing:border-box;border-radius:8px;background-color:#fff}.finalInspectionData .box[data-v-6bd3173e]{width:100%;padding:8px 8px 0 16px}.finalInspectionData .box .left-box[data-v-6bd3173e],.finalInspectionData .box .right-box[data-v-6bd3173e]{height:calc(100vh - 220px);padding:16px;border-radius:8px;background-color:#fff}.finalInspectionData .box .left-box .table-box[data-v-6bd3173e],.finalInspectionData .box .right-box .table-box[data-v-6bd3173e]{margin-top:16px;height:calc(100vh - 290px);overflow:auto}.finalInspectionData .box .left-box .table-button[data-v-6bd3173e]{display:inline-block;height:30px;width:100%;text-align:center;padding-top:4px;margin-bottom:16px;font-size:14px;color:#0b58ff;border-radius:4px;border:1px dotted #0b58ff;cursor:pointer}.finalInspectionData .box .right-box .title[data-v-6bd3173e]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}
|
1
dist/css/6354.776e0649.css
vendored
1
dist/css/6354.776e0649.css
vendored
@ -1 +0,0 @@
|
||||
.main-box[data-v-97276a96]{width:100%;padding:8px 6px 0 16px}.main-box .left-box[data-v-97276a96],.main-box .right-box[data-v-97276a96]{border-radius:8px;background-color:#fff;height:calc(100vh - 148px)}.main-box .left-box[data-v-97276a96]{padding:16px 10px 0;overflow-y:auto}.main-box .right-box[data-v-97276a96]{padding:16px}
|
@ -1 +1 @@
|
||||
.bottom-box[data-v-5624e103]{overflow-x:auto;display:flex}.bottom-box .bottom-left[data-v-5624e103],.bottom-box .bottom-right[data-v-5624e103]{display:inline-block}.bottom-box .bottom-left[data-v-5624e103]{width:290px;margin-right:8px}.bottom-box .bottom-left .dataTab li[data-v-5624e103]{width:65px}.bottom-box .bottom-right[data-v-5624e103]{width:calc(100% - 300px)}.bottom-box .bottom-right .dataTab li[data-v-5624e103]{width:7.7%;min-width:60px}.title[data-v-5624e103]{display:inline-block;height:66px;width:30px;font-size:14px;line-height:14px;font-weight:500;padding:5px 8px 0;color:rgba(0,0,0,.85);background-color:#fafafa;border-top-left-radius:5px;border-bottom-left-radius:5px}.dataTab[data-v-5624e103]{display:flex;flex-flow:row nowrap}.dataTab li[data-v-5624e103]{font-size:14px;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.dataTab li p[data-v-5624e103]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dataTab li .tabHead[data-v-5624e103]{height:31px;background:#e9ebf0}.dataTab li .tabHead[data-v-5624e103],.dataTab li .tabValue[data-v-5624e103]{padding:8px}.dataTab li .tabValue[data-v-5624e103]{height:35px}.box[data-v-1c347a00]{position:relative}.box .text1[data-v-1c347a00],.box .text2[data-v-1c347a00],.box .text3[data-v-1c347a00],.box .text4[data-v-1c347a00]{position:absolute}.box .text1[data-v-1c347a00]{top:30px;left:0}.box .text2[data-v-1c347a00]{top:30px;right:0}.box .text3[data-v-1c347a00]{bottom:10px;left:0}.box .text4[data-v-1c347a00]{bottom:10px;right:0}.defectScatterPlot[data-v-71b0f520]{height:calc(100vh - 206px);overflow:auto}.defectScatterPlot .split-pane[data-v-71b0f520]{height:100%;border-radius:8px}.defectScatterPlot .left-box[data-v-71b0f520]{margin-left:16px;padding:16px 16px 0;background-color:#fff}.defectScatterPlot .right-box[data-v-71b0f520]{margin-right:16px}.defectScatterPlot .right-box .inner-box[data-v-71b0f520]{height:100%;margin-left:16px;padding:16px 16px 0;border-radius:8px;overflow:auto;background-color:#fff;font-size:14px}.defectScatterPlot .right-box .inner-box .line1[data-v-71b0f520]{margin-bottom:18px}.defectScatterPlot .right-box .inner-box .line2[data-v-71b0f520]{margin-bottom:12px}.defectScatterPlot .right-box .inner-box .line2 .el-checkbox[data-v-71b0f520]{margin-right:8px}.defectScatterPlot .title[data-v-71b0f520]{font-size:14px;color:rgba(0,0,0,.85)}.defectScatterPlot .title[data-v-71b0f520]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;vertical-align:middle;margin-right:8px}
|
||||
.bottom-box[data-v-5624e103]{overflow-x:auto;display:flex}.bottom-box .bottom-left[data-v-5624e103],.bottom-box .bottom-right[data-v-5624e103]{display:inline-block}.bottom-box .bottom-left[data-v-5624e103]{width:290px;margin-right:8px}.bottom-box .bottom-left .dataTab li[data-v-5624e103]{width:65px}.bottom-box .bottom-right[data-v-5624e103]{width:calc(100% - 300px)}.bottom-box .bottom-right .dataTab li[data-v-5624e103]{width:7.7%;min-width:60px}.title[data-v-5624e103]{display:inline-block;height:66px;width:30px;font-size:14px;line-height:14px;font-weight:500;padding:5px 8px 0;color:rgba(0,0,0,.85);background-color:#fafafa;border-top-left-radius:5px;border-bottom-left-radius:5px}.dataTab[data-v-5624e103]{display:flex;flex-flow:row nowrap}.dataTab li[data-v-5624e103]{font-size:14px;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.dataTab li p[data-v-5624e103]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dataTab li .tabHead[data-v-5624e103]{height:31px;background:#e9ebf0}.dataTab li .tabHead[data-v-5624e103],.dataTab li .tabValue[data-v-5624e103]{padding:8px}.dataTab li .tabValue[data-v-5624e103]{height:35px}.box[data-v-2ee4d940]{position:relative}.box .text1[data-v-2ee4d940],.box .text2[data-v-2ee4d940],.box .text3[data-v-2ee4d940],.box .text4[data-v-2ee4d940]{position:absolute}.box .text1[data-v-2ee4d940]{top:30px;left:0}.box .text2[data-v-2ee4d940]{top:30px;right:0}.box .text3[data-v-2ee4d940]{bottom:10px;left:0}.box .text4[data-v-2ee4d940]{bottom:10px;right:0}.defectScatterPlot[data-v-79550084]{height:calc(100vh - 206px);overflow:auto}.defectScatterPlot .split-pane[data-v-79550084]{height:100%;border-radius:8px}.defectScatterPlot .left-box[data-v-79550084]{margin-left:16px;padding:16px 16px 0;background-color:#fff}.defectScatterPlot .right-box[data-v-79550084]{margin-right:16px}.defectScatterPlot .right-box .inner-box[data-v-79550084]{height:100%;margin-left:16px;padding:16px 16px 0;border-radius:8px;overflow:auto;background-color:#fff;font-size:14px}.defectScatterPlot .right-box .inner-box .line1[data-v-79550084]{margin-bottom:18px}.defectScatterPlot .right-box .inner-box .line2[data-v-79550084]{margin-bottom:12px}.defectScatterPlot .right-box .inner-box .line2 .el-checkbox[data-v-79550084]{margin-right:8px}.defectScatterPlot .title[data-v-79550084]{font-size:14px;color:rgba(0,0,0,.85)}.defectScatterPlot .title[data-v-79550084]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;vertical-align:middle;margin-right:8px}
|
2
dist/index.html
vendored
2
dist/index.html
vendored
@ -1 +1 @@
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>tft-mes</title><script defer="defer" src="/js/chunk-vendors.a42f8636.js"></script><script defer="defer" src="/js/app.b748d9c1.js"></script><link href="/css/app.68cbc19b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but tft-mes doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>tft-mes</title><script defer="defer" src="/js/chunk-vendors.a42f8636.js"></script><script defer="defer" src="/js/app.26ea233c.js"></script><link href="/css/app.68cbc19b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but tft-mes doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
1
dist/js/1653.bc452354.js
vendored
Normal file
1
dist/js/1653.bc452354.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/js/1965.f053e7a5.js
vendored
Normal file
1
dist/js/1965.f053e7a5.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/js/4591.fd241a34.js
vendored
1
dist/js/4591.fd241a34.js
vendored
File diff suppressed because one or more lines are too long
1
dist/js/5271.8199e756.js
vendored
1
dist/js/5271.8199e756.js
vendored
File diff suppressed because one or more lines are too long
1
dist/js/6354.04b01f2e.js
vendored
1
dist/js/6354.04b01f2e.js
vendored
@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[6354],{6354:function(t,e,a){a.r(e),a.d(e,{default:function(){return p}});var l=function(){var t=this,e=t._self._c;return e("el-row",{staticClass:"main-box",attrs:{gutter:10}},[e("el-col",{attrs:{span:4}},[e("div",{staticClass:"left-box"},[e("el-tree",{attrs:{data:t.data,"node-key":"id","default-expand-all":""},on:{"node-click":t.clickDevice}})],1)]),e("el-col",{attrs:{span:20}},[e("div",{staticClass:"right-box"},[e("search-bar",{attrs:{formConfigs:t.formConfig},on:{headBtnClick:t.buttonClick}}),e("base-table",{attrs:{page:t.listQuery.current,limit:t.listQuery.size,"table-props":t.tableProps,"table-data":t.tableData,"max-height":t.tableH}}),e("pagination",{attrs:{limit:t.listQuery.size,total:t.total}})],1)])],1)},i=[],r=a(475);const s=[{prop:"unitAndDevice",label:"单元/设备名称",width:300},{prop:"startTime",label:"开始时间"},{prop:"endTime",label:"结束时间"},{prop:"inputNum",label:"投入数量"},{prop:"outputNum",label:"输出数量"},{prop:"lossesNum",label:"损失数量"}];var n={name:"ProductionData",data(){return{data:[{id:1,label:"产线1",isAllowDrag:!1,children:[{id:4,label:"精切磨边",parent:1,isAllowDrag:!1,children:[{id:9,label:"精切磨边设备1",parent:4,isAllowDrag:!0},{id:10,label:"精切磨边设备2",parent:4,isAllowDrag:!0}]},{id:2,label:"磨边后清洗",isAllowDrag:!1,parent:1,children:[{id:5,label:"磨边后清洗设备1",parent:2,isAllowDrag:!0},{id:6,label:"磨边后清洗设备2",parent:2,isAllowDrag:!0}]}]}],defaultProps:{children:"children",label:"label"},formConfig:[{type:"datePicker",label:"开始时间",dateType:"date",format:"yyyy-MM-dd",valueFormat:"yyyy-MM-dd",placeholder:"开始时间",param:"testTime",defaultSelect:"2022-08-11"},{type:"button",btnName:"查询",name:"search",color:"primary"},{type:"separate"},{type:"button",btnName:"导出",name:"export",color:"primary",plain:!0}],tableProps:s,tableData:[],tableH:(0,r.NC)(275),total:0,listQuery:{current:1,size:20},centervisible:!1,addOrEditTitle:""}},mounted(){window.addEventListener("resize",(()=>{this.tableH=(0,r.NC)(275)}));for(let t=0;t<30;t++){let e={unitAndDevice:"精切磨边模块/精切模块",startTime:"2022-07-07",endTime:"2022-08-11"};e.inputNum=99+t,e.outputNum=100+t,e.lossesNum=t,this.tableData.push(e)}},methods:{getList(){console.log("getList")},clickDevice(){},buttonClick(t){switch(console.log(t),t.btnName){case"search":this.getList();break;default:}},successSubmit(t){alert(t),this.handleCancel()}}},o=n,d=a(1001),c=(0,d.Z)(o,l,i,!1,null,"97276a96",null),p=c.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/js/app.26ea233c.js
vendored
Normal file
1
dist/js/app.26ea233c.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/js/app.b748d9c1.js
vendored
1
dist/js/app.b748d9c1.js
vendored
File diff suppressed because one or more lines are too long
@ -99,6 +99,25 @@ export function workOrderImportTemplate(data) {
|
||||
|
||||
export const uploadPath = '/api/order/workOrder/import'
|
||||
|
||||
// 生产数据
|
||||
export function proDataPage(data) {
|
||||
return request({
|
||||
url: '/order/ProData/page',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function proDataExport(data) {
|
||||
return request({
|
||||
url: '/order/ProData/export',
|
||||
method: 'post',
|
||||
responseType: 'blob',
|
||||
data,
|
||||
timeout: 60000
|
||||
})
|
||||
}
|
||||
|
||||
// 下架包装
|
||||
export function unloadPalletPage(data) {
|
||||
return request({
|
||||
|
@ -481,15 +481,6 @@ export const routes = [
|
||||
},
|
||||
component: () =>
|
||||
import('../views/qualityManagement/productTraceability')
|
||||
},
|
||||
{
|
||||
path: 'finalInspectionDailyReport',
|
||||
name: 'finalInspectionDailyReport',
|
||||
meta: {
|
||||
title: '终检日报表'
|
||||
},
|
||||
component: () =>
|
||||
import('../views/qualityManagement/finalInspectionDailyReport')
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -3,10 +3,13 @@
|
||||
<el-col :span="4">
|
||||
<div class="left-box">
|
||||
<el-tree
|
||||
:data="data"
|
||||
node-key="id"
|
||||
:data="treeData"
|
||||
node-key="name"
|
||||
:props="defaultProps"
|
||||
default-expand-all
|
||||
:highlight-current="true"
|
||||
@node-click="clickDevice"
|
||||
ref="deviceTree"
|
||||
>
|
||||
</el-tree>
|
||||
</div>
|
||||
@ -27,31 +30,38 @@
|
||||
</el-row>
|
||||
</template>
|
||||
<script>
|
||||
import { tableHeight } from '@/utils/index'
|
||||
import { tableHeight, timeFormatter } from '@/utils/index'
|
||||
import { getTreeData } from '@/api/app'
|
||||
import { proDataPage, proDataExport } from '@/api/productionScheduling'
|
||||
import moment from 'moment'
|
||||
const tableProps = [
|
||||
{
|
||||
prop: 'unitAndDevice',
|
||||
prop: 'name',
|
||||
label: '单元/设备名称',
|
||||
width: 300
|
||||
},
|
||||
{
|
||||
prop: 'startTime',
|
||||
label: '开始时间'
|
||||
label: '开始时间',
|
||||
minWidth: 160,
|
||||
filter: timeFormatter
|
||||
},
|
||||
{
|
||||
prop: 'endTime',
|
||||
label: '结束时间'
|
||||
label: '结束时间',
|
||||
minWidth: 160,
|
||||
filter: timeFormatter
|
||||
},
|
||||
{
|
||||
prop: 'inputNum',
|
||||
prop: 'glassInNum',
|
||||
label: '投入数量'
|
||||
},
|
||||
{
|
||||
prop: 'outputNum',
|
||||
prop: 'glassOutNum',
|
||||
label: '输出数量'
|
||||
},
|
||||
{
|
||||
prop: 'lossesNum',
|
||||
prop: 'glassMissNum',
|
||||
label: '损失数量'
|
||||
}
|
||||
]
|
||||
@ -59,69 +69,24 @@ export default {
|
||||
name: 'ProductionData',
|
||||
data() {
|
||||
return {
|
||||
data: [
|
||||
{
|
||||
id: 1,
|
||||
label: '产线1',
|
||||
isAllowDrag: false,
|
||||
children: [
|
||||
{
|
||||
id: 4,
|
||||
label: '精切磨边',
|
||||
parent: 1,
|
||||
isAllowDrag: false,
|
||||
children: [
|
||||
{
|
||||
id: 9,
|
||||
label: '精切磨边设备1',
|
||||
parent: 4,
|
||||
isAllowDrag: true
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
label: '精切磨边设备2',
|
||||
parent: 4,
|
||||
isAllowDrag: true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
label: '磨边后清洗',
|
||||
isAllowDrag: false,
|
||||
parent: 1,
|
||||
children: [
|
||||
{
|
||||
id: 5,
|
||||
label: '磨边后清洗设备1',
|
||||
parent: 2,
|
||||
isAllowDrag: true
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
label: '磨边后清洗设备2',
|
||||
parent: 2,
|
||||
isAllowDrag: true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
treeData: [],
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
label: 'name'
|
||||
},
|
||||
formConfig: [
|
||||
{
|
||||
type: 'datePicker',
|
||||
label: '开始时间',
|
||||
dateType: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
valueFormat: 'yyyy-MM-dd',
|
||||
placeholder: '开始时间',
|
||||
param: 'testTime',
|
||||
defaultSelect: '2022-08-11'
|
||||
dateType: 'datetimerange',
|
||||
format: 'yyyy-MM-dd HH:mm:ss',
|
||||
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
|
||||
rangeSeparator: '-',
|
||||
startPlaceholder: '开始时间',
|
||||
endPlaceholder: '结束时间',
|
||||
param: 'timeVal',
|
||||
defaultSelect: [],
|
||||
width: 350
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
@ -146,7 +111,9 @@ export default {
|
||||
total: 0,
|
||||
listQuery: {
|
||||
current: 1,
|
||||
size: 20
|
||||
size: 20,
|
||||
unitName: '',
|
||||
eqName: ''
|
||||
},
|
||||
centervisible: false,
|
||||
addOrEditTitle: ''
|
||||
@ -156,29 +123,80 @@ export default {
|
||||
window.addEventListener('resize', () => {
|
||||
this.tableH = tableHeight(275)
|
||||
})
|
||||
for (let i = 0; i < 30; i++) {
|
||||
let obj = {}
|
||||
obj.unitAndDevice = '精切磨边模块/精切模块'
|
||||
obj.startTime = '2022-07-07'
|
||||
obj.endTime = '2022-08-11'
|
||||
obj.inputNum = 99 + i
|
||||
obj.outputNum = 100 + i
|
||||
obj.lossesNum = i
|
||||
this.tableData.push(obj)
|
||||
}
|
||||
this.formConfig[0].defaultSelect = [
|
||||
moment().format('yyyy-MM-DD') + 'T00:00:00',
|
||||
moment().format('yyyy-MM-DD') + 'T23:59:59'
|
||||
]
|
||||
this.listQuery.startTime = moment().format('yyyy-MM-DD') + 'T00:00:00'
|
||||
this.listQuery.endTime = moment().format('yyyy-MM-DD') + 'T23:59:59'
|
||||
this.getTree()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
console.log('getList')
|
||||
getTree() {
|
||||
getTreeData().then((res) => {
|
||||
this.treeData = res.data
|
||||
this.listQuery.unitName = res.data[0].children[0].name
|
||||
setTimeout(() => {
|
||||
this.$refs.deviceTree.setCurrentKey(this.listQuery.unitName)
|
||||
}, 100)
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
getList() {
|
||||
proDataPage({ ...this.listQuery }).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code === 0 && res.data) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
} else {
|
||||
this.tableData = []
|
||||
this.total = 0
|
||||
}
|
||||
})
|
||||
},
|
||||
clickDevice(val) {
|
||||
if (!val.children) {
|
||||
// 设备
|
||||
this.listQuery.eqName = val.name
|
||||
this.listQuery.unitName = ''
|
||||
} else if (val.children && val.parent) {
|
||||
this.listQuery.eqName = ''
|
||||
this.listQuery.unitName = val.name
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
clickDevice() {},
|
||||
buttonClick(val) {
|
||||
console.log(val)
|
||||
switch (val.btnName) {
|
||||
case 'search':
|
||||
this.listQuery.startTime = val.timeVal ? val.timeVal[0] : ''
|
||||
this.listQuery.endTime = val.timeVal ? val.timeVal[1] : ''
|
||||
this.getList()
|
||||
break
|
||||
default:
|
||||
proDataExport({ ...this.listQuery }).then((response) => {
|
||||
console.log(response)
|
||||
let fileName = ''
|
||||
const contentDisposition = response.headers['content-disposition']
|
||||
if (contentDisposition) {
|
||||
fileName = decodeURIComponent(
|
||||
contentDisposition.slice(
|
||||
contentDisposition.indexOf('filename=') + 9
|
||||
)
|
||||
)
|
||||
}
|
||||
const blob = new Blob([response.data])
|
||||
const reader = new FileReader()
|
||||
reader.readAsDataURL(blob)
|
||||
reader.onload = (e) => {
|
||||
const a = document.createElement('a')
|
||||
a.download = fileName
|
||||
a.href = e.target.result
|
||||
document.body.appendChild(a)
|
||||
a.click()
|
||||
document.body.removeChild(a)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
successSubmit(res) {
|
||||
|
@ -1,30 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-tag size="medium">{{ showTotal }}</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'TableTags',
|
||||
data() {
|
||||
return {
|
||||
showTotal: ''
|
||||
}
|
||||
},
|
||||
props: {
|
||||
injectData: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
console.log(this.injectData)
|
||||
console.log(this.injectData.prop)
|
||||
if (this.injectData.prop === 'ct1') {
|
||||
this.showTotal = this.injectData.ct1
|
||||
} else if (this.injectData.prop === 'ct2') {
|
||||
this.showTotal = this.injectData.ct2
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -34,7 +34,6 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
chartDom: '',
|
||||
chart: '',
|
||||
chartHeight: tableHeight(446),
|
||||
list: [
|
||||
@ -120,8 +119,8 @@ export default {
|
||||
) {
|
||||
this.chart.dispose() // 页面多次刷新会出现警告,Dom已经初始化了一个实例,这是销毁实例
|
||||
}
|
||||
this.chartDom = document.getElementById('defectScatterPlotChart')
|
||||
this.chart = echarts.init(this.chartDom)
|
||||
var chartDom = document.getElementById('defectScatterPlotChart')
|
||||
this.chart = echarts.init(chartDom)
|
||||
let legendList = []
|
||||
let seriesList = []
|
||||
for (let i in this.defectMsg) {
|
||||
@ -130,8 +129,8 @@ export default {
|
||||
let obj = {}
|
||||
for (let j of this.defectMsg[i]) {
|
||||
let arr2 = []
|
||||
arr2.push(parseInt(j.xpos))
|
||||
arr2.push(parseInt(j.ypos))
|
||||
arr2.push(parseInt(j.xpos))
|
||||
arr1.push(arr2)
|
||||
}
|
||||
obj.name = this.transLabel(i)
|
||||
@ -169,6 +168,10 @@ export default {
|
||||
},
|
||||
itemWidth: 10 // 图例宽度
|
||||
},
|
||||
brush: {
|
||||
toolbox: ['rect', 'clear'],
|
||||
xAxisIndex: 0
|
||||
},
|
||||
grid: {
|
||||
x: 60,
|
||||
y: 60,
|
||||
@ -187,7 +190,10 @@ export default {
|
||||
lineStyle: {
|
||||
color: 'rgba(0, 0, 0, 0.15)'
|
||||
}
|
||||
}
|
||||
},
|
||||
max: 2600,
|
||||
min: 0,
|
||||
interval: 100
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
@ -201,30 +207,76 @@ export default {
|
||||
lineStyle: {
|
||||
color: 'rgba(0, 0, 0, 0.15)'
|
||||
}
|
||||
}
|
||||
},
|
||||
max: 2250,
|
||||
min: 0,
|
||||
interval: 100
|
||||
},
|
||||
series: seriesList
|
||||
// series: [
|
||||
// {
|
||||
// name: 'S',
|
||||
// type: 'scatter',
|
||||
// data: dataS,
|
||||
// symbolSize: 5
|
||||
// },
|
||||
// {
|
||||
// name: 'M',
|
||||
// type: 'scatter',
|
||||
// data: dataM,
|
||||
// symbolSize: 5
|
||||
// },
|
||||
// {
|
||||
// name: 'L',
|
||||
// type: 'scatter',
|
||||
// data: dataL,
|
||||
// symbolSize: 5
|
||||
// }
|
||||
// ]
|
||||
}
|
||||
let that = this
|
||||
this.chart.on('brushSelected', function (params) {
|
||||
var brushed = []
|
||||
var brushComponent = params.batch[0]
|
||||
var total = 0
|
||||
var xLong = 0
|
||||
var yLong = 0
|
||||
if (params.batch[0].areas[0]) {
|
||||
xLong = parseInt(
|
||||
params.batch[0].areas[0].coordRange[0][1] -
|
||||
params.batch[0].areas[0].coordRange[0][0]
|
||||
)
|
||||
yLong = parseInt(
|
||||
params.batch[0].areas[0].coordRange[1][1] -
|
||||
params.batch[0].areas[0].coordRange[1][0]
|
||||
)
|
||||
}
|
||||
for (var sIdx = 0; sIdx < brushComponent.selected.length; sIdx++) {
|
||||
var rawIndices = brushComponent.selected[sIdx].dataIndex.length
|
||||
total += rawIndices
|
||||
brushed.push(
|
||||
brushComponent.selected[sIdx].seriesName + ' : ' + rawIndices
|
||||
)
|
||||
}
|
||||
brushed.push('总计 : ' + total)
|
||||
that.chart.setOption({
|
||||
title: {
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
||||
text: 'SELECTED DATA: \n' + brushed.join('\n'),
|
||||
right: params.batch[0].areas[0] ? '10%' : -100,
|
||||
bottom: params.batch[0].areas[0] ? 0 : -500,
|
||||
textStyle: {
|
||||
fontSize: 12,
|
||||
fontWeight: 'normal',
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
graphic: [
|
||||
{
|
||||
type: 'group',
|
||||
left: params.batch[0].areas[0]
|
||||
? params.batch[0].areas[0].range[0][0]
|
||||
: -100,
|
||||
top: params.batch[0].areas[0]
|
||||
? params.batch[0].areas[0].range[1][1] + 5
|
||||
: -100,
|
||||
children: [
|
||||
{
|
||||
type: 'text',
|
||||
z: 100,
|
||||
style: {
|
||||
fill: '#333',
|
||||
width: 220,
|
||||
overflow: 'break',
|
||||
text: xLong + '*' + yLong,
|
||||
font: '12px Microsoft YaHei'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
})
|
||||
})
|
||||
option && this.chart.setOption(option)
|
||||
}
|
||||
}
|
||||
|
@ -1,545 +0,0 @@
|
||||
<template>
|
||||
<div class="page-box">
|
||||
<search-bar
|
||||
:formConfigs="formConfig"
|
||||
ref="searchBarForm"
|
||||
@headBtnClick="buttonClick"
|
||||
/>
|
||||
<base-table
|
||||
:page="listQuery.current"
|
||||
:limit="listQuery.size"
|
||||
:table-props="tableProp"
|
||||
:table-data="tableData"
|
||||
:span-method="spanMethod"
|
||||
:max-height="tableH"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { tableHeight } from '@/utils/index'
|
||||
import TableTags from './components/TableTags.vue'
|
||||
const tableProp = [
|
||||
{
|
||||
prop: 'process',
|
||||
label: '区域',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'equipmentName',
|
||||
label: '项目指标',
|
||||
minWidth: 150,
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
label: '白班(8:00-20:00)',
|
||||
align: 'center',
|
||||
children: [
|
||||
{ prop: 'b1', label: '7-8', width: 60 },
|
||||
{ prop: 'b2', label: '8-9', width: 60 },
|
||||
{ prop: 'b3', label: '9-10', width: 60 },
|
||||
{ prop: 'b4', label: '10-11', width: 60 },
|
||||
{ prop: 'b5', label: '11-12', width: 60 },
|
||||
{ prop: 'b6', label: '12-13', width: 60 },
|
||||
{ prop: 'b7', label: '13-14', width: 60 },
|
||||
{ prop: 'b8', label: '14-15', width: 60 },
|
||||
{ prop: 'b9', label: '15-16', width: 60 },
|
||||
{ prop: 'b10', label: '16-17', width: 60 },
|
||||
{ prop: 'b11', label: '17-18', width: 60 },
|
||||
{ prop: 'b12', label: '18-19', width: 60 },
|
||||
{ prop: 'ct1', label: '合计', subcomponent: TableTags }
|
||||
]
|
||||
},
|
||||
{
|
||||
label: '夜班(20:00-8:00)',
|
||||
align: 'center',
|
||||
children: [
|
||||
{ prop: 'y1', label: '19-20', width: 60 },
|
||||
{ prop: 'y2', label: '20-21', width: 60 },
|
||||
{ prop: 'y3', label: '21-22', width: 60 },
|
||||
{ prop: 'y4', label: '22-23', width: 60 },
|
||||
{ prop: 'y5', label: '23-24', width: 60 },
|
||||
{ prop: 'y6', label: '0-1', width: 60 },
|
||||
{ prop: 'y7', label: '1-2', width: 60 },
|
||||
{ prop: 'y8', label: '2-3', width: 60 },
|
||||
{ prop: 'y9', label: '3-4', width: 60 },
|
||||
{ prop: 'y10', label: '4-5', width: 60 },
|
||||
{ prop: 'y11', label: '5-6', width: 60 },
|
||||
{ prop: 'y12', label: '6-7', width: 60 },
|
||||
{ prop: 'ct2', label: '合计', subcomponent: TableTags }
|
||||
]
|
||||
}
|
||||
]
|
||||
export default {
|
||||
name: 'FinalInspectionDailyReport',
|
||||
data() {
|
||||
return {
|
||||
formConfig: [
|
||||
{
|
||||
type: 'datePicker',
|
||||
label: '日期选择',
|
||||
dateType: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
valueFormat: 'yyyy-MM-dd',
|
||||
param: 'timeVal',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '查询',
|
||||
name: 'search',
|
||||
color: 'primary'
|
||||
},
|
||||
{
|
||||
type: 'separate'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '导出',
|
||||
name: 'export',
|
||||
color: 'primary',
|
||||
plain: true
|
||||
}
|
||||
],
|
||||
listQuery: {
|
||||
current: 1,
|
||||
size: 20
|
||||
},
|
||||
tableH: tableHeight(300),
|
||||
tableProp,
|
||||
tableData: [],
|
||||
span: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener('resize', () => {
|
||||
this.tableH = tableHeight(300)
|
||||
})
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
buttonClick(val) {
|
||||
console.log(val)
|
||||
},
|
||||
getData() {
|
||||
;(this.tableData = [
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 108,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 103,
|
||||
equipmentName: '上片投入数',
|
||||
process: '综合'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 102,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 99,
|
||||
equipmentName: '机器人投入数',
|
||||
process: '综合'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '良品总投入数',
|
||||
process: '综合'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '工序损耗',
|
||||
process: '综合'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '后清洗输出',
|
||||
process: '综合'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '上片损失',
|
||||
process: '上片'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '精切损失',
|
||||
process: '精切'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '精切抽检',
|
||||
process: '精切'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '磨边损失',
|
||||
process: '磨边'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '磨边抽检',
|
||||
process: '磨边'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '前清洗损失',
|
||||
process: '前清洗'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '边检损失',
|
||||
process: '边检'
|
||||
},
|
||||
{
|
||||
b1: 1,
|
||||
b2: 2,
|
||||
b3: 3,
|
||||
b4: 4,
|
||||
b5: 5,
|
||||
b6: 6,
|
||||
b7: 7,
|
||||
b8: 8,
|
||||
b9: 9,
|
||||
b10: 10,
|
||||
b11: 11,
|
||||
b12: 12,
|
||||
ct1: 100,
|
||||
y1: 1,
|
||||
y2: 2,
|
||||
y3: 3,
|
||||
y4: 4,
|
||||
y5: 5,
|
||||
y6: 6,
|
||||
y7: 7,
|
||||
y8: 8,
|
||||
y9: 9,
|
||||
y10: 10,
|
||||
y11: 11,
|
||||
y12: 12,
|
||||
ct2: 100,
|
||||
equipmentName: '复投损失',
|
||||
process: '复投'
|
||||
}
|
||||
]),
|
||||
this.getSpanArr(this.tableData)
|
||||
},
|
||||
getSpanArr(data) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (i === 0) {
|
||||
this.span.push(1)
|
||||
this.index = 0
|
||||
} else {
|
||||
if (data[i].process === data[i - 1].process) {
|
||||
this.span[this.index] += 1
|
||||
this.span.push(0)
|
||||
} else {
|
||||
this.span.push(1)
|
||||
this.index = i
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
spanMethod({ rowIndex, columnIndex }) {
|
||||
if (columnIndex === 1) {
|
||||
const _row = this.span[rowIndex]
|
||||
return {
|
||||
rowspan: _row,
|
||||
colspan: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -92,10 +92,13 @@ const tableProps = [
|
||||
fixed: 'left',
|
||||
minWidth: 120
|
||||
},
|
||||
{
|
||||
prop: 'package',
|
||||
label: '包装工位'
|
||||
},
|
||||
{
|
||||
prop: 'testTime',
|
||||
label: '检验时间',
|
||||
fixed: 'left',
|
||||
filter: timeFormatter,
|
||||
minWidth: 160
|
||||
},
|
||||
|
@ -29,7 +29,7 @@
|
||||
<div v-if="reportTitle">
|
||||
<span class="title">{{ reportTitle }}</span>
|
||||
</div>
|
||||
<div class="table-box" v-if="reportTitle === '玻璃基板缺陷统计'">
|
||||
<div class="table-box" v-if="reportTitle === '玻璃基板品质报表'">
|
||||
<glass-quality-report :tableData="glassQualityArr" />
|
||||
</div>
|
||||
<div class="table-box" v-if="reportTitle === '厚度汇总报表'">
|
||||
@ -41,6 +41,18 @@
|
||||
:tableData2="packReportArr"
|
||||
/>
|
||||
</div>
|
||||
<div class="table-box" v-if="reportTitle === '玻璃判废统计表'">
|
||||
<glass-waste-report :tableData="wasteReportArr" />
|
||||
</div>
|
||||
<div class="table-box" v-if="reportTitle === '判废机组统计表'">
|
||||
<waste-machine-report :tableData="wasteMachineArr" />
|
||||
</div>
|
||||
<div class="table-box" v-if="reportTitle === '判废位置统计表'">
|
||||
<waste-location-report :tableData="wasteLocationArr" />
|
||||
</div>
|
||||
<div class="table-box" v-if="reportTitle === '玻璃基板缺陷报表'">
|
||||
<glass-defect-report :tableData="glassDefectArr" />
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -60,6 +72,10 @@ import {
|
||||
import glassQualityReport from './finalInspectionDataReport/glassQualityReport.vue'
|
||||
import glassThickReport from './finalInspectionDataReport/glassThickReport.vue'
|
||||
import glassPackReport from './finalInspectionDataReport/glassPackReport.vue'
|
||||
import glassWasteReport from './finalInspectionDataReport/glassWasteReport.vue'
|
||||
import wasteMachineReport from './finalInspectionDataReport/wasteMachineReport.vue'
|
||||
import wasteLocationReport from './finalInspectionDataReport/wasteLocationReport.vue'
|
||||
import glassDefectReport from './finalInspectionDataReport/glassDefectReport.vue'
|
||||
import moment from 'moment'
|
||||
import { timeFormatter } from '@/utils'
|
||||
const tablePropsL = [
|
||||
@ -82,7 +98,15 @@ const tablePropsL = [
|
||||
]
|
||||
export default {
|
||||
name: 'FinalInspectionData',
|
||||
components: { glassQualityReport, glassThickReport, glassPackReport },
|
||||
components: {
|
||||
glassQualityReport,
|
||||
glassThickReport,
|
||||
glassPackReport,
|
||||
glassWasteReport,
|
||||
wasteMachineReport,
|
||||
wasteLocationReport,
|
||||
glassDefectReport
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
formConfig: [
|
||||
@ -112,9 +136,13 @@ export default {
|
||||
type: 'select',
|
||||
label: '报表类型',
|
||||
selectOptions: [
|
||||
{ id: '玻璃基板缺陷统计', name: '玻璃基板缺陷统计' },
|
||||
{ id: '玻璃基板品质报表', name: '玻璃基板品质报表' },
|
||||
{ id: '终检下片包装', name: '终检下片包装' },
|
||||
{ id: '厚度汇总报表', name: '厚度汇总报表' }
|
||||
{ id: '厚度汇总报表', name: '厚度汇总报表' },
|
||||
{ id: '玻璃判废统计表', name: '玻璃判废统计表' },
|
||||
{ id: '判废机组统计表', name: '判废机组统计表' },
|
||||
{ id: '判废位置统计表', name: '判废位置统计表' },
|
||||
{ id: '玻璃基板缺陷报表', name: '玻璃基板缺陷报表' }
|
||||
],
|
||||
param: 'fullInspectionType1',
|
||||
defaultSelect: '',
|
||||
@ -153,7 +181,23 @@ export default {
|
||||
glassQualityArr: [], //基板玻璃品质
|
||||
thickReportArr: [], // 厚度汇总
|
||||
packReportArr: [], //下片包装
|
||||
packClaReportArr: []
|
||||
packClaReportArr: [],
|
||||
wasteReportArr: [{ name1: 11 }, { name1: 22 }], // 玻璃判废
|
||||
wasteMachineArr: [
|
||||
{ name: '颗粒/面检数超标', name1: '11' },
|
||||
{ name: '颗粒/缺陷聚集', name1: '22' },
|
||||
{ name: '划伤', name1: '33' },
|
||||
{ name: '面磨印记', name1: '44' },
|
||||
{ name: '磨痕', name1: '55' }
|
||||
],
|
||||
wasteLocationArr: [
|
||||
{ name: '颗粒/面检数超标', name1: '11' },
|
||||
{ name: '颗粒/缺陷聚集', name1: '22' },
|
||||
{ name: '划伤', name1: '33' },
|
||||
{ name: '面磨印记', name1: '44' },
|
||||
{ name: '磨痕', name1: '55' }
|
||||
],
|
||||
glassDefectArr: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -220,7 +264,7 @@ export default {
|
||||
for (let i of this.selectArr) {
|
||||
arr.push(i.glassId)
|
||||
}
|
||||
if (this.reportTitle === '玻璃基板缺陷统计') {
|
||||
if (this.reportTitle === '玻璃基板品质报表') {
|
||||
this.exportGlassReport(arr)
|
||||
} else if (this.reportTitle === '厚度汇总报表') {
|
||||
this.exportThickReport(arr)
|
||||
@ -258,7 +302,7 @@ export default {
|
||||
arr.push(i.glassId)
|
||||
}
|
||||
switch (this.reportTitle) {
|
||||
case '玻璃基板缺陷统计':
|
||||
case '玻璃基板品质报表':
|
||||
this.getGlassReport(arr)
|
||||
break
|
||||
case '厚度汇总报表':
|
||||
|
@ -1,5 +1,11 @@
|
||||
<template>
|
||||
<div class="finalDataTable">
|
||||
<div class="glassDefectReport">
|
||||
<ul class="baseMsg">
|
||||
<li><span>单位:</span>um</li>
|
||||
<li :title="glassId"><span>玻璃ID:</span>{{ glassId }}</li>
|
||||
<li><span>生产日期:</span>2022.12.24 14:45:34</li>
|
||||
<li><span>等级:</span>G1</li>
|
||||
</ul>
|
||||
<base-table :table-props="tablePropsT" :table-data="tableDataT" />
|
||||
<base-table :table-props="tablePropsB" :table-data="tableDataB" />
|
||||
</div>
|
||||
@ -240,13 +246,14 @@ const tablePropsB = [
|
||||
}
|
||||
]
|
||||
export default {
|
||||
name: 'FinalDataTable',
|
||||
name: 'glassDefectReport',
|
||||
data() {
|
||||
return {
|
||||
tablePropsT,
|
||||
tableDataT: [],
|
||||
tablePropsB,
|
||||
tableDataB: []
|
||||
tableDataB: [],
|
||||
glassId: '203839738763,5324723648623,87423745327845,23645326,4532675444'
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -627,7 +634,28 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.finalDataTable {
|
||||
.glassDefectReport {
|
||||
.baseMsg {
|
||||
font-size: 14px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
display: flex;
|
||||
border: 1px solid #e8e8e8;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 20px;
|
||||
li {
|
||||
width: 25%;
|
||||
text-align: center;
|
||||
padding: 0 10px;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
span {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type {
|
||||
border-bottom: none;
|
||||
}
|
@ -0,0 +1,183 @@
|
||||
<template>
|
||||
<div class="glassWasteReport">
|
||||
<base-table
|
||||
:table-props="tableProps"
|
||||
:table-data="tableData"
|
||||
:max-height="tableH"
|
||||
:page="1"
|
||||
:limit="20"
|
||||
show-summary
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { tableHeight } from '@/utils'
|
||||
const tableProps = [
|
||||
{
|
||||
prop: 'glassId',
|
||||
label: 'ID'
|
||||
},
|
||||
{
|
||||
prop: 'name1',
|
||||
label: '合格'
|
||||
},
|
||||
{
|
||||
prop: 'lineA',
|
||||
label: '前工程不良',
|
||||
children: [
|
||||
{
|
||||
prop: 'name2',
|
||||
label: '气泡数量'
|
||||
},
|
||||
{
|
||||
prop: 'name3',
|
||||
label: '气泡尺寸'
|
||||
},
|
||||
{
|
||||
prop: 'name4',
|
||||
label: '上表锡数量'
|
||||
},
|
||||
{
|
||||
prop: 'name5',
|
||||
label: '上表锡尺寸'
|
||||
},
|
||||
{
|
||||
prop: 'name6',
|
||||
label: '下表锡数量'
|
||||
},
|
||||
{
|
||||
prop: 'name7',
|
||||
label: '下表锡尺寸'
|
||||
},
|
||||
{
|
||||
prop: 'name8',
|
||||
label: '欠点数合计'
|
||||
},
|
||||
{
|
||||
prop: 'name9',
|
||||
label: '缺陷聚集'
|
||||
},
|
||||
{
|
||||
prop: 'name10',
|
||||
label: '结瘤'
|
||||
},
|
||||
{
|
||||
prop: 'name11',
|
||||
label: 'PT'
|
||||
},
|
||||
{
|
||||
prop: 'name12',
|
||||
label: '结石'
|
||||
},
|
||||
{
|
||||
prop: 'name13',
|
||||
label: '其他'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
prop: 'lineB',
|
||||
label: '后工程不良',
|
||||
children: [
|
||||
{
|
||||
prop: 'age',
|
||||
label: '颗粒/面检数超'
|
||||
},
|
||||
{
|
||||
prop: 'age1',
|
||||
label: '划伤'
|
||||
},
|
||||
{
|
||||
prop: 'age2',
|
||||
label: '颗粒/缺陷聚集'
|
||||
},
|
||||
{
|
||||
prop: 'age3',
|
||||
label: '轮印'
|
||||
},
|
||||
{
|
||||
prop: 'age4',
|
||||
label: '面磨印记'
|
||||
},
|
||||
{
|
||||
prop: 'age5',
|
||||
label: '残留'
|
||||
},
|
||||
{
|
||||
prop: 'age6',
|
||||
label: '污渍'
|
||||
},
|
||||
{
|
||||
prop: 'age7',
|
||||
label: '纤维'
|
||||
},
|
||||
{
|
||||
prop: 'age8',
|
||||
label: '水渍'
|
||||
},
|
||||
{
|
||||
prop: 'age9',
|
||||
label: '磨痕'
|
||||
},
|
||||
{
|
||||
prop: 'age10',
|
||||
label: '气浮擦伤'
|
||||
},
|
||||
{
|
||||
prop: 'age11',
|
||||
label: '雾面'
|
||||
},
|
||||
{
|
||||
prop: 'age12',
|
||||
label: '异物'
|
||||
},
|
||||
{
|
||||
prop: 'age13',
|
||||
label: '其他'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
export default {
|
||||
name: 'glassWasteReport',
|
||||
data() {
|
||||
return {
|
||||
tableProps,
|
||||
tableH: tableHeight(292)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener('resize', () => {
|
||||
this.tableH = tableHeight(292)
|
||||
})
|
||||
},
|
||||
props: {
|
||||
tableData: {
|
||||
type: Array,
|
||||
required: true,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.glassWasteReport {
|
||||
.el-table {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.el-table__body-wrapper {
|
||||
order: 1;
|
||||
}
|
||||
.el-table__fixed-body-wrapper {
|
||||
top: 116px !important;
|
||||
}
|
||||
.el-table__fixed-footer-wrapper {
|
||||
z-index: 0;
|
||||
top: 81px !important;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,124 @@
|
||||
<template>
|
||||
<div class="wasteLocationReport">
|
||||
<base-table
|
||||
:table-props="tableProps"
|
||||
:table-data="tableData"
|
||||
:max-height="tableH"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { tableHeight } from '@/utils'
|
||||
const tableProps = [
|
||||
{
|
||||
label: '九宫格',
|
||||
children: [
|
||||
{
|
||||
prop: 'name',
|
||||
label: '判废原因',
|
||||
minWidth: 110
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
prop: 'name1',
|
||||
label: '1#'
|
||||
},
|
||||
{
|
||||
prop: 'name2',
|
||||
label: '2#'
|
||||
},
|
||||
{
|
||||
prop: 'name3',
|
||||
label: '3#'
|
||||
},
|
||||
{
|
||||
prop: 'name4',
|
||||
label: '4#'
|
||||
},
|
||||
{
|
||||
prop: 'name5',
|
||||
label: '5#'
|
||||
},
|
||||
{
|
||||
prop: 'name6',
|
||||
label: '6#'
|
||||
},
|
||||
{
|
||||
prop: 'name7',
|
||||
label: '7#'
|
||||
},
|
||||
{
|
||||
prop: 'name8',
|
||||
label: '8#'
|
||||
},
|
||||
{
|
||||
prop: 'name9',
|
||||
label: '9#'
|
||||
},
|
||||
{
|
||||
prop: 'name10',
|
||||
label: '整板'
|
||||
}
|
||||
]
|
||||
export default {
|
||||
name: 'wasteLocationReport',
|
||||
data() {
|
||||
return {
|
||||
tableProps,
|
||||
tableH: tableHeight(292)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener('resize', () => {
|
||||
this.tableH = tableHeight(292)
|
||||
})
|
||||
},
|
||||
props: {
|
||||
tableData: {
|
||||
type: Array,
|
||||
required: true,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.wasteLocationReport {
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type {
|
||||
border-bottom: none;
|
||||
}
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type div.cell {
|
||||
text-align: right;
|
||||
}
|
||||
.el-table th.el-table__cell {
|
||||
height: 28px;
|
||||
}
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 35px;
|
||||
top: 0;
|
||||
left: 48px;
|
||||
background-color: #ebeef5;
|
||||
transform: rotate(-35deg);
|
||||
-webkit-transform-origin: top;
|
||||
transform-origin: top;
|
||||
width: 1px;
|
||||
}
|
||||
.el-table thead.is-group tr:last-of-type th:first-of-type:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 35px;
|
||||
top: 0;
|
||||
left: 68px;
|
||||
background-color: #ebeef5;
|
||||
transform: rotate(-35deg);
|
||||
-webkit-transform-origin: top;
|
||||
transform-origin: top;
|
||||
width: 1px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<div class="wasteMachineReport">
|
||||
<base-table
|
||||
:table-props="tableProps"
|
||||
:table-data="tableData"
|
||||
:max-height="tableH"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { tableHeight } from '@/utils'
|
||||
const tableProps = [
|
||||
{
|
||||
label: '研磨机组',
|
||||
children: [
|
||||
{
|
||||
prop: 'name',
|
||||
label: '判废原因',
|
||||
minWidth: 110
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
prop: 'name1',
|
||||
label: '1#'
|
||||
},
|
||||
{
|
||||
prop: 'name2',
|
||||
label: '2#'
|
||||
},
|
||||
{
|
||||
prop: 'name3',
|
||||
label: '3#'
|
||||
},
|
||||
{
|
||||
prop: 'name4',
|
||||
label: '4#'
|
||||
},
|
||||
{
|
||||
prop: 'name5',
|
||||
label: '5#'
|
||||
},
|
||||
{
|
||||
prop: 'name6',
|
||||
label: '6#'
|
||||
},
|
||||
{
|
||||
prop: 'name7',
|
||||
label: '7#'
|
||||
}
|
||||
]
|
||||
export default {
|
||||
name: 'wasteMachineReport',
|
||||
data() {
|
||||
return {
|
||||
tableProps,
|
||||
tableH: tableHeight(292)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener('resize', () => {
|
||||
this.tableH = tableHeight(292)
|
||||
})
|
||||
},
|
||||
props: {
|
||||
tableData: {
|
||||
type: Array,
|
||||
required: true,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.wasteMachineReport {
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type {
|
||||
border-bottom: none;
|
||||
}
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type div.cell {
|
||||
text-align: right;
|
||||
}
|
||||
.el-table th.el-table__cell {
|
||||
height: 28px;
|
||||
}
|
||||
.el-table thead.is-group tr:first-of-type th:first-of-type:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 35px;
|
||||
top: 0;
|
||||
left: 60px;
|
||||
background-color: #ebeef5;
|
||||
transform: rotate(-35deg);
|
||||
-webkit-transform-origin: top;
|
||||
transform-origin: top;
|
||||
width: 1px;
|
||||
}
|
||||
.el-table thead.is-group tr:last-of-type th:first-of-type:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 35px;
|
||||
top: 0;
|
||||
left: 80px;
|
||||
background-color: #ebeef5;
|
||||
transform: rotate(-35deg);
|
||||
-webkit-transform-origin: top;
|
||||
transform-origin: top;
|
||||
width: 1px;
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue
Block a user