Compare commits

..

No commits in common. "8ceb47038d9c513f2d86e3ea46ea335f9c261746" and "ea9fad130c032c5eaf1ede62ae84a5b873f15283" have entirely different histories.

26 changed files with 748 additions and 369 deletions

View File

@ -1 +0,0 @@
.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-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} .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}

1
dist/css/6681.ea2cf61d.css vendored Normal file
View File

@ -0,0 +1 @@
.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.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> <!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>

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

1
dist/js/2740.5f835a4b.js vendored Normal file
View File

@ -0,0 +1 @@
"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

View File

@ -1 +0,0 @@
"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"}}]);

1
dist/js/6681.1d3c6433.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

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,6 +8,30 @@ 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) { export function getWorkOrderPage(data) {
return request({ return request({

View File

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

View File

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

View File

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

View File

@ -0,0 +1,235 @@
<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,23 +1,46 @@
<template> <template>
<div id="container" ref="container" class="main-box"> <div
<el-row :gutter="8" class="box"> id="container"
<el-col :span="14"> ref="container"
<div class="left-top"> class="main-box"
<div class="top-title"> :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'
}"
>
<svg-icon <svg-icon
icon-class="home_title1" icon-class="home_title1"
style="font-size: 22px; margin-right: 8px" :style="{
fontSize: 22 * beilv + 'px',
marginRight: 8 * beilv + 'px'
}"
/> />
<span class="titleStyle">生产进度</span> <span class="titleStyle" :style="{ fontSize: 16 * beilv + 'px' }"
>生产进度</span
>
</div> </div>
<div class="line-order-msg"> <ul class="line-order-msg">
<div> <li :style="{ width: '40%', paddingLeft: 24 * beilv + 'px' }">
<span class="title" style="margin: 0 8px 32px 0">产线名称</span> <div :style="{ fontSize: 16 * beilv + 'px' }">
<span
class="title"
:style="{
margin: '0 ' + 5 * beilv + 'px ' + 40 * beilv + 'px ' + '0'
}"
>产线名称</span
>
<el-select <el-select
v-model="lineName" v-model="lineName"
placeholder="请选择名称" placeholder="请选择名称"
size="small" size="small"
style="width: 160px" :style="{ width: 150 * beilv + 'px' }"
@change="changeLine" @change="changeLine"
> >
<el-option <el-option
@ -29,99 +52,135 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<el-row :gutter="16"> <div class="num-box" :style="{ paddingRight: 32 * beilv + 'px' }">
<el-col :span="12"> <div
<el-row class="plan_num"> class="plan_num"
<el-col :span="8" class="left-icon"> :style="{
<svg-icon icon-class="home_plan" style="font-size: 50px" /> padding:
</el-col> 16 * beilv +
<el-col 'px 0 ' +
:span="16" 16 * beilv +
:style="{ paddingLeft: 32 * beilv + 'px' }" '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 }} {{ productMsg.planNum }}
</p> </p>
<p class="words">计划数量</p> <p class="words" :style="{ fontSize: 14 * beilv + 'px' }">
</el-col> 计划数量
</el-row> </p>
</el-col> </div>
<el-col :span="12"> <div
<el-row class="product_num"> class="product_num"
<el-col :span="8" class="left-icon"> :style="{
padding:
16 * beilv +
'px 0 ' +
16 * beilv +
'px ' +
32 * beilv +
'px',
marginBottom: 16 * beilv + 'px'
}"
>
<svg-icon <svg-icon
icon-class="home_product" icon-class="home_product"
style="font-size: 50px" :style="{
fontSize: 32 * beilv + 'px',
marginBottom: 8 * beilv + 'px'
}"
/> />
</el-col> <p
<el-col class="num"
:span="16" :style="{
:style="{ paddingLeft: 32 * beilv + 'px' }" fontSize: 24 * beilv + 'px',
marginBottom: 6 * beilv + 'px'
}"
> >
<p class="num">
{{ productMsg.realProductNum }} {{ productMsg.realProductNum }}
</p> </p>
<p class="words">生产数量</p> <p class="words" :style="{ fontSize: 14 * beilv + 'px' }">
</el-col> 生产数量
</el-row> </p>
</el-col>
</el-row>
<!-- <div class="num-box" :style="{ paddingRight: 32 * beilv + 'px' }"></div> -->
</div> </div>
</div> </div>
<div class="left-bottom"> </li>
<span class="title">生产信息</span> <li :style="{ width: '60%', paddingLeft: 24 * beilv + 'px' }">
<span style="margin-left: 16px">工单号 {{ productMsg.code }}</span> <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" /> <ring-chart :chartMsg="productMsg" :beilv="beilv" />
</div> </div>
</li>
</ul>
</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="14">
<div class="right"> <div class="top-right">
<progress-details :detailMsg="detailMsg" :beilv="beilv" /> <progress-details :detailMsg="detailMsg" :beilv="beilv" />
</div> </div>
</el-col> </el-col>
</el-row> </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> </div>
</template> </template>
<script> <script>
import RingChart from './components/RingChart.vue' import RingChart from './components/RingChart.vue'
import ProgressDetails from './components/WorkOrderProgressDetails.vue' import ProgressDetails from './components/WorkOrderProgressDetails.vue'
import ProgressStatistics from './components/WorkOrderProgressStatistics.vue'
import { getProductData } from '@/api/app' import { getProductData } from '@/api/app'
import { getProcessInfo } from '@/api/productionScheduling' import {
getProcessInfo,
lineGlassCount,
grindGlassCount,
finalClassCount
} from '@/api/productionScheduling'
export default { export default {
name: 'WorkOrderProgress', name: 'WorkOrderProgress',
components: { RingChart, ProgressDetails }, components: { RingChart, ProgressDetails, ProgressStatistics },
data() { data() {
return { return {
beilv: 1, beilv: 1,
lineName: 1, lineName: 1,
nameList: JSON.parse(localStorage.getItem('publicList')).proLineVoList, nameList: JSON.parse(localStorage.getItem('publicList')).proLineVoList,
productMsg: {}, productMsg: {},
detailMsg: {} detailMsg: {},
// productMsg: { tableLine: [],
// planNum: 110122, tableGrind: [],
// realProductNum: 110122, tableFinal: []
// 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() { mounted() {
@ -139,6 +198,9 @@ export default {
changeLine() { changeLine() {
this.getProductMsg() this.getProductMsg()
this.getProcess() this.getProcess()
this.getLineGlassCount()
this.getGrindGlassCount()
this.getFinalClassCount()
}, },
getProductMsg() { getProductMsg() {
getProductData({ productionLineId: this.lineName }).then((res) => { getProductData({ productionLineId: this.lineName }).then((res) => {
@ -155,6 +217,30 @@ export default {
this.detailMsg = res.data 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
// }
})
} }
} }
} }
@ -162,7 +248,23 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.main-box { .main-box {
margin-top: 8px; margin-top: 8px;
padding: 0 8px; .top-box {
width: 100%;
.top-left,
.top-right {
height: calc((100vh - 156px) * 0.49);
background-color: #fff;
border-radius: 8px;
}
.top-left {
.titleStyle {
font-weight: 600;
color: rgba(0, 0, 0, 0.9);
vertical-align: top;
}
.line-order-msg {
display: flex;
li {
.title { .title {
display: inline-block; display: inline-block;
} }
@ -176,71 +278,37 @@ export default {
margin-right: 8px; margin-right: 8px;
vertical-align: middle; vertical-align: middle;
} }
.box { .num-box {
width: 100%; border-right: 1px solid #ccc;
.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 {
padding-left: 24px;
padding-right: 24px;
width: 100%;
.plan_num, .plan_num,
.product_num { .product_num {
height: 118px;
width: 100%; width: 100%;
border-radius: 8px; border-radius: 8px;
.left-icon {
text-align: center;
margin-top: 34px;
}
.num { .num {
font-size: 32px;
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
margin-top: 28px; margin-bottom: 6px;
} }
.words { .words {
font-size: 18px; font-size: 14px;
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.45);
} }
} }
.plan_num { .plan_num {
background: #fff8e8; background: #fff8e8;
.left-icon {
border-right: 1px solid #ff9d50;
}
} }
.product_num { .product_num {
background: #e3ffeb; background: #e3ffeb;
.left-icon {
border-right: 1px solid #50d277;
} }
} }
} }
} }
.left-top, }
.left-bottom { .bottom-box {
height: calc((100vh - 156px) * 0.51);
background-color: #fff; background-color: #fff;
border-radius: 8px; border-radius: 8px;
} margin: 8px 8px 0 0;
.left-bottom {
height: calc(100vh - 156px - 283px);
padding: 24px 24px 0 24px;
}
.right {
height: calc(100vh - 156px);
background-color: #fff;
border-radius: 8px;
}
} }
} }
</style> </style>

View File

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

View File

@ -37,7 +37,7 @@
</div> </div>
</template> </template>
<script> <script>
import { getReportCategorylist, getReportNum } from '@/api/reportManagement' import { getReportCategorylist } from '@/api/reportManagement'
export default { export default {
name: 'ReportList', name: 'ReportList',
data() { data() {
@ -53,16 +53,14 @@ export default {
getList() { getList() {
getReportCategorylist({}).then((res) => { getReportCategorylist({}).then((res) => {
if (res.code === 0 && res.data.length > 0) { 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 this.reportList = res.data
} else {
this.reportList = []
}
})
getReportNum({}).then((res) => {
if (res.code === 0 && res.data.length > 0) {
this.totalReports = res.data[0].reportNum
} else { } else {
this.totalReports = 0 this.totalReports = 0
this.reportList = []
} }
}) })
}, },