工单进度 #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
Showing only changes of commit 58bc2d3682 - Show all commits

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) { export function getWorkOrderPage(data) {
return request({ 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) { export function reportCategoryAdd(data) {
return request({ return request({
url: '/report/report-sheet-category/add', url: '/report/report-sheet-category/add',

View File

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

View File

@ -1,182 +1,71 @@
<template> <template>
<el-row class="detail-box" :style="{ paddingTop: 16 * beilv + 'px' }"> <div class="order-detail">
<el-col :span="8"> <span class="title">生产信息</span>
<div <el-row class="detail-box">
class="column-box border-right" <el-col :span="10">
:style="{ paddingLeft: 60 * beilv + 'px' }" <div class="column-box border-right">
> <p class="box">
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }"> <span class="tip-value">{{ planStartTime }}</span>
<span <span class="tip">计划开始时间</span>
class="tip-value" </p>
:style="{ <p class="box">
fontSize: 27 * beilv + 'px', <span class="tip-value">{{ planEndTime }}</span>
marginBottom: 6 * beilv + 'px' <span class="tip">计划结束时间</span>
}" </p>
>{{ detailMsg.code }}</span <p class="box">
> <span class="tip-value">{{ startTime }}</span>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }" <span class="tip">实际开始时间</span>
>工单编号</span </p>
> <p class="box clear-border">
</p> <span class="tip-value">{{
<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'
}"
>{{
detailMsg.sumProcessTime ? detailMsg.sumProcessTime : '-' detailMsg.sumProcessTime ? detailMsg.sumProcessTime : '-'
}}</span }}</span>
> <span class="tip">累计加工时长</span>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }" </p>
>累计加工时长</span </div>
> </el-col>
</p> <el-col :span="7">
<p class="box" :style="{ marginTop: 27 * beilv + 'px' }"> <div class="column-box border-right">
<span <p class="box">
class="tip-value" <span class="tip-value">{{ detailMsg.code }}</span>
:style="{ <span class="tip">工单编号</span>
fontSize: 27 * beilv + 'px', </p>
marginBottom: 6 * beilv + 'px' <p class="box">
}" <span class="tip-value">{{ detailMsg.planNum }}</span>
>{{ startTime }}</span <span class="tip">计划数量</span>
> </p>
<span class="tip" :style="{ fontSize: 16 * beilv + 'px' }" <p class="box">
>实际开始时间</span <span class="tip-value">{{ type }}</span>
> <span class="tip">工单类型</span>
</p> </p>
</div> <p class="box clear-border">
</el-col> <span class="tip-value">{{ process }}</span>
</el-row> <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> </template>
<script> <script>
import { timeFormatter } from '@/utils/index' import { timeFormatter } from '@/utils/index'
@ -223,10 +112,14 @@ export default {
return timeFormatter(this.detailMsg.planEndTime) return timeFormatter(this.detailMsg.planEndTime)
}, },
process() { process() {
return (this.detailMsg.process * 100).toFixed(2) + '%' return this.detailMsg.process
? (this.detailMsg.process * 100).toFixed(0) + '%'
: ''
}, },
yieldNum() { yieldNum() {
return (this.detailMsg.yield * 100).toFixed(2) + '%' return this.detailMsg.yield
? (this.detailMsg.yield * 100).toFixed(0) + '%'
: ''
}, },
startTime() { startTime() {
return timeFormatter(this.detailMsg.startTime) return timeFormatter(this.detailMsg.startTime)
@ -235,23 +128,51 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.detail-box { .order-detail {
.column-box { .title {
.box { padding: 24px;
.tip-value { display: inline-block;
display: 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 { .clear-border {
display: inline-block; border: none;
background-color: #cae2ff;
border-radius: 2px;
color: #288aff;
padding: 4px;
} }
} }
} .border-right {
.border-right { border-right: 1px solid #e8e8e8;
border-right: 1px solid #e8e8e8; }
} }
} }
</style> </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> <template>
<div <div id="container" ref="container" class="main-box">
id="container" <el-row :gutter="8" class="box">
ref="container" <el-col :span="14">
class="main-box" <div class="left-top">
:style="{ padding: '0 ' + 8 * beilv + 'px ' }" <div class="top-title">
>
<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="{ style="font-size: 22px; margin-right: 8px"
fontSize: 22 * beilv + 'px',
marginRight: 8 * beilv + 'px'
}"
/> />
<span class="titleStyle" :style="{ fontSize: 16 * beilv + 'px' }" <span class="titleStyle">生产进度</span>
>生产进度</span
>
</div> </div>
<ul class="line-order-msg"> <div class="line-order-msg">
<li :style="{ width: '40%', paddingLeft: 24 * beilv + 'px' }"> <div>
<div :style="{ fontSize: 16 * beilv + 'px' }"> <span class="title" style="margin: 0 8px 32px 0">产线名称</span>
<span <el-select
class="title" v-model="lineName"
:style="{ placeholder="请选择名称"
margin: '0 ' + 5 * beilv + 'px ' + 40 * beilv + 'px ' + '0' size="small"
}" style="width: 160px"
>产线名称</span @change="changeLine"
>
<el-option
v-for="item in nameList"
:key="item.dataCode"
:label="item.dataName"
:value="item.dataCode"
> >
<el-select </el-option>
v-model="lineName" </el-select>
placeholder="请选择名称" </div>
size="small" <el-row :gutter="16">
:style="{ width: 150 * beilv + 'px' }" <el-col :span="12">
@change="changeLine" <el-row class="plan_num">
> <el-col :span="8" class="left-icon">
<el-option <svg-icon icon-class="home_plan" style="font-size: 50px" />
v-for="item in nameList" </el-col>
:key="item.dataCode" <el-col
:label="item.dataName" :span="16"
:value="item.dataCode" :style="{ paddingLeft: 32 * beilv + 'px' }"
> >
</el-option> <p class="num">
</el-select> {{ productMsg.planNum }}
</div> </p>
<div class="num-box" :style="{ paddingRight: 32 * beilv + 'px' }"> <p class="words">计划数量</p>
<div </el-col>
class="plan_num" </el-row>
:style="{ </el-col>
padding: <el-col :span="12">
16 * beilv + <el-row class="product_num">
'px 0 ' + <el-col :span="8" class="left-icon">
16 * beilv + <svg-icon
'px ' + icon-class="home_product"
32 * beilv + style="font-size: 50px"
'px', />
marginBottom: 16 * beilv + 'px' </el-col>
}" <el-col
> :span="16"
<svg-icon :style="{ paddingLeft: 32 * beilv + 'px' }"
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'
}"
> >
{{ productMsg.planNum }} <p class="num">
</p> {{ productMsg.realProductNum }}
<p class="words" :style="{ fontSize: 14 * beilv + 'px' }"> </p>
计划数量 <p class="words">生产数量</p>
</p> </el-col>
</div> </el-row>
<div </el-col>
class="product_num" </el-row>
:style="{ <!-- <div class="num-box" :style="{ paddingRight: 32 * beilv + 'px' }"></div> -->
padding: </div>
16 * beilv + </div>
'px 0 ' + <div class="left-bottom">
16 * beilv + <span class="title">生产信息</span>
'px ' + <span style="margin-left: 16px">工单号 {{ productMsg.code }}</span>
32 * beilv + <ring-chart :chartMsg="productMsg" :beilv="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>
</div> </div>
</el-col> </el-col>
<el-col :span="14"> <el-col :span="10">
<div class="top-right"> <div class="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 { import { getProcessInfo } from '@/api/productionScheduling'
getProcessInfo,
lineGlassCount,
grindGlassCount,
finalClassCount
} from '@/api/productionScheduling'
export default { export default {
name: 'WorkOrderProgress', name: 'WorkOrderProgress',
components: { RingChart, ProgressDetails, ProgressStatistics }, components: { RingChart, ProgressDetails },
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: {}
tableLine: [], // productMsg: {
tableGrind: [], // planNum: 110122,
tableFinal: [] // 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() { mounted() {
@ -198,9 +139,6 @@ 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) => {
@ -217,30 +155,6 @@ 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
// }
})
} }
} }
} }
@ -248,67 +162,85 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.main-box { .main-box {
margin-top: 8px; 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%; width: 100%;
.top-left, .left-top {
.top-right { height: 275px;
height: calc((100vh - 156px) * 0.49); margin-bottom: 8px;
background-color: #fff; .top-title {
border-radius: 8px; padding: 16px 16px 20px;
} }
.top-left {
.titleStyle { .titleStyle {
font-size: 16px;
font-weight: 600; font-weight: 600;
color: rgba(0, 0, 0, 0.9); color: rgba(0, 0, 0, 0.9);
vertical-align: top; vertical-align: top;
} }
.line-order-msg { .line-order-msg {
display: flex; padding-left: 24px;
li { padding-right: 24px;
.title { width: 100%;
display: inline-block; .plan_num,
.product_num {
height: 118px;
width: 100%;
border-radius: 8px;
.left-icon {
text-align: center;
margin-top: 34px;
} }
.title::before { .num {
content: ''; font-size: 32px;
display: inline-block; color: rgba(0, 0, 0, 0.85);
width: 4px; margin-top: 28px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
} }
.num-box { .words {
border-right: 1px solid #ccc; font-size: 18px;
color: rgba(0, 0, 0, 0.65);
} }
.plan_num, }
.product_num { .plan_num {
width: 100%; background: #fff8e8;
border-radius: 8px; .left-icon {
.num { border-right: 1px solid #ff9d50;
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; .product_num {
} background: #e3ffeb;
.product_num { .left-icon {
background: #e3ffeb; border-right: 1px solid #50d277;
} }
} }
} }
} }
} .left-top,
.bottom-box { .left-bottom {
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,9 +133,7 @@ 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 } from '@/api/reportManagement' import { getReportCategorylist, getReportNum } from '@/api/reportManagement'
export default { export default {
name: 'ReportList', name: 'ReportList',
data() { data() {
@ -53,16 +53,18 @@ 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 { } else {
this.totalReports = 0
this.reportList = [] 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) { toDetail(id) {
this.$router.push({ this.$router.push({