工单进度 #28

Merged
juzi merged 1 commits from zjl into master 2023-07-05 16:46:17 +08:00
26 changed files with 368 additions and 747 deletions

1
dist/css/1509.e33f4b04.css vendored Normal file
View File

@ -0,0 +1 @@
.order-detail .title[data-v-4ae8e0c5]{padding:24px;display:inline-block}.order-detail .title[data-v-4ae8e0c5]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.order-detail .detail-box[data-v-4ae8e0c5]{padding:0 16px}.order-detail .detail-box .column-box .box[data-v-4ae8e0c5]{height:calc(25vh - 60px);padding-top:calc(7.5vh - 18px);padding-left:30px;border-bottom:1px solid #e8e8e8}.order-detail .detail-box .column-box .box .tip-value[data-v-4ae8e0c5]{display:block;font-size:22px;height:18px;margin-bottom:12px}.order-detail .detail-box .column-box .box .tip[data-v-4ae8e0c5]{display:inline-block;font-size:16px;background-color:#cae2ff;border-radius:2px;color:#288aff;padding:4px}.order-detail .detail-box .column-box .clear-border[data-v-4ae8e0c5]{border:none}.order-detail .detail-box .border-right[data-v-4ae8e0c5]{border-right:1px solid #e8e8e8}.main-box[data-v-7e4304c8]{margin-top:8px;padding:0 8px}.main-box .title[data-v-7e4304c8]{display:inline-block}.main-box .title[data-v-7e4304c8]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.main-box .box[data-v-7e4304c8]{width:100%}.main-box .box .left-top[data-v-7e4304c8]{height:275px;margin-bottom:8px}.main-box .box .left-top .top-title[data-v-7e4304c8]{padding:16px 16px 20px}.main-box .box .left-top .titleStyle[data-v-7e4304c8]{font-size:16px;font-weight:600;color:rgba(0,0,0,.9);vertical-align:top}.main-box .box .left-top .line-order-msg[data-v-7e4304c8]{padding-left:24px;padding-right:24px;width:100%}.main-box .box .left-top .line-order-msg .plan_num[data-v-7e4304c8],.main-box .box .left-top .line-order-msg .product_num[data-v-7e4304c8]{height:118px;width:100%;border-radius:8px}.main-box .box .left-top .line-order-msg .plan_num .left-icon[data-v-7e4304c8],.main-box .box .left-top .line-order-msg .product_num .left-icon[data-v-7e4304c8]{text-align:center;margin-top:34px}.main-box .box .left-top .line-order-msg .plan_num .num[data-v-7e4304c8],.main-box .box .left-top .line-order-msg .product_num .num[data-v-7e4304c8]{font-size:32px;color:rgba(0,0,0,.85);margin-top:28px}.main-box .box .left-top .line-order-msg .plan_num .words[data-v-7e4304c8],.main-box .box .left-top .line-order-msg .product_num .words[data-v-7e4304c8]{font-size:18px;color:rgba(0,0,0,.65)}.main-box .box .left-top .line-order-msg .plan_num[data-v-7e4304c8]{background:#fff8e8}.main-box .box .left-top .line-order-msg .plan_num .left-icon[data-v-7e4304c8]{border-right:1px solid #ff9d50}.main-box .box .left-top .line-order-msg .product_num[data-v-7e4304c8]{background:#e3ffeb}.main-box .box .left-top .line-order-msg .product_num .left-icon[data-v-7e4304c8]{border-right:1px solid #50d277}.main-box .box .left-bottom[data-v-7e4304c8],.main-box .box .left-top[data-v-7e4304c8]{background-color:#fff;border-radius:8px}.main-box .box .left-bottom[data-v-7e4304c8]{height:calc(100vh - 439px);padding:24px 24px 0 24px}.main-box .box .right[data-v-7e4304c8]{height:calc(100vh - 156px);background-color:#fff;border-radius:8px}

View File

@ -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-499108ae]{position:relative}.box .text1[data-v-499108ae],.box .text2[data-v-499108ae],.box .text3[data-v-499108ae],.box .text4[data-v-499108ae]{position:absolute}.box .text1[data-v-499108ae]{top:30px;left:0}.box .text2[data-v-499108ae]{top:30px;right:0}.box .text3[data-v-499108ae]{bottom:10px;left:0}.box .text4[data-v-499108ae]{bottom:10px;right:0}.defectScatterPlot[data-v-b3510d52]{height:calc(100vh - 206px);overflow:auto}.defectScatterPlot .split-pane[data-v-b3510d52]{height:100%;border-radius:8px}.defectScatterPlot .left-box[data-v-b3510d52]{margin-left:16px;padding:16px 16px 0;background-color:#fff}.defectScatterPlot .right-box[data-v-b3510d52]{margin-right:16px}.defectScatterPlot .right-box .inner-box[data-v-b3510d52]{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-b3510d52]{margin-bottom:18px}.defectScatterPlot .right-box .inner-box .line2[data-v-b3510d52]{margin-bottom:12px}.defectScatterPlot .right-box .inner-box .line2 .el-checkbox[data-v-b3510d52]{margin-right:8px}.defectScatterPlot .title[data-v-b3510d52]{font-size:14px;color:rgba(0,0,0,.85)}.defectScatterPlot .title[data-v-b3510d52]: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-499108ae]{position:relative}.box .text1[data-v-499108ae],.box .text2[data-v-499108ae],.box .text3[data-v-499108ae],.box .text4[data-v-499108ae]{position:absolute}.box .text1[data-v-499108ae]{top:30px;left:0}.box .text2[data-v-499108ae]{top:30px;right:0}.box .text3[data-v-499108ae]{bottom:10px;left:0}.box .text4[data-v-499108ae]{bottom:10px;right:0}.defectScatterPlot[data-v-046d3a89]{height:calc(100vh - 206px);overflow:auto}.defectScatterPlot .split-pane[data-v-046d3a89]{height:100%;border-radius:8px}.defectScatterPlot .left-box[data-v-046d3a89]{margin-left:16px;padding:16px 16px 0;background-color:#fff}.defectScatterPlot .right-box[data-v-046d3a89]{margin-right:16px}.defectScatterPlot .right-box .inner-box[data-v-046d3a89]{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-046d3a89]{margin-bottom:18px}.defectScatterPlot .right-box .inner-box .line2[data-v-046d3a89]{margin-bottom:12px}.defectScatterPlot .right-box .inner-box .line2 .el-checkbox[data-v-046d3a89]{margin-right:8px}.defectScatterPlot .title[data-v-046d3a89]{font-size:14px;color:rgba(0,0,0,.85)}.defectScatterPlot .title[data-v-046d3a89]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;vertical-align:middle;margin-right:8px}

View File

@ -1 +0,0 @@
.detail-box .column-box .box .tip-value[data-v-31d6d2a0]{display:block}.detail-box .column-box .box .tip[data-v-31d6d2a0]{display:inline-block;background-color:#cae2ff;border-radius:2px;color:#288aff;padding:4px}.detail-box .border-right[data-v-31d6d2a0]{border-right:1px solid #e8e8e8}.statistics[data-v-481a3ece]{padding:0 24px}.statistics .title[data-v-481a3ece]{display:inline-block;margin:24px 0 16px 0}.statistics .title[data-v-481a3ece]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.main-box[data-v-2c312d06]{margin-top:8px}.main-box .top-box[data-v-2c312d06]{width:100%}.main-box .top-box .top-left[data-v-2c312d06],.main-box .top-box .top-right[data-v-2c312d06]{height:calc(49vh - 76.44px);background-color:#fff;border-radius:8px}.main-box .top-box .top-left .titleStyle[data-v-2c312d06]{font-weight:600;color:rgba(0,0,0,.9);vertical-align:top}.main-box .top-box .top-left .line-order-msg[data-v-2c312d06]{display:flex}.main-box .top-box .top-left .line-order-msg li .title[data-v-2c312d06]{display:inline-block}.main-box .top-box .top-left .line-order-msg li .title[data-v-2c312d06]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.main-box .top-box .top-left .line-order-msg li .num-box[data-v-2c312d06]{border-right:1px solid #ccc}.main-box .top-box .top-left .line-order-msg li .plan_num[data-v-2c312d06],.main-box .top-box .top-left .line-order-msg li .product_num[data-v-2c312d06]{width:100%;border-radius:8px}.main-box .top-box .top-left .line-order-msg li .plan_num .num[data-v-2c312d06],.main-box .top-box .top-left .line-order-msg li .product_num .num[data-v-2c312d06]{color:rgba(0,0,0,.85);margin-bottom:6px}.main-box .top-box .top-left .line-order-msg li .plan_num .words[data-v-2c312d06],.main-box .top-box .top-left .line-order-msg li .product_num .words[data-v-2c312d06]{font-size:14px;color:rgba(0,0,0,.45)}.main-box .top-box .top-left .line-order-msg li .plan_num[data-v-2c312d06]{background:#fff8e8}.main-box .top-box .top-left .line-order-msg li .product_num[data-v-2c312d06]{background:#e3ffeb}.main-box .bottom-box[data-v-2c312d06]{height:calc(51vh - 79.56px);background-color:#fff;border-radius:8px;margin:8px 8px 0 0}

2
dist/index.html vendored
View File

@ -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.9292971d.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.a130481f.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/1509.92e10c7c.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

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[2740],{2740:function(t,r,e){e.r(r),e.d(r,{default:function(){return l}});var o=function(){var t=this,r=t._self._c;return r("div",{staticClass:"reoprtManager"},[r("div",{staticClass:"report"},[t._m(0),r("div",{staticClass:"numBox"},[r("div",[r("div",{staticClass:"reportNum"},[r("div",{staticClass:"num"},[t._v(t._s(t.totalReports))]),t._m(1)]),r("div",{staticClass:"detail",on:{click:function(r){return t.toDetail()}}},[t._v("了解详情")])])])]),t._l(t.reportList,(function(e,o){return r("div",{key:o,staticClass:"reportDesc"},[r("div",[r("div",{staticClass:"reportNum"},[r("div",{staticClass:"num"},[t._v(t._s(e.quantity))]),r("div",{staticClass:"text"},[r("p",{staticClass:"font"},[t._v(t._s(e.name))]),r("p",{staticClass:"letter"},[t._v("Reports")])])]),r("div",{staticClass:"detail",on:{click:function(r){return t.toDetail(e.id)}}},[t._v("了解详情")])])])}))],2)},n=[function(){var t=this,r=t._self._c;return r("div",{staticClass:"imgBox"},[r("img",{attrs:{src:e(5002),alt:"",width:"355px",height:"314px"}})])},function(){var t=this,r=t._self._c;return r("div",{staticClass:"text"},[r("p",{staticClass:"font"},[t._v("全部报表")]),r("p",{staticClass:"letter"},[t._v("Reports")])])}],s=e(6527),a={name:"ReportList",data(){return{totalReports:0,reportList:[]}},mounted(){this.getList()},methods:{getList(){(0,s.J_)({}).then((t=>{if(0===t.code&&t.data.length>0){this.totalReports=0;for(let r=0;r<t.data.length;r++)this.totalReports+=t.data[r].quantity;this.reportList=t.data}else this.totalReports=0,this.reportList=[]}))},toDetail(t){this.$router.push({name:"reportListDetail",params:{categoryId:t||""}})}}},u=a,i=e(1001),p=(0,i.Z)(u,o,n,!1,null,null,null),l=p.exports},6527:function(t,r,e){e.d(r,{AT:function(){return y},Hg:function(){return d},J_:function(){return n},Kx:function(){return Z},QL:function(){return i},W0:function(){return f},a:function(){return c},an:function(){return _},bu:function(){return v},fL:function(){return R},gc:function(){return C},kB:function(){return s},m3:function(){return l},oR:function(){return g},sy:function(){return a},uW:function(){return h},uj:function(){return m},wy:function(){return u},yk:function(){return p}});var o=e(8859);function n(t){return(0,o.Z)({url:"/report/report-sheet-category/list",method:"post",data:t})}function s(t){return(0,o.Z)({url:"/report/report-sheet/page",method:"post",data:t})}function a(t){return(0,o.Z)({url:"/report/report-sheet/update",method:"post",data:t})}function u(t){return(0,o.Z)({url:"/report/report-sheet/delete",method:"post",data:t})}function i(t){return(0,o.Z)({url:"/report/report-sheet/get",method:"post",data:t})}function p(t){return(0,o.Z)({url:"/report/report-sheet-category/page",method:"post",data:t})}function l(t){return(0,o.Z)({url:"/report/report-sheet-category/add",method:"post",data:t})}function c(t){return(0,o.Z)({url:"/report/report-sheet-category/update",method:"post",data:t})}function d(t){return(0,o.Z)({url:"/report/report-sheet-category/get",method:"post",data:t})}function f(t){return(0,o.Z)({url:"/report/report-sheet-category/delete",method:"post",data:t})}function h(t){return(0,o.Z)({url:"/report/GlassReport/listGlass",method:"post",data:t})}function m(t){return(0,o.Z)({url:"/report/GlassReport/qualityReport",method:"post",data:t})}function g(t){return(0,o.Z)({url:"/report/GlassReport/qualityReportexport",method:"post",responseType:"blob",data:t})}function v(t){return(0,o.Z)({url:"/report/GlassReport/thickReport",method:"post",data:t})}function _(t){return(0,o.Z)({url:"/report/GlassReport/thickReportexport",method:"post",responseType:"blob",data:t})}function y(t){return(0,o.Z)({url:"/quality/finalpackaging/queryGlassData",method:"post",data:t})}function R(t){return(0,o.Z)({url:"/quality/finalpackaging/claGlassData",method:"post",data:t})}function Z(t){return(0,o.Z)({url:"/report/GlassReport/getGlassVoid",method:"post",data:t})}function C(t){return(0,o.Z)({url:"/report/GlassReport/getUnitVoid",method:"post",data:t})}},5002:function(t,r,e){t.exports=e.p+"img/report.b2b3c253.png"}}]);

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/6015.e0415dee.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[6015],{6015:function(t,r,e){e.r(r),e.d(r,{default:function(){return c}});var o=function(){var t=this,r=t._self._c;return r("div",{staticClass:"reoprtManager"},[r("div",{staticClass:"report"},[t._m(0),r("div",{staticClass:"numBox"},[r("div",[r("div",{staticClass:"reportNum"},[r("div",{staticClass:"num"},[t._v(t._s(t.totalReports))]),t._m(1)]),r("div",{staticClass:"detail",on:{click:function(r){return t.toDetail()}}},[t._v("了解详情")])])])]),t._l(t.reportList,(function(e,o){return r("div",{key:o,staticClass:"reportDesc"},[r("div",[r("div",{staticClass:"reportNum"},[r("div",{staticClass:"num"},[t._v(t._s(e.quantity))]),r("div",{staticClass:"text"},[r("p",{staticClass:"font"},[t._v(t._s(e.name))]),r("p",{staticClass:"letter"},[t._v("Reports")])])]),r("div",{staticClass:"detail",on:{click:function(r){return t.toDetail(e.id)}}},[t._v("了解详情")])])])}))],2)},n=[function(){var t=this,r=t._self._c;return r("div",{staticClass:"imgBox"},[r("img",{attrs:{src:e(5002),alt:"",width:"355px",height:"314px"}})])},function(){var t=this,r=t._self._c;return r("div",{staticClass:"text"},[r("p",{staticClass:"font"},[t._v("全部报表")]),r("p",{staticClass:"letter"},[t._v("Reports")])])}],s=e(6527),a={name:"ReportList",data(){return{totalReports:0,reportList:[]}},mounted(){this.getList()},methods:{getList(){(0,s.J_)({}).then((t=>{0===t.code&&t.data.length>0?this.reportList=t.data:this.reportList=[]})),(0,s.up)({}).then((t=>{0===t.code&&t.data.length>0?this.totalReports=t.data[0].reportNum:this.totalReports=0}))},toDetail(t){this.$router.push({name:"reportListDetail",params:{categoryId:t||""}})}}},u=a,i=e(1001),p=(0,i.Z)(u,o,n,!1,null,null,null),c=p.exports},6527:function(t,r,e){e.d(r,{AT:function(){return Z},Hg:function(){return f},J_:function(){return n},Kx:function(){return C},QL:function(){return i},W0:function(){return h},a:function(){return d},an:function(){return R},bu:function(){return _},fL:function(){return y},gc:function(){return k},kB:function(){return s},m3:function(){return l},oR:function(){return v},sy:function(){return a},uW:function(){return m},uj:function(){return g},up:function(){return c},wy:function(){return u},yk:function(){return p}});var o=e(8859);function n(t){return(0,o.Z)({url:"/report/report-sheet-category/list",method:"post",data:t})}function s(t){return(0,o.Z)({url:"/report/report-sheet/page",method:"post",data:t})}function a(t){return(0,o.Z)({url:"/report/report-sheet/update",method:"post",data:t})}function u(t){return(0,o.Z)({url:"/report/report-sheet/delete",method:"post",data:t})}function i(t){return(0,o.Z)({url:"/report/report-sheet/get",method:"post",data:t})}function p(t){return(0,o.Z)({url:"/report/report-sheet-category/page",method:"post",data:t})}function c(t){return(0,o.Z)({url:"/report/GlassReport/getReportNum",method:"post",data:t})}function l(t){return(0,o.Z)({url:"/report/report-sheet-category/add",method:"post",data:t})}function d(t){return(0,o.Z)({url:"/report/report-sheet-category/update",method:"post",data:t})}function f(t){return(0,o.Z)({url:"/report/report-sheet-category/get",method:"post",data:t})}function h(t){return(0,o.Z)({url:"/report/report-sheet-category/delete",method:"post",data:t})}function m(t){return(0,o.Z)({url:"/report/GlassReport/listGlass",method:"post",data:t})}function g(t){return(0,o.Z)({url:"/report/GlassReport/qualityReport",method:"post",data:t})}function v(t){return(0,o.Z)({url:"/report/GlassReport/qualityReportexport",method:"post",responseType:"blob",data:t})}function _(t){return(0,o.Z)({url:"/report/GlassReport/thickReport",method:"post",data:t})}function R(t){return(0,o.Z)({url:"/report/GlassReport/thickReportexport",method:"post",responseType:"blob",data:t})}function Z(t){return(0,o.Z)({url:"/quality/finalpackaging/queryGlassData",method:"post",data:t})}function y(t){return(0,o.Z)({url:"/quality/finalpackaging/claGlassData",method:"post",data:t})}function C(t){return(0,o.Z)({url:"/report/GlassReport/getGlassVoid",method:"post",data:t})}function k(t){return(0,o.Z)({url:"/report/GlassReport/getUnitVoid",method:"post",data:t})}},5002:function(t,r,e){t.exports=e.p+"img/report.b2b3c253.png"}}]);

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -8,30 +8,6 @@ export function getProcessInfo(data) {
})
}
export function lineGlassCount(data) {
return request({
url: '/order/workOrderProcess/lineGlassCount',
method: 'post',
data
})
}
export function grindGlassCount(data) {
return request({
url: '/order/workOrderProcess/grindGlassCount',
method: 'post',
data
})
}
export function finalClassCount(data) {
return request({
url: '/order/workOrderProcess/FinalClassCount',
method: 'post',
data
})
}
// 工单管理
export function getWorkOrderPage(data) {
return request({

View File

@ -48,6 +48,14 @@ export function getReportCategory(data) {
})
}
export function getReportNum(data) {
return request({
url: '/report/GlassReport/getReportNum',
method: 'post',
data
})
}
export function reportCategoryAdd(data) {
return request({
url: '/report/report-sheet-category/add',

View File

@ -1,17 +1,24 @@
<template>
<div :style="{ paddingLeft: 50 * beilv + 'px' }">
<div>
<div
id="productRing"
:style="{ height: 280 * beilv + 'px', width: 280 * beilv + 'px' }"
style="width: 100%"
:style="{ height: chartHeight + 'px' }"
/>
</div>
</template>
<script>
import * as echarts from 'echarts'
import { tableHeight } from '@/utils/index'
import resize from '@/utils/chartMixins/resize'
export default {
mixins: [resize],
name: 'RingChart',
data() {
return {
chartHeight: tableHeight(439) - 60
}
},
props: {
chartMsg: {
type: Object,
@ -20,16 +27,15 @@ export default {
chart: ''
}
}
},
beilv: {
type: Number,
default: 1
}
},
mounted() {
this.$nextTick(() => {
this.initChart()
})
window.addEventListener('resize', () => {
this.chartHeight = tableHeight(439) - 60
})
},
watch: {
chartMsg: function () {
@ -55,32 +61,44 @@ export default {
var chartDom = document.getElementById('productRing')
this.chart = echarts.init(chartDom)
console.log(this.chartMsg)
var totalNum = this.chartMsg.finishNum
var lp = this.chartMsg.okNum
var fp = this.chartMsg.wasteNum
var djg = this.chartMsg.reprocessNum
var tj = this.chartMsg.tuneNum
var totalNum = this.chartMsg.finishNum ? this.chartMsg.finishNum : 0
var lp = this.chartMsg.okNum ? this.chartMsg.okNum : 0
var fp = this.chartMsg.wasteNum ? this.chartMsg.wasteNum : 0
var djg = this.chartMsg.reprocessNum ? this.chartMsg.reprocessNum : 0
var tj = this.chartMsg.tuneNum ? this.chartMsg.tuneNum : 0
var option = {
color: ['#288aff', '#7a34fd', '#ffb750', '#95f3b1'],
tooltip: {
trigger: 'item'
},
legend: {
icon: 'circle',
bottom: '0%',
left: 'center',
itemWidth: 8,
itemHeight: 8
top: '0%',
left: '-10px'
},
series: [
// 1
{
type: 'pie',
zlevel: 1, //
radius: ['55%', '58%'],
center: ['50%', '40%'],
radius: ['48%', '50%'],
center: ['50%', '60%'],
label: {
show: false
show: true,
position: 'center',
color: '#9A9EBA',
formatter: ['{a|' + totalNum + '}', '{b|总生产数量}'].join(
'\n\n'
),
rich: {
a: {
color: '#262626',
fontSize: 50
},
b: {
color: '#979797',
fontSize: 22
}
}
},
itemStyle: {
shadowBlur: 10,
@ -98,8 +116,8 @@ export default {
// 1
{
type: 'pie',
radius: ['70%', '71%'],
center: ['50%', '40%'],
radius: ['62%', '63%'],
center: ['50%', '60%'],
zlevel: 1, //
label: {
show: false
@ -122,8 +140,8 @@ export default {
name: 'Access From',
zlevel: 2, //
type: 'pie',
radius: ['58%', '70%'],
center: ['50%', '40%'],
radius: ['50%', '62%'],
center: ['50%', '60%'],
clockwise: true,
avoidLabelOverlap: false,
emphasis: {
@ -132,52 +150,53 @@ export default {
silent: true,
label: {
show: true,
position: 'center',
color: '#9A9EBA',
formatter: ['{a|' + totalNum + '}', '{b|总生产数量}'].join(
'\n\n'
),
formatter(param) {
return [
'{a|' + param.name + '}',
'{b|' + param.value + '}'
].join('\n\n')
},
color: 'inherit',
rich: {
a: {
color: '#262626',
fontSize: 24
fontSize: 18
},
b: {
color: '#979797',
fontSize: 12
color: '#000',
fontSize: 24
}
}
},
labelLine: {
show: false
length2: 60
},
data: [
{
value: djg,
name: '待再加工',
itemStyle: {
color: '#ffb750'
}
},
{
value: lp,
name: '良品数量 ' + lp,
name: '良品数量',
itemStyle: {
color: '#288aff'
}
},
{
value: fp,
name: '废品数量 ' + fp,
name: '废品数量',
itemStyle: {
color: '#7a34fd'
}
},
{
value: djg,
name: '待再加工 ' + djg,
itemStyle: {
color: '#ffb750'
}
},
{
value: tj,
name: '调机数量 ' + tj,
name: '调机数量',
itemStyle: {
color: '#95f3b1'
color: '#50d277'
}
}
]

View File

@ -1,182 +1,71 @@
<template>
<el-row class="detail-box" :style="{ paddingTop: 16 * beilv + 'px' }">
<el-col :span="8">
<div
class="column-box border-right"
:style="{ paddingLeft: 60 * beilv + 'px' }"
>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ detailMsg.code }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>工单编号</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ detailMsg.planNum }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>计划数量</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ type }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>工单类型</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ detailMsg.productSpec }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>产品型号</span
>
</p>
</div>
</el-col>
<el-col :span="8">
<div
class="column-box border-right"
:style="{ paddingLeft: 60 * beilv + 'px' }"
>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ status }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>工单状态</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ detailMsg.realProductNum }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>完成数量</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ planStartTime }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>计划开始时间</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ planEndTime }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>计划结束时间</span
>
</p>
</div>
</el-col>
<el-col :span="8">
<div class="column-box" :style="{ paddingLeft: 60 * beilv + 'px' }">
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ process }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>工单进度</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ yieldNum }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>工单良率</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{
<div class="order-detail">
<span class="title">生产信息</span>
<el-row class="detail-box">
<el-col :span="10">
<div class="column-box border-right">
<p class="box">
<span class="tip-value">{{ planStartTime }}</span>
<span class="tip">计划开始时间</span>
</p>
<p class="box">
<span class="tip-value">{{ planEndTime }}</span>
<span class="tip">计划结束时间</span>
</p>
<p class="box">
<span class="tip-value">{{ startTime }}</span>
<span class="tip">实际开始时间</span>
</p>
<p class="box clear-border">
<span class="tip-value">{{
detailMsg.sumProcessTime ? detailMsg.sumProcessTime : '-'
}}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>累计加工时长</span
>
</p>
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }">
<span
class="tip-value"
:style="{
fontSize: 27 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>{{ startTime }}</span
>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }"
>实际开始时间</span
>
</p>
</div>
</el-col>
</el-row>
}}</span>
<span class="tip">累计加工时长</span>
</p>
</div>
</el-col>
<el-col :span="7">
<div class="column-box border-right">
<p class="box">
<span class="tip-value">{{ detailMsg.code }}</span>
<span class="tip">工单编号</span>
</p>
<p class="box">
<span class="tip-value">{{ detailMsg.planNum }}</span>
<span class="tip">计划数量</span>
</p>
<p class="box">
<span class="tip-value">{{ type }}</span>
<span class="tip">工单类型</span>
</p>
<p class="box clear-border">
<span class="tip-value">{{ process }}</span>
<span class="tip">工单进度</span>
</p>
</div>
</el-col>
<el-col :span="7">
<div class="column-box">
<p class="box">
<span class="tip-value">{{ status }}</span>
<span class="tip">工单状态</span>
</p>
<p class="box">
<span class="tip-value">{{ detailMsg.realProductNum }}</span>
<span class="tip">完成数量</span>
</p>
<p class="box">
<span class="tip-value">{{ detailMsg.productSpec }}</span>
<span class="tip">产品型号</span>
</p>
<p class="box clear-border">
<span class="tip-value">{{ yieldNum }}</span>
<span class="tip">工单良率</span>
</p>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import { timeFormatter } from '@/utils/index'
@ -223,10 +112,14 @@ export default {
return timeFormatter(this.detailMsg.planEndTime)
},
process() {
return (this.detailMsg.process * 100).toFixed(2) + '%'
return this.detailMsg.process
? (this.detailMsg.process * 100).toFixed(0) + '%'
: ''
},
yieldNum() {
return (this.detailMsg.yield * 100).toFixed(2) + '%'
return this.detailMsg.yield
? (this.detailMsg.yield * 100).toFixed(0) + '%'
: ''
},
startTime() {
return timeFormatter(this.detailMsg.startTime)
@ -235,23 +128,51 @@ export default {
}
</script>
<style lang="scss" scoped>
.detail-box {
.column-box {
.box {
.tip-value {
display: block;
.order-detail {
.title {
padding: 24px;
display: inline-block;
}
.title::before {
content: '';
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
}
.detail-box {
padding: 0 16px;
.column-box {
.box {
height: calc((100vh - 240px) / 4);
padding-top: calc(((100vh - 240px) / 4) * 0.3);
padding-left: 30px;
border-bottom: 1px solid #e8e8e8;
.tip-value {
display: block;
font-size: 22px;
height: 18px;
margin-bottom: 12px;
}
.tip {
display: inline-block;
font-size: 16px;
background-color: #cae2ff;
border-radius: 2px;
color: #288aff;
padding: 4px;
}
}
.tip {
display: inline-block;
background-color: #cae2ff;
border-radius: 2px;
color: #288aff;
padding: 4px;
.clear-border {
border: none;
}
}
}
.border-right {
border-right: 1px solid #e8e8e8;
.border-right {
border-right: 1px solid #e8e8e8;
}
}
}
</style>

View File

@ -1,235 +0,0 @@
<template>
<div class="statistics" :style="{ fontSize: 16 * beilv + 'px' }">
<span class="title">{{ line }}在制品统计</span>
<base-table :table-props="tableProps1" :table-data="tableData1" />
<span class="title">面磨单元在制品统计</span>
<base-table :table-props="tableProps2" :table-data="tableData1" />
<span class="title">终检单元在制品统计</span>
<base-table :table-props="tableProps3" :table-data="tableData1" />
</div>
</template>
<script>
const tableProps1 = [
{
prop: 'name1',
label: '精切单元',
minWidth: 100
},
{
prop: 'name2',
label: '磨边单元',
minWidth: 100
},
{
prop: 'name3',
label: '磨边后传送带',
minWidth: 120
},
{
prop: 'name4',
label: '磨边后清洗单元',
minWidth: 120
},
{
prop: 'name5',
label: '磨边清洗后传送带',
minWidth: 140
},
{
prop: 'name6',
label: '再研磨上片单元',
minWidth: 120
},
{
prop: 'name7',
label: '面磨单元',
minWidth: 100
},
{
prop: 'name8',
label: '面磨后传送带',
minWidth: 120
},
{
prop: 'name9',
label: '面磨后清洗单元',
minWidth: 120
},
{
prop: 'name10',
label: '面磨后清洗传送带',
minWidth: 140
},
{
prop: 'name11',
label: '终检传送带',
minWidth: 100
},
{
prop: 'name12',
label: '终检下片单元',
minWidth: 120
}
]
const tableProps2 = [
{
prop: 'name1',
label: '贴合机',
minWidth: 100
},
{
prop: 'name2',
label: '压合机',
minWidth: 100
},
{
prop: 'name3',
label: '干式传送带',
minWidth: 120
},
{
prop: 'name4',
label: '湿式传送带',
minWidth: 120
},
{
prop: 'name5',
label: '剥片机1',
minWidth: 140
},
{
prop: 'name6',
label: '剥片机2',
minWidth: 120
},
{
prop: 'name7',
label: '托盘清洗机',
minWidth: 100
},
{
prop: 'name8',
label: '成品传动带',
minWidth: 120
},
{
prop: 'name9',
label: '托盘缓存',
minWidth: 120
},
{
prop: 'name10',
label: 'SLC研磨机1',
minWidth: 140
},
{
prop: 'name11',
label: 'SLC研磨机2',
minWidth: 100
},
{
prop: 'name12',
label: 'LGC研磨机1',
minWidth: 120
}
]
const tableProps3 = [
{
prop: 'name1',
label: '水平架B1工位',
minWidth: 100
},
{
prop: 'name2',
label: '水平架B2工位',
minWidth: 100
},
{
prop: 'name3',
label: '水平架A1工位',
minWidth: 120
},
{
prop: 'name4',
label: '水平架A2工位',
minWidth: 120
},
{
prop: 'name5',
label: '废片工位',
minWidth: 140
}
]
export default {
name: 'ProgressStatistics',
data() {
return {
list: JSON.parse(localStorage.getItem('publicList')).proLineVoList,
tableProps1,
tableData1: [{ name1: 111 }],
tableProps2,
tableData2: [{ name1: 111 }],
tableProps3,
tableData3: [{ name1: 111 }]
}
},
props: {
// lineName: {
// type: Number,
// default: 1
// },
tableLine: {
type: Array,
default: () => {
return []
}
},
tableGrind: {
type: Array,
default: () => {
return []
}
},
tableFinal: {
type: Array,
default: () => {
return []
}
},
beilv: {
type: Number,
default: 1
}
},
computed: {
line() {
let res = ''
this.list.map((item) => {
if (item.dataCode === this.lineName) {
res = item.dataName
}
})
return res
}
}
}
</script>
<style lang="scss" scoped>
.statistics {
padding: 0 24px;
.title {
display: inline-block;
margin: 24px 0 16px 0;
}
.title::before {
content: '';
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
}
}
</style>

View File

@ -1,186 +1,127 @@
<template>
<div
id="container"
ref="container"
class="main-box"
:style="{ padding: '0 ' + 8 * beilv + 'px ' }"
>
<el-row :gutter="8" class="top-box">
<el-col :span="10">
<div class="top-left">
<div
class="top-title"
:style="{
padding:
16 * beilv + 'px ' + 18 * beilv + 'px ' + 20 * beilv + 'px'
}"
>
<div id="container" ref="container" class="main-box">
<el-row :gutter="8" class="box">
<el-col :span="14">
<div class="left-top">
<div class="top-title">
<svg-icon
icon-class="home_title1"
:style="{
fontSize: 22 * beilv + 'px',
marginRight: 8 * beilv + 'px'
}"
style="font-size: 22px; margin-right: 8px"
/>
<span class="titleStyle" :style="{ fontSize: 16 * beilv + 'px' }"
>生产进度</span
>
<span class="titleStyle">生产进度</span>
</div>
<ul class="line-order-msg">
<li :style="{ width: '40%', paddingLeft: 24 * beilv + 'px' }">
<div :style="{ fontSize: 16 * beilv + 'px' }">
<span
class="title"
:style="{
margin: '0 ' + 5 * beilv + 'px ' + 40 * beilv + 'px ' + '0'
}"
>产线名称</span
<div class="line-order-msg">
<div>
<span class="title" style="margin: 0 8px 32px 0">产线名称</span>
<el-select
v-model="lineName"
placeholder="请选择名称"
size="small"
style="width: 160px"
@change="changeLine"
>
<el-option
v-for="item in nameList"
:key="item.dataCode"
:label="item.dataName"
:value="item.dataCode"
>
<el-select
v-model="lineName"
placeholder="请选择名称"
size="small"
:style="{ width: 150 * beilv + 'px' }"
@change="changeLine"
>
<el-option
v-for="item in nameList"
:key="item.dataCode"
:label="item.dataName"
:value="item.dataCode"
</el-option>
</el-select>
</div>
<el-row :gutter="16">
<el-col :span="12">
<el-row class="plan_num">
<el-col :span="8" class="left-icon">
<svg-icon icon-class="home_plan" style="font-size: 50px" />
</el-col>
<el-col
:span="16"
:style="{ paddingLeft: 32 * beilv + 'px' }"
>
</el-option>
</el-select>
</div>
<div class="num-box" :style="{ paddingRight: 32 * beilv + 'px' }">
<div
class="plan_num"
:style="{
padding:
16 * beilv +
'px 0 ' +
16 * beilv +
'px ' +
32 * beilv +
'px',
marginBottom: 16 * beilv + 'px'
}"
>
<svg-icon
icon-class="home_plan"
:style="{
fontSize: 32 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
/>
<p
class="num"
:style="{
fontSize: 24 * beilv + 'px',
marginBottom: 8 * beilv + 'px'
}"
<p class="num">
{{ productMsg.planNum }}
</p>
<p class="words">计划数量</p>
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row class="product_num">
<el-col :span="8" class="left-icon">
<svg-icon
icon-class="home_product"
style="font-size: 50px"
/>
</el-col>
<el-col
:span="16"
:style="{ paddingLeft: 32 * beilv + 'px' }"
>
{{ productMsg.planNum }}
</p>
<p class="words" :style="{ fontSize: 14 * beilv + 'px' }">
计划数量
</p>
</div>
<div
class="product_num"
:style="{
padding:
16 * beilv +
'px 0 ' +
16 * beilv +
'px ' +
32 * beilv +
'px',
marginBottom: 16 * beilv + 'px'
}"
>
<svg-icon
icon-class="home_product"
:style="{
fontSize: 32 * beilv + 'px',
marginBottom: 8 * beilv + 'px'
}"
/>
<p
class="num"
:style="{
fontSize: 24 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
>
{{ productMsg.realProductNum }}
</p>
<p class="words" :style="{ fontSize: 14 * beilv + 'px' }">
生产数量
</p>
</div>
</div>
</li>
<li :style="{ width: '60%', paddingLeft: 24 * beilv + 'px' }">
<div :style="{ fontSize: 16 * beilv + 'px' }">
<span
class="title"
:style="{
margin: '0 ' + 20 * beilv + 'px ' + 32 * beilv + 'px ' + '0'
}"
>生产信息</span
>
<span>工单号 {{ productMsg.code }}</span>
<ring-chart :chartMsg="productMsg" :beilv="beilv" />
</div>
</li>
</ul>
<p class="num">
{{ productMsg.realProductNum }}
</p>
<p class="words">生产数量</p>
</el-col>
</el-row>
</el-col>
</el-row>
<!-- <div class="num-box" :style="{ paddingRight: 32 * beilv + 'px' }"></div> -->
</div>
</div>
<div class="left-bottom">
<span class="title">生产信息</span>
<span style="margin-left: 16px">工单号 {{ productMsg.code }}</span>
<ring-chart :chartMsg="productMsg" :beilv="beilv" />
</div>
</el-col>
<el-col :span="14">
<div class="top-right">
<el-col :span="10">
<div class="right">
<progress-details :detailMsg="detailMsg" :beilv="beilv" />
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="bottom-box">
<progress-statistics
:tableLine="tableLine"
:tableGrind="tableGrind"
:tableFinal="tableFinal"
:beilv="beilv"
/>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import RingChart from './components/RingChart.vue'
import ProgressDetails from './components/WorkOrderProgressDetails.vue'
import ProgressStatistics from './components/WorkOrderProgressStatistics.vue'
import { getProductData } from '@/api/app'
import {
getProcessInfo,
lineGlassCount,
grindGlassCount,
finalClassCount
} from '@/api/productionScheduling'
import { getProcessInfo } from '@/api/productionScheduling'
export default {
name: 'WorkOrderProgress',
components: { RingChart, ProgressDetails, ProgressStatistics },
components: { RingChart, ProgressDetails },
data() {
return {
beilv: 1,
lineName: 1,
nameList: JSON.parse(localStorage.getItem('publicList')).proLineVoList,
productMsg: {},
detailMsg: {},
tableLine: [],
tableGrind: [],
tableFinal: []
detailMsg: {}
// productMsg: {
// planNum: 110122,
// realProductNum: 110122,
// code: 3234435435345,
// finishNum: 100,
// okNum: 40,
// wasteNum: 10,
// reprocessNum: 10,
// tuneNum: 20
// },
// detailMsg: {
// code: 243434,
// planNum: 23232,
// productSpec: 'xx',
// realProductNum: 2233,
// sumProcessTime: 232,
// startTime: '2022.12.11 12:23:23',
// yield: 0.98,
// process: 0.23,
// planEndTime: '2022.12.11 12:23:23',
// planStartTime: '2022.12.11 12:23:23',
// type: 1,
// status: 1
// }
}
},
mounted() {
@ -198,9 +139,6 @@ export default {
changeLine() {
this.getProductMsg()
this.getProcess()
this.getLineGlassCount()
this.getGrindGlassCount()
this.getFinalClassCount()
},
getProductMsg() {
getProductData({ productionLineId: this.lineName }).then((res) => {
@ -217,30 +155,6 @@ export default {
this.detailMsg = res.data
}
})
},
getLineGlassCount() {
lineGlassCount({ productionLineId: this.lineName }).then((res) => {
console.log(res)
// if (res.code === 0) {
// this.tableLine = res.data
// }
})
},
getGrindGlassCount() {
grindGlassCount({ productionLineId: this.lineName }).then((res) => {
console.log(res)
// if (res.code === 0) {
// this.tableGrind = res.data
// }
})
},
getFinalClassCount() {
finalClassCount({ productionLineId: this.lineName }).then((res) => {
console.log(res)
// if (res.code === 0) {
// this.tableFinal = res.data
// }
})
}
}
}
@ -248,67 +162,85 @@ export default {
<style lang="scss" scoped>
.main-box {
margin-top: 8px;
.top-box {
padding: 0 8px;
.title {
display: inline-block;
}
.title::before {
content: '';
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
}
.box {
width: 100%;
.top-left,
.top-right {
height: calc((100vh - 156px) * 0.49);
background-color: #fff;
border-radius: 8px;
}
.top-left {
.left-top {
height: 275px;
margin-bottom: 8px;
.top-title {
padding: 16px 16px 20px;
}
.titleStyle {
font-size: 16px;
font-weight: 600;
color: rgba(0, 0, 0, 0.9);
vertical-align: top;
}
.line-order-msg {
display: flex;
li {
.title {
display: inline-block;
padding-left: 24px;
padding-right: 24px;
width: 100%;
.plan_num,
.product_num {
height: 118px;
width: 100%;
border-radius: 8px;
.left-icon {
text-align: center;
margin-top: 34px;
}
.title::before {
content: '';
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
.num {
font-size: 32px;
color: rgba(0, 0, 0, 0.85);
margin-top: 28px;
}
.num-box {
border-right: 1px solid #ccc;
.words {
font-size: 18px;
color: rgba(0, 0, 0, 0.65);
}
.plan_num,
.product_num {
width: 100%;
border-radius: 8px;
.num {
color: rgba(0, 0, 0, 0.85);
margin-bottom: 6px;
}
.words {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
}
}
.plan_num {
background: #fff8e8;
.left-icon {
border-right: 1px solid #ff9d50;
}
.plan_num {
background: #fff8e8;
}
.product_num {
background: #e3ffeb;
}
.product_num {
background: #e3ffeb;
.left-icon {
border-right: 1px solid #50d277;
}
}
}
}
}
.bottom-box {
height: calc((100vh - 156px) * 0.51);
background-color: #fff;
border-radius: 8px;
margin: 8px 8px 0 0;
.left-top,
.left-bottom {
background-color: #fff;
border-radius: 8px;
}
.left-bottom {
height: calc(100vh - 156px - 283px);
padding: 24px 24px 0 24px;
}
.right {
height: calc(100vh - 156px);
background-color: #fff;
border-radius: 8px;
}
}
}
</style>

View File

@ -133,9 +133,7 @@ const tableProps = [
},
{
prop: 'grindTime',
label: '总研磨时间',
filter: timeFormatter,
minWidth: 160
label: '总研磨时间'
}
]
export default {

View File

@ -37,7 +37,7 @@
</div>
</template>
<script>
import { getReportCategorylist } from '@/api/reportManagement'
import { getReportCategorylist, getReportNum } from '@/api/reportManagement'
export default {
name: 'ReportList',
data() {
@ -53,16 +53,18 @@ export default {
getList() {
getReportCategorylist({}).then((res) => {
if (res.code === 0 && res.data.length > 0) {
this.totalReports = 0
for (let i = 0; i < res.data.length; i++) {
this.totalReports += res.data[i].quantity
}
this.reportList = res.data
} else {
this.totalReports = 0
this.reportList = []
}
})
getReportNum({}).then((res) => {
if (res.code === 0 && res.data.length > 0) {
this.totalReports = res.data[0].reportNum
} else {
this.totalReports = 0
}
})
},
toDetail(id) {
this.$router.push({