增加报表管理模块

This commit is contained in:
朱菊兰 2023-05-30 09:00:50 +08:00
父節點 2ae3d3f3e7
當前提交 de0a6c45e0
共有 93 個檔案被更改,包括 950 行新增1070 行删除

1
dist/css/1909.65f8bc12.css vendored Normal file
查看文件

@ -0,0 +1 @@
.reportView[data-v-6dc52bd4]{margin:0 16px 0 16px;width:98.5%;height:calc(100vh - 205px)}.reportView .mainIframe[data-v-6dc52bd4]{width:100%;height:100%}

查看文件

@ -1 +0,0 @@
.substrate-glass-quality-box[data-v-42531d47]{height:calc(100vh - 203px);padding:12px 16px;margin:0 16px;border-radius:8px;background-color:#fff}

查看文件

@ -1 +0,0 @@
.reportView[data-v-710dfb7b]{margin:0 16px 0 16px;width:98.5%;height:calc(100vh - 205px)}.reportView .mainIframe[data-v-710dfb7b]{width:100%;height:100%}

查看文件

@ -1 +1 @@
.production-report-box[data-v-b4666666]{height:calc(100vh - 203px);padding:12px 16px;margin:0 16px;border-radius:8px;background-color:#fff}
.production-report-box[data-v-7865de37]{height:calc(100vh - 203px);padding:12px 16px;margin:0 16px;border-radius:8px;background-color:#fff}

查看文件

@ -1 +0,0 @@
.thickness-detection-box[data-v-b5a752ea]{margin:0 16px}.thickness-detection-box .search-box[data-v-b5a752ea]{height:62px;padding:8px 16px;margin-bottom:8px;border-radius:8px;background-color:#fff}.thickness-detection-box .table-box[data-v-b5a752ea]{width:100%}.thickness-detection-box .table-box .boxL[data-v-b5a752ea],.thickness-detection-box .table-box .boxR[data-v-b5a752ea]{padding:16px;border-radius:8px;height:calc(100vh - 272px);background-color:#fff}.thickness-detection-box .table-box .boxL .table-button[data-v-b5a752ea]{display:inline-block;height:30px;width:100%;text-align:center;padding-top:4px;margin-bottom:16px;font-size:14px;color:#0b58ff;border-radius:4px;border:1px dotted #0b58ff;cursor:pointer}.thickness-detection-box .table-box .boxR .tip[data-v-b5a752ea]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.thickness-detection-box .table-box .boxR .tip[data-v-b5a752ea]{display:inline-block;font-size:14px;margin-bottom:12px}

查看文件

@ -1 +0,0 @@
.reportDesign[data-v-1c79afe0]{margin:0 16px 0 16px;width:98.5%;height:calc(100vh - 205px)}.reportDesign .mainIframe[data-v-1c79afe0]{width:100%;height:100%}

查看文件

@ -1 +1 @@
.plan-maintenance[data-v-d565ab3a]{height:calc(100vh - 203px);padding:12px 16px;margin:0 16px;border-radius:8px;background-color:#fff}
.plan-maintenance[data-v-2348839c]{height:calc(100vh - 203px);padding:12px 16px;margin:0 16px;border-radius:8px;background-color:#fff}

1
dist/css/5271.3daf5a00.css vendored Normal file
查看文件

@ -0,0 +1 @@
.finalInspectionData[data-v-6bd3173e]{width:100%}.finalInspectionData .box-top[data-v-6bd3173e]{width:100%;padding:8px 16px 0}.finalInspectionData .box-top .search-box[data-v-6bd3173e]{height:62px;padding:10px 16px;box-sizing:border-box;border-radius:8px;background-color:#fff}.finalInspectionData .box[data-v-6bd3173e]{width:100%;padding:8px 8px 0 16px}.finalInspectionData .box .left-box[data-v-6bd3173e],.finalInspectionData .box .right-box[data-v-6bd3173e]{height:calc(100vh - 220px);padding:16px;border-radius:8px;background-color:#fff}.finalInspectionData .box .left-box .table-box[data-v-6bd3173e],.finalInspectionData .box .right-box .table-box[data-v-6bd3173e]{margin-top:16px;height:calc(100vh - 290px);overflow:auto}.finalInspectionData .box .left-box .table-button[data-v-6bd3173e]{display:inline-block;height:30px;width:100%;text-align:center;padding-top:4px;margin-bottom:16px;font-size:14px;color:#0b58ff;border-radius:4px;border:1px dotted #0b58ff;cursor:pointer}.finalInspectionData .box .right-box .title[data-v-6bd3173e]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}

1
dist/css/5797.81598d88.css vendored Normal file
查看文件

@ -0,0 +1 @@
.reportDesign[data-v-436e48a9]{margin:0 16px 0 16px;width:98.5%;height:calc(100vh - 205px)}.reportDesign .mainIframe[data-v-436e48a9]{width:100%;height:100%}

查看文件

@ -1 +0,0 @@
.finalInspectionData[data-v-6863655e]{width:100%}.finalInspectionData .box-top[data-v-6863655e]{width:100%;padding:8px 16px 0}.finalInspectionData .box-top .search-box[data-v-6863655e]{height:62px;padding:10px 16px;box-sizing:border-box;border-radius:8px;background-color:#fff}.finalInspectionData .box[data-v-6863655e]{width:100%;padding:8px 8px 0 16px}.finalInspectionData .box .left-box[data-v-6863655e],.finalInspectionData .box .right-box[data-v-6863655e]{height:calc(100vh - 220px);padding:16px;border-radius:8px;background-color:#fff}.finalInspectionData .box .left-box .table-box[data-v-6863655e],.finalInspectionData .box .right-box .table-box[data-v-6863655e]{margin-top:16px;height:calc(100vh - 290px);overflow:auto}.finalInspectionData .box .left-box .table-button[data-v-6863655e]{display:inline-block;height:30px;width:100%;text-align:center;padding-top:4px;margin-bottom:16px;font-size:14px;color:#0b58ff;border-radius:4px;border:1px dotted #0b58ff;cursor:pointer}.finalInspectionData .box .right-box .title[data-v-6863655e]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}

查看文件

@ -1 +0,0 @@
.generate-reports-box .el-menu{background-color:#f2f4f9}.generate-reports-box .el-menu.el-menu--horizontal{border-bottom:none;width:100%;display:flex;justify-content:space-between;padding:8px 8px}.generate-reports-box .el-menu.el-menu--horizontal .el-menu-item{height:48px;line-height:48px;width:32.5%;border-radius:8px;background-color:#fff;font-size:16px;color:hsla(0,0%,9%,.65);text-align:center}.generate-reports-box .el-tabs__active-bar{display:none}

2
dist/index.html vendored
查看文件

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>tft-mes</title><script defer="defer" src="/js/chunk-vendors.a42f8636.js"></script><script defer="defer" src="/js/app.e2f493b2.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.8a6daf4f.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 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[3366],{3366:function(t,e,r){r.r(e),r.d(e,{default:function(){return l}});var n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"reportView",attrs:{id:"reportView"}},[e("iframe",{attrs:{src:t.url,width:"100%",height:"100%"}})])},s=[],i={name:"ReportView",data(){return{url:"http://tft.mes.picaiba.com/ureport/preview"}},mounted(){const t=this,{name:e}=this.$route.params;this.url+=e?"?_u=db:"+this.$route.params.name:"";const r=document.getElementById("reportView");r.onload=function(){console.log("加载完成"),t.loading=!1}}},a=i,o=r(1001),u=(0,o.Z)(a,n,s,!1,null,"710dfb7b",null),l=u.exports}}]);
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[1909],{1909:function(t,e,r){r.r(e),r.d(e,{default:function(){return c}});var n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"reportView",attrs:{id:"reportView"}},[e("iframe",{attrs:{src:t.url,width:"100%",height:"100%"}})])},s=[],i={name:"ReportView",data(){return{url:"http://tft.mes.picaiba.com/ureport/preview"}},mounted(){const t=this,{name:e}=this.$route.params;this.url+=e?"?_u=db:"+this.$route.params.name:"";const r=document.getElementById("reportView");r.onload=function(){console.log("加载完成"),t.loading=!1}}},a=i,o=r(1001),u=(0,o.Z)(a,n,s,!1,null,"6dc52bd4",null),c=u.exports}}]);

檔案差異因為一行或多行太長而無法顯示

1
dist/js/2413.b0006aaf.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/2740.0ffcbd63.js vendored Normal 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},QL:function(){return i},W0:function(){return f},a:function(){return c},an:function(){return _},bu:function(){return g},fL:function(){return C},kB:function(){return s},m3:function(){return l},oR:function(){return v},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 v(t){return(0,o.Z)({url:"/report/GlassReport/qualityReportexport",method:"post",responseType:"blob",data:t})}function g(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 C(t){return(0,o.Z)({url:"/quality/finalpackaging/claGlassData",method:"post",data:t})}},5002:function(t,r,e){t.exports=e.p+"img/report.b2b3c253.png"}}]);

查看文件

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[2801],{2801:function(e,a,t){t.r(a),t.d(a,{default:function(){return d}});var l=function(){var e=this,a=e._self._c;return a("div",{staticClass:"substrate-glass-quality-box"},[a("search-bar",{ref:"searchBarForm",attrs:{formConfigs:e.formConfig},on:{headBtnClick:e.buttonClick}}),a("base-table",{attrs:{page:e.listQuery.current,limit:e.listQuery.size,"table-props":e.tableProps,"table-data":e.tableData,"max-height":e.tableH}})],1)},i=[],r=t(475);const o=[{prop:"time",label:"检测时间",minWidth:100},{prop:"glassID",label:"玻璃ID",minWidth:100},{prop:"lineA",label:"加工条件",align:"center",children:[{prop:"workTime",label:"托盘ID"},{prop:"workTimeRate",label:"研磨类型"}]},{prop:"lineB",label:"检测数据",align:"center",children:[{prop:"downTime",label:"灵敏度"},{prop:"downTimeRate",label:"颗粒总数"},{prop:"downTime1",label:"锡点"},{prop:"downTimeRate2",label:"变形"},{prop:"downTime3",label:"拖尾"},{prop:"downTimeRate4",label:"气泡"},{prop:"downTime5",label:"锡尺寸"},{prop:"downTimeRate6",label:"结石"},{prop:"downTime7",label:"划伤"},{prop:"downTimeRate8",label:"面检总数"}]},{prop:"lineC",label:"研磨电流(A)",align:"center",children:[{prop:"faultTime",label:"A机台"},{prop:"faultTimeRate",label:"B机台"},{prop:"faultTime1",label:"C机台"},{prop:"faultTimeRate1",label:"总电流"}]},{prop:"lineD",label:"研磨时间(S)",align:"center",children:[{prop:"faultTime",label:"A机台"},{prop:"faultTimeRate",label:"B机台"},{prop:"faultTime1",label:"C机台"},{prop:"faultTimeRate1",label:"总研磨时间",minWidth:100}]},{prop:"lineE",label:"工艺符合性",minWidth:100}];var p={name:"substrateGlassQuality",data(){return{formConfig:[{type:"select",label:"产线",selectOptions:JSON.parse(localStorage.getItem("publicList")).proLineVoList,param:"proLineId",defaultSelect:"",width:120},{type:"select",label:"白班",selectOptions:JSON.parse(localStorage.getItem("publicList")).proLineVoList,labelField:"dataName",valueField:"dataCode",param:"type",defaultSelect:"",width:100},{type:"datePicker",label:"上架时间",dateType:"datetimerange",format:"yyyy-MM-dd HH:mm:ss",valueFormat:"yyyy-MM-ddTHH:mm:ss",rangeSeparator:"-",startPlaceholder:"开始时间",endPlaceholder:"结束时间",param:"timeVal",width:350},{type:"button",btnName:"查询",name:"search",color:"primary"},{type:"separate"},{type:"button",btnName:"导出",name:"export",color:"primary",plain:!0}],listQuery:{current:1,size:20},tableProps:o,tableData:[],tableH:(0,r.NC)(329)}},mounted(){window.addEventListener("resize",(()=>{this.tableH=(0,r.NC)(329)})),this.tableData=[{equipmentName:"设备1",workTime:100,workTimeRate:.5,downTime:5,downTimeRate:.02,faultTime:0,faultTimeRate:0,actualProcessingSpeed:10,theoreticalProcessingSpeed:10,speedActuationRate:.3},{equipmentName:"设备2",workTime:100,workTimeRate:.5,downTime:5,downTimeRate:.02,faultTime:0,faultTimeRate:0,actualProcessingSpeed:10,theoreticalProcessingSpeed:10,speedActuationRate:.3},{equipmentName:"设备3",workTime:100,workTimeRate:.5,downTime:5,downTimeRate:.02,faultTime:0,faultTimeRate:0,actualProcessingSpeed:10,theoreticalProcessingSpeed:10,speedActuationRate:.3}]},methods:{buttonClick(e){console.log(e)}}},n=p,m=t(1001),s=(0,m.Z)(n,l,i,!1,null,"42531d47",null),d=s.exports}}]);

檔案差異因為一行或多行太長而無法顯示

1
dist/js/2990.145272cf.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/3813.435d2e60.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/3899.4bd3c5c8.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/4048.0faf667a.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

查看文件

@ -1 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[7552],{7552:function(e,t,n){n.r(t),n.d(t,{default:function(){return m}});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"report-management"},[t("el-menu",{attrs:{"default-active":e.activeName,mode:"horizontal"},on:{select:e.handleSelect}},[t("el-menu-item",{attrs:{index:"reportList"}},[e._v("报表列表")]),t("el-menu-item",{attrs:{index:"reportDesign"}},[e._v("报表设计")]),t("el-menu-item",{attrs:{index:"reportClassification"}},[e._v("报表分类")])],1),t("section",[t("router-view")],1)],1)},r=[],i={name:"ReportManagement",data(){return{activeName:""}},mounted(){this.activeName=this.$route.name},methods:{handleSelect(e){this.$router.push({name:e})}},watch:{$route:{handler:function(e){this.activeName=e.name}}}},s=i,u=n(1001),l=(0,u.Z)(s,a,r,!1,null,null,null),m=l.exports}}]);
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[4350],{4350:function(e,t,n){n.r(t),n.d(t,{default:function(){return m}});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"report-management"},[t("el-menu",{attrs:{"default-active":e.activeName,mode:"horizontal"},on:{select:e.handleSelect}},[t("el-menu-item",{attrs:{index:"reportList"}},[e._v("报表列表")]),t("el-menu-item",{attrs:{index:"reportDesign"}},[e._v("报表设计")]),t("el-menu-item",{attrs:{index:"reportClassification"}},[e._v("报表分类")])],1),t("section",[t("router-view")],1)],1)},r=[],i={name:"ReportManagement",data(){return{activeName:""}},mounted(){this.activeName=this.$route.name},methods:{handleSelect(e){this.$router.push({name:e})}},watch:{$route:{handler:function(e){this.activeName=e.name}}}},s=i,u=n(1001),l=(0,u.Z)(s,a,r,!1,null,null,null),m=l.exports}}]);

1
dist/js/4922.6d343695.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/5096.efa7f846.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/5271.8199e756.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/5748.94b73395.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

查看文件

@ -1 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[4238],{4238:function(t,e,r){r.r(e),r.d(e,{default:function(){return c}});var n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"reportDesign",attrs:{id:"reportDesign"}},[e("iframe",{attrs:{src:t.url,width:"100%",height:"100%"}})])},s=[],a={name:"ReportDesign",data(){return{url:"http://tft.mes.picaiba.com/ureport/designer"}},mounted(){const t=this,{name:e}=this.$route.params;this.url+=e?"?_u=db:"+this.$route.params.name:"";const r=document.getElementById("reportDesign");r.onload=function(){console.log("加载完成"),t.loading=!1}}},i=a,o=r(1001),u=(0,o.Z)(i,n,s,!1,null,"1c79afe0",null),c=u.exports}}]);
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[5797],{5797:function(t,e,r){r.r(e),r.d(e,{default:function(){return l}});var n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"reportDesign",attrs:{id:"reportDesign"}},[e("iframe",{attrs:{src:t.url,width:"100%",height:"100%"}})])},s=[],a={name:"ReportDesign",data(){return{url:"http://tft.mes.picaiba.com/ureport/designer"}},mounted(){const t=this,{name:e}=this.$route.params;this.url+=e?"?_u=db:"+this.$route.params.name:"";const r=document.getElementById("reportDesign");r.onload=function(){console.log("加载完成"),t.loading=!1}}},i=a,o=r(1001),u=(0,o.Z)(i,n,s,!1,null,"436e48a9",null),l=u.exports}}]);

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

查看文件

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[868],{868:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"generate-reports-box"},[t("el-menu",{attrs:{"default-active":e.activeName,mode:"horizontal"},on:{select:e.handleSelect}},[t("el-menu-item",{attrs:{index:"productionReport"}},[e._v("生产报表")]),t("el-menu-item",{attrs:{index:"substrateGlassQuality"}},[e._v("基板玻璃品质")]),t("el-menu-item",{attrs:{index:"thicknessDetection"}},[e._v("厚度检测")])],1),t("section",[t("router-view")],1)],1)},s=[],r={name:"GenerateReports",data(){return{activeName:""}},mounted(){this.activeName=this.$route.name},methods:{handleSelect(e){this.$router.push({name:e})}},watch:{$route:{handler:function(e){this.activeName=e.name}}}},i=r,u=n(1001),l=(0,u.Z)(i,a,s,!1,null,null,null),o=l.exports}}]);

檔案差異因為一行或多行太長而無法顯示

1
dist/js/889.fda67dfe.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/9707.b2783b7b.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

1
dist/js/app.8a6daf4f.js vendored Normal file

檔案差異因為一行或多行太長而無法顯示

檔案差異因為一行或多行太長而無法顯示

查看文件

@ -221,84 +221,3 @@ export function getEqCode(data) {
data
})
}
// 报表管理
export function getReportCategorylist(data) {
return request({
url: '/report/report-sheet-category/list',
method: 'post',
data
})
}
export function getReportlist(data) {
return request({
url: '/report/report-sheet/page',
method: 'post',
data
})
}
export function updateReportlist(data) {
return request({
url: '/report/report-sheet/update',
method: 'post',
data
})
}
export function delReportlist(data) {
return request({
url: '/report/report-sheet/delete',
method: 'post',
data
})
}
// by id
export function getReport(data) {
return request({
url: '/report/report-sheet/get',
method: 'post',
data
})
}
// 报表管理--报表分类
export function getReportCategory(data) {
return request({
url: '/report/report-sheet-category/page',
method: 'post',
data
})
}
export function reportCategoryAdd(data) {
return request({
url: '/report/report-sheet-category/add',
method: 'post',
data
})
}
export function reportCategoryUpdate(data) {
return request({
url: '/report/report-sheet-category/update',
method: 'post',
data
})
}
export function getReportCategoryById(data) {
return request({
url: '/report/report-sheet-category/get',
method: 'post',
data
})
}
export function reportCategoryDelete(data) {
return request({
url: '/report/report-sheet-category/delete',
method: 'post',
data
})
}

查看文件

@ -99,24 +99,6 @@ export function workOrderImportTemplate(data) {
export const uploadPath = '/api/order/workOrder/import'
// 生产报表
export function pageThickness(data) {
return request({
url: '/order/proReport/pageThickness',
method: 'post',
data
})
}
export function proReport(data) {
return request({
url: '/order/proReport/genTable',
method: 'post',
formState: true,
data
})
}
// 下架包装
export function unloadPalletPage(data) {
return request({

查看文件

@ -164,65 +164,6 @@ export function drawThickness(val) {
})
}
// 终检数据-获取玻璃列表数据
export function listGlass(data) {
return request({
url: '/report/GlassReport/listGlass',
method: 'post',
data
})
}
// 终检数据-基板品质报表查询
export function qualityReport(data) {
return request({
url: '/report/GlassReport/qualityReport',
method: 'post',
data
})
}
// 终检数据-基板品质报表导出
export function qualityReportexport(data) {
return request({
url: '/report/GlassReport/qualityReportexport',
method: 'post',
responseType: 'blob',
data
})
}
// 终检数据-厚度汇总报表查询
export function thickReport(data) {
return request({
url: '/report/GlassReport/thickReport',
method: 'post',
data
})
}
// 终检数据-厚度汇总报表导出
export function thickReportexport(data) {
return request({
url: '/report/GlassReport/thickReportexport',
method: 'post',
responseType: 'blob',
data
})
}
// 终检数据-终检下片包装报表查询
export function queryGlassData(data) {
return request({
url: '/quality/finalpackaging/queryGlassData',
method: 'post',
data
})
}
// 终检数据-终检下片包装报表计算
export function claGlassData(data) {
return request({
url: '/quality/finalpackaging/claGlassData',
method: 'post',
data
})
}
// 产品追溯-获取分页产品追溯
export function productTrace(data) {
return request({

140
src/api/reportManagement.js Normal file
查看文件

@ -0,0 +1,140 @@
import request from './request'
// 报表工具
export function getReportCategorylist(data) {
return request({
url: '/report/report-sheet-category/list',
method: 'post',
data
})
}
export function getReportlist(data) {
return request({
url: '/report/report-sheet/page',
method: 'post',
data
})
}
export function updateReportlist(data) {
return request({
url: '/report/report-sheet/update',
method: 'post',
data
})
}
export function delReportlist(data) {
return request({
url: '/report/report-sheet/delete',
method: 'post',
data
})
}
// by id
export function getReport(data) {
return request({
url: '/report/report-sheet/get',
method: 'post',
data
})
}
// 报表管理--报表分类
export function getReportCategory(data) {
return request({
url: '/report/report-sheet-category/page',
method: 'post',
data
})
}
export function reportCategoryAdd(data) {
return request({
url: '/report/report-sheet-category/add',
method: 'post',
data
})
}
export function reportCategoryUpdate(data) {
return request({
url: '/report/report-sheet-category/update',
method: 'post',
data
})
}
export function getReportCategoryById(data) {
return request({
url: '/report/report-sheet-category/get',
method: 'post',
data
})
}
export function reportCategoryDelete(data) {
return request({
url: '/report/report-sheet-category/delete',
method: 'post',
data
})
}
// 终检数据-获取玻璃列表数据
export function listGlass(data) {
return request({
url: '/report/GlassReport/listGlass',
method: 'post',
data
})
}
// 终检数据-基板品质报表查询
export function qualityReport(data) {
return request({
url: '/report/GlassReport/qualityReport',
method: 'post',
data
})
}
// 终检数据-基板品质报表导出
export function qualityReportexport(data) {
return request({
url: '/report/GlassReport/qualityReportexport',
method: 'post',
responseType: 'blob',
data
})
}
// 终检数据-厚度汇总报表查询
export function thickReport(data) {
return request({
url: '/report/GlassReport/thickReport',
method: 'post',
data
})
}
// 终检数据-厚度汇总报表导出
export function thickReportexport(data) {
return request({
url: '/report/GlassReport/thickReportexport',
method: 'post',
responseType: 'blob',
data
})
}
// 终检数据-终检下片包装报表查询
export function queryGlassData(data) {
return request({
url: '/quality/finalpackaging/queryGlassData',
method: 'post',
data
})
}
// 终检数据-终检下片包装报表计算
export function claGlassData(data) {
return request({
url: '/quality/finalpackaging/claGlassData',
method: 'post',
data
})
}

二進制
src/assets/home/reportManagement.png Normal file

未顯示二進位檔案。

之後

寬度:  |  高度:  |  大小: 3.5 KiB

查看文件

之前

寬度:  |  高度:  |  大小: 59 KiB

之後

寬度:  |  高度:  |  大小: 59 KiB

查看文件

@ -112,45 +112,6 @@ export const routes = [
// },
// component: () => import('../views/productionScheduling/taskDcheduling')
// },
{
path: 'generateReports',
name: 'generateReports',
meta: {
title: '生产报表'
},
component: () =>
import('../views/productionScheduling/generateReports'),
redirect: '/productionScheduling/generateReports/productionReport',
children: [
{
path: 'productionReport',
name: 'productionReport',
meta: {
title: '生产报表'
},
component: () =>
import('../views/productionScheduling/productionReport')
},
{
path: 'substrateGlassQuality',
name: 'substrateGlassQuality',
meta: {
title: '基板玻璃品质'
},
component: () =>
import('../views/productionScheduling/substrateGlassQuality')
},
{
path: 'thicknessDetection',
name: 'thicknessDetection',
meta: {
title: '厚度检测'
},
component: () =>
import('../views/productionScheduling/thicknessDetection')
}
]
},
{
path: 'productionData',
name: 'productionData',
@ -521,15 +482,6 @@ export const routes = [
component: () =>
import('../views/qualityManagement/productTraceability')
},
{
path: 'finalInspectionData',
name: 'finalInspectionData',
meta: {
title: '终检数据'
},
component: () =>
import('../views/qualityManagement/finalInspectionData')
},
{
path: 'finalInspectionDailyReport',
name: 'finalInspectionDailyReport',
@ -541,6 +493,91 @@ export const routes = [
}
]
},
{
path: '/reportManagement',
component: Layout,
name: 'reportManagement',
meta: {
title: '报表管理'
},
children: [
{
path: 'productionReport',
name: 'productionReport',
meta: {
title: '后工程日报表'
},
component: () => import('../views/reportManagement/productionReport')
},
{
path: 'finalInspectionData',
name: 'finalInspectionData',
meta: {
title: '终检数据'
},
component: () => import('../views/reportManagement/finalInspectionData')
},
{
path: 'reportTools',
name: 'reportTools',
meta: {
title: '报表工具'
},
component: () => import('../views/reportManagement/reportTools'),
redirect: '/reportManagement/reportTools/reportList',
children: [
{
path: 'reportList',
name: 'reportList',
meta: {
title: '报表列表'
},
component: () =>
import('../views/reportManagement/reportTools/reportList')
},
{
path: 'reportListDetail',
name: 'reportListDetail',
hidden: true,
meta: {
title: '报表列表明细'
},
component: () =>
import('../views/reportManagement/reportTools/reportListDetail')
},
{
path: 'reportView',
name: 'reportView',
meta: {
title: '报表预览'
},
component: () =>
import('../views/reportManagement/reportTools/reportView')
},
{
path: 'reportDesign',
name: 'reportDesign',
meta: {
title: '报表设计'
},
component: () =>
import('../views/reportManagement/reportTools/reportDesign')
},
{
path: 'reportClassification',
name: 'reportClassification',
meta: {
title: '报表分类'
},
component: () =>
import(
'../views/reportManagement/reportTools/reportClassification'
)
}
]
}
]
},
{
path: '/basicConfig',
component: Layout,
@ -588,65 +625,6 @@ export const routes = [
title: '设备配置'
},
component: () => import('../views/basicConfig/deviceConfig')
},
{
path: 'reportManagement',
name: 'reportManagement',
meta: {
title: '报表管理'
},
component: () => import('../views/basicConfig/reportManagement'),
redirect: '/basicConfig/reportManagement/reportList',
children: [
{
path: 'reportList',
name: 'reportList',
meta: {
title: '报表列表'
},
component: () =>
import('../views/basicConfig/reportManagement/reportList')
},
{
path: 'reportListDetail',
name: 'reportListDetail',
hidden: true,
meta: {
title: '报表列表明细'
},
component: () =>
import('../views/basicConfig/reportManagement/reportListDetail')
},
{
path: 'reportView',
name: 'reportView',
meta: {
title: '报表预览'
},
component: () =>
import('../views/basicConfig/reportManagement/reportView')
},
{
path: 'reportDesign',
name: 'reportDesign',
meta: {
title: '报表设计'
},
component: () =>
import('../views/basicConfig/reportManagement/reportDesign')
},
{
path: 'reportClassification',
name: 'reportClassification',
meta: {
title: '报表分类'
},
component: () =>
import(
'../views/basicConfig/reportManagement/reportClassification'
)
}
]
}
]
},

查看文件

@ -172,17 +172,12 @@ const tableBtn = [
type: 'edit',
btnName: '编辑',
showParam: {
type: '|',
type: '&',
data: [
{
type: 'unequal',
name: 'status',
value: '未完成'
},
{
type: 'unequal',
name: 'status',
value: '已超时'
}
]
}
@ -332,7 +327,7 @@ export default {
console.log(val)
switch (val.type) {
case 'edit':
if (val.data.status === '未派工') {
if (val.data.status === '未派工' || val.data.status === '已超时') {
this.addAndEdit = '编辑'
this.centervisibleAdd = true
this.$nextTick(() => {

查看文件

@ -1,266 +0,0 @@
<template>
<div class="substrate-glass-quality-box">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
/>
</div>
</template>
<script>
import { tableHeight } from '@/utils/index'
const tableProps = [
{
prop: 'time',
label: '检测时间',
minWidth: 100
},
{
prop: 'glassID',
label: '玻璃ID',
minWidth: 100
},
{
prop: 'lineA',
label: '加工条件',
align: 'center',
children: [
{
prop: 'workTime',
label: '托盘ID'
},
{
prop: 'workTimeRate',
label: '研磨类型'
}
]
},
{
prop: 'lineB',
label: '检测数据',
align: 'center',
children: [
{
prop: 'downTime',
label: '灵敏度'
},
{
prop: 'downTimeRate',
label: '颗粒总数'
},
{
prop: 'downTime1',
label: '锡点'
},
{
prop: 'downTimeRate2',
label: '变形'
},
{
prop: 'downTime3',
label: '拖尾'
},
{
prop: 'downTimeRate4',
label: '气泡'
},
{
prop: 'downTime5',
label: '锡尺寸'
},
{
prop: 'downTimeRate6',
label: '结石'
},
{
prop: 'downTime7',
label: '划伤'
},
{
prop: 'downTimeRate8',
label: '面检总数'
}
]
},
{
prop: 'lineC',
label: '研磨电流(A)',
align: 'center',
children: [
{
prop: 'faultTime',
label: 'A机台'
},
{
prop: 'faultTimeRate',
label: 'B机台'
},
{
prop: 'faultTime1',
label: 'C机台'
},
{
prop: 'faultTimeRate1',
label: '总电流'
}
]
},
{
prop: 'lineD',
label: '研磨时间(S)',
align: 'center',
children: [
{
prop: 'faultTime',
label: 'A机台'
},
{
prop: 'faultTimeRate',
label: 'B机台'
},
{
prop: 'faultTime1',
label: 'C机台'
},
{
prop: 'faultTimeRate1',
label: '总研磨时间',
minWidth: 100
}
]
},
{
prop: 'lineE',
label: '工艺符合性',
minWidth: 100
}
]
export default {
name: 'substrateGlassQuality',
data() {
return {
formConfig: [
{
type: 'select',
label: '产线',
selectOptions: JSON.parse(localStorage.getItem('publicList'))
.proLineVoList,
param: 'proLineId',
defaultSelect: '',
width: 120
},
{
type: 'select',
label: '白班',
selectOptions: JSON.parse(localStorage.getItem('publicList'))
.proLineVoList,
labelField: 'dataName',
valueField: 'dataCode',
param: 'type',
defaultSelect: '',
width: 100
},
{
type: 'datePicker',
label: '上架时间',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
width: 350
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '导出',
name: 'export',
color: 'primary',
plain: true
}
],
listQuery: {
current: 1,
size: 20
},
tableProps,
tableData: [],
tableH: tableHeight(329)
}
},
mounted() {
window.addEventListener('resize', () => {
this.tableH = tableHeight(329)
})
this.tableData = [
{
equipmentName: '设备1',
workTime: 100,
workTimeRate: 0.5,
downTime: 5,
downTimeRate: 0.02,
faultTime: 0,
faultTimeRate: 0,
actualProcessingSpeed: 10,
theoreticalProcessingSpeed: 10,
speedActuationRate: 0.3
},
{
equipmentName: '设备2',
workTime: 100,
workTimeRate: 0.5,
downTime: 5,
downTimeRate: 0.02,
faultTime: 0,
faultTimeRate: 0,
actualProcessingSpeed: 10,
theoreticalProcessingSpeed: 10,
speedActuationRate: 0.3
},
{
equipmentName: '设备3',
workTime: 100,
workTimeRate: 0.5,
downTime: 5,
downTimeRate: 0.02,
faultTime: 0,
faultTimeRate: 0,
actualProcessingSpeed: 10,
theoreticalProcessingSpeed: 10,
speedActuationRate: 0.3
}
]
},
methods: {
buttonClick(val) {
console.log(val)
}
}
}
</script>
<style lang="scss" scoped>
.substrate-glass-quality-box {
height: calc(100vh - 203px);
padding: 12px 16px;
margin: 0px 16px;
border-radius: 8px;
background-color: #fff;
}
</style>

查看文件

@ -1,254 +0,0 @@
<template>
<div class="thickness-detection-box">
<div class="search-box">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
</div>
<div class="table-box">
<el-row :gutter="8">
<el-col :span="8">
<div class="boxL">
<span class="table-button" @click="createReport">生成表格</span>
<base-table
:selectWidth="40"
:table-props="tablePropsL"
:table-data="tableDataL"
:max-height="tableHL"
@selection-change="selectChange"
/>
</div>
</el-col>
<el-col :span="16">
<div class="boxR">
<span class="tip">在线厚度检查机厚度汇总报表</span>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-props="tablePropsR"
:table-data="tableDataR"
:max-height="tableHR"
/>
</div>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import { tableHeight, timeFormatter } from '@/utils/index'
import moment from 'moment'
import { pageThickness, proReport } from '@/api/productionScheduling'
const tablePropsL = [
{
prop: 'glassId',
label: 'ID',
minWidth: 100
},
{
prop: 'testTime',
label: '检测时间',
filter: timeFormatter,
minWidth: 150
}
]
const tablePropsR = [
{
prop: 'glassId',
label: '玻璃ID',
minWidth: 120
},
{
prop: 'testTime',
label: '检测时间',
filter: timeFormatter,
minWidth: 150
},
{
prop: 'palletId',
label: '托盘ID',
minWidth: 100
},
{
prop: 'grindType',
label: '研磨类型',
minWidth: 100
},
{
prop: 'minValue',
label: '最小值',
minWidth: 100
},
{
prop: 'avgValue',
label: '平均值',
minWidth: 100
},
{
prop: 'ttvValue',
label: '厚薄差',
minWidth: 100
}
]
export default {
name: 'thicknessDetection',
data() {
return {
formConfig: [
{
type: 'datePicker',
label: '时间范围',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
placeholder: '时间范围',
param: 'timeStr',
defaultSelect: [],
width: 350
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '导出',
name: 'export',
color: 'primary',
plain: true
}
],
listQuery: {
current: 1,
size: 1000,
startTime: '',
endTime: ''
},
tablePropsL,
tableDataL: [],
tablePropsR,
tableDataR: [],
tableHL: tableHeight(350),
tableHR: tableHeight(335),
selectId: []
}
},
mounted() {
window.addEventListener('resize', () => {
this.tableHL = tableHeight(350)
this.tableHR = tableHeight(335)
})
this.formConfig[0].defaultSelect = [
moment().format('yyyy-MM-DD') + 'T00:00:00',
moment().format('yyyy-MM-DD') + 'T23:59:59'
]
this.listQuery.startTime = moment().format('yyyy-MM-DD') + 'T00:00:00'
this.listQuery.endTime = moment().format('yyyy-MM-DD') + 'T23:59:59'
this.getList()
},
methods: {
getList() {
pageThickness({ ...this.listQuery }).then((res) => {
this.tableDataL = res.data
})
},
getReport() {
proReport(this.selectId).then((res) => {
console.log(res)
this.tableDataR = res.data
})
},
selectChange(val) {
console.log(val)
this.selectId = []
if (val.length > 0) {
for (let i = 0; i < val.length; i++) {
this.selectId.push(val[i].glassId)
}
}
},
createReport() {
if (this.selectId.length === 0) {
this.$message({
message: '请先勾选左侧表格的数据',
type: 'warning'
})
return false
}
this.getReport()
},
buttonClick(val) {
console.log(val)
if (val.btnName === 'search') {
this.listQuery.startTime = val.timeStr ? val.timeStr[0] : ''
this.listQuery.endTime = val.timeStr ? val.timeStr[1] : ''
this.getList()
}
}
}
}
</script>
<style lang="scss" scoped>
.thickness-detection-box {
margin: 0 16px;
.search-box {
height: 62px;
padding: 8px 16px;
margin-bottom: 8px;
border-radius: 8px;
background-color: #fff;
}
.table-box {
width: 100%;
.boxL,
.boxR {
padding: 16px;
border-radius: 8px;
height: calc(100vh - 272px);
background-color: #fff;
}
.boxL {
.table-button {
display: inline-block;
height: 30px;
width: 100%;
text-align: center;
padding-top: 4px;
margin-bottom: 16px;
font-size: 14px;
color: #0b58ff;
border-radius: 4px;
border: 1px dotted #0b58ff;
cursor: pointer;
}
}
.boxR {
.tip::before {
content: '';
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
}
.tip {
display: inline-block;
font-size: 14px;
margin-bottom: 12px;
}
}
}
}
</style>

查看文件

@ -1,229 +0,0 @@
<template>
<div class="finalInspectionData">
<el-row class="box-top">
<el-col>
<div class="search-box">
<search-bar :formConfigs="formConfig" @headBtnClick="buttonClick" />
</div>
</el-col>
</el-row>
<el-row :gutter="8" class="box">
<el-col :span="9">
<div class="left-box">
<span class="table-button">生成表格</span>
<base-table
:selectWidth="40"
:table-props="tablePropsL"
:table-data="tableDataL"
:max-height="tableHL"
/>
</div>
</el-col>
<el-col :span="15">
<div class="right-box">
<div>
<span class="title">成品玻璃基本缺陷统计</span>
</div>
<ul class="tip">
<li>单位um</li>
<li>玻璃ID26522322323</li>
<li>生产日期2022.12.24 15:56:24</li>
<li>等级G1</li>
</ul>
<div class="table-box">
<final-data-table />
</div>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import { tableHeight } from '@/utils/index'
import finalDataTable from './components/finalDataTable'
const tablePropsL = [
{
prop: 'id',
label: 'ID',
minWidth: 100
},
{
prop: 'time',
label: '检测时间',
minWidth: 100
},
{
prop: 'type',
label: '研磨类型',
minWidth: 100
}
]
export default {
name: 'FinalInspectionData',
components: { finalDataTable },
data() {
return {
formConfig: [
{
type: 'datePicker',
label: '检验时间',
dateType: 'datetime',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
placeholder: '检验时间',
param: 'testTime',
width: 200
},
{
type: 'select',
label: '玻璃架',
selectOptions: [
{ id: '1', name: '521321545' },
{ id: '2', name: '932234561' },
{ id: '3', name: '542121212' },
{ id: '4', name: '354855321' }
],
param: 'fullInspectionType',
defaultSelect: '',
width: 150
},
{
type: 'select',
label: '报表类型',
selectOptions: [
{ id: '1', name: '单片玻璃基板缺陷统计' },
{ id: '2', name: '终检下片包装' },
{ id: '3', name: '厚度检查机报表' },
{ id: '4', name: '厚度汇总报表' }
],
param: 'fullInspectionType1',
defaultSelect: '',
width: 150
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '导出',
name: 'export',
color: 'primary',
plain: true
}
],
tablePropsL,
tableDataL: [],
tableHL: tableHeight(300)
}
},
mounted() {
window.addEventListener('resize', () => {
this.tableHL = tableHeight(300)
})
this.getList()
},
methods: {
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.getList()
break
default:
alert('导出')
}
},
getList() {
let arr = []
for (let i = 0; i < 30; i++) {
let obj = {}
obj.type = i
arr.push(obj)
}
this.tableDataL = arr
}
}
}
</script>
<style lang="scss" scoped>
.finalInspectionData {
width: 100%;
.box-top {
width: 100%;
padding: 8px 16px 0;
.search-box {
height: 62px;
padding: 10px 16px;
box-sizing: border-box;
border-radius: 8px;
background-color: #fff;
}
}
.box {
width: 100%;
padding: 8px 8px 0 16px;
.left-box,
.right-box {
height: calc(100vh - 220px);
padding: 16px;
border-radius: 8px;
background-color: #fff;
.table-box {
height: calc(100vh - 352px);
overflow: auto;
}
}
.left-box {
.table-button {
display: inline-block;
height: 30px;
width: 100%;
text-align: center;
padding-top: 4px;
margin-bottom: 16px;
font-size: 14px;
color: #0b58ff;
border-radius: 4px;
border: 1px dotted #0b58ff;
cursor: pointer;
}
}
.right-box {
.title::before {
content: '';
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
vertical-align: middle;
}
.tip {
display: flex;
flex-flow: row wrap;
height: 40px;
margin: 16px 0 20px;
li {
width: 25%;
font-size: 14px;
font-weight: 500;
text-align: center;
padding-top: 10px;
border-top: 1px solid #e8e8e8;
border-bottom: 1px solid #e8e8e8;
border-left: 1px solid #e8e8e8;
}
:last-child {
border-right: 1px solid #e8e8e8;
}
}
}
}
}
</style>

查看文件

@ -10,7 +10,7 @@ import {
reportCategoryAdd,
reportCategoryUpdate,
getReportCategoryById
} from '@/api/basicConfig'
} from '@/api/reportManagement'
export default {
name: 'ReportClassAdd',
data() {

查看文件

@ -6,7 +6,7 @@
</el-form>
</template>
<script>
import { getReport, updateReportlist } from '@/api/basicConfig'
import { getReport, updateReportlist } from '@/api/reportManagement'
export default {
name: 'ReportNameEdit',
data() {

查看文件

@ -29,7 +29,7 @@
<div v-if="reportTitle">
<span class="title">{{ reportTitle }}</span>
</div>
<div class="table-box" v-if="reportTitle === '单片玻璃基板缺陷统计'">
<div class="table-box" v-if="reportTitle === '玻璃基板缺陷统计'">
<glass-quality-report :tableData="glassQualityArr" />
</div>
<div class="table-box" v-if="reportTitle === '厚度汇总报表'">
@ -56,7 +56,7 @@ import {
thickReportexport,
queryGlassData,
claGlassData
} from '@/api/qualityManagement'
} from '@/api/reportManagement'
import glassQualityReport from './finalInspectionDataReport/glassQualityReport.vue'
import glassThickReport from './finalInspectionDataReport/glassThickReport.vue'
import glassPackReport from './finalInspectionDataReport/glassPackReport.vue'
@ -112,7 +112,7 @@ export default {
type: 'select',
label: '报表类型',
selectOptions: [
{ id: '单片玻璃基板缺陷统计', name: '单片玻璃基板缺陷统计' },
{ id: '玻璃基板缺陷统计', name: '玻璃基板缺陷统计' },
{ id: '终检下片包装', name: '终检下片包装' },
{ id: '厚度汇总报表', name: '厚度汇总报表' }
],
@ -220,7 +220,7 @@ export default {
for (let i of this.selectArr) {
arr.push(i.glassId)
}
if (this.reportTitle === '单片玻璃基板缺陷统计') {
if (this.reportTitle === '玻璃基板缺陷统计') {
this.exportGlassReport(arr)
} else if (this.reportTitle === '厚度汇总报表') {
this.exportThickReport(arr)
@ -258,7 +258,7 @@ export default {
arr.push(i.glassId)
}
switch (this.reportTitle) {
case '单片玻璃基板缺陷统计':
case '玻璃基板缺陷统计':
this.getGlassReport(arr)
break
case '厚度汇总报表':

查看文件

@ -0,0 +1,188 @@
<template>
<div class="report-classification">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
>
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="80"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
:total="total"
@pagination="getList()"
/>
<!-- 新增 -->
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="centervisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
>
<report-class-add ref="reportClass" @successSubmit="successSubmit" />
</base-dialog>
</div>
</template>
<script>
import { tableHeight } from '@/utils/index'
import ReportClassAdd from './../components/reportClassAdd.vue'
import { getReportCategory, reportCategoryDelete } from '@/api/reportManagement'
const tableProps = [
{
prop: 'name',
label: '报表分类名'
}
]
const tableBtn = [
{
type: 'edit',
btnName: '编辑'
},
{
type: 'delete',
btnName: '删除'
}
]
export default {
name: 'ReportClassification',
components: { ReportClassAdd },
data() {
return {
formConfig: [
{
type: 'input',
label: '关键字',
placeholder: '报表分类名',
param: 'name',
width: 300
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '新增',
name: 'add',
color: 'success',
plain: true
}
],
tableProps,
tableData: [],
tableBtn,
tableH: tableHeight(330),
total: 0,
listQuery: {
current: 1,
size: 20,
name: ''
},
centervisible: false,
addOrEditTitle: '' //title
}
},
mounted() {
window.addEventListener('resize', () => {
this.tableH = tableHeight(265)
})
this.getList()
},
methods: {
getList() {
getReportCategory({ ...this.listQuery }).then((res) => {
if (res.code === 0 && res.data) {
this.tableData = res.data.records
this.total = res.data.total
} else {
this.tableData = []
this.total = 0
}
})
},
handleClick(val) {
if (val.type === 'edit') {
this.addOrEditTitle = '编辑'
this.$nextTick(() => {
this.$refs.reportClass.init(val.data.id)
})
this.centervisible = true
} else {
this.$confirm('确认删除报表分类名"' + val.data.name + '"吗?', {
type: 'warning'
})
.then(() => {
reportCategoryDelete({ id: val.data.id }).then(() => {
this.$message({
message: '工单删除成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
this.listQuery.current = 1
this.getList()
})
})
.catch(() => {})
}
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.name = val.name
this.listQuery.current = 1
this.getList()
break
default:
this.addOrEditTitle = '新增'
this.centervisible = true
this.$nextTick(() => {
this.$refs.reportClass.init()
})
}
},
handleCancel() {
this.$refs.reportClass.formClear()
this.centervisible = false
this.addOrEditTitle = ''
},
handleConfirm() {
this.$refs.reportClass.submitForm()
},
successSubmit() {
this.handleCancel()
this.getList()
}
}
}
</script>
<style lang="scss">
.report-classification {
height: calc(100vh - 203px);
padding: 12px 16px;
margin: 0px 16px;
border-radius: 8px;
background-color: #fff;
}
</style>

查看文件

@ -0,0 +1,36 @@
<template>
<div id="reportDesign" class="reportDesign">
<iframe :src="url" width="100%" height="100%"></iframe>
</div>
</template>
<script>
export default {
name: 'ReportDesign',
data() {
return {
url: process.env.VUE_APP_REPORT_DESIGN_URL
}
},
mounted() {
const vm = this
const { name } = this.$route.params
this.url += name ? '?_u=db:' + this.$route.params.name : ''
const ifream = document.getElementById('reportDesign')
ifream.onload = function () {
console.log('加载完成')
vm.loading = false
}
}
}
</script>
<style lang="scss" scoped>
.reportDesign {
margin: 0px 16px 0 16px;
width: 98.5%;
height: calc(100vh - 205px);
.mainIframe {
width: 100%;
height: 100%;
}
}
</style>

查看文件

@ -0,0 +1,149 @@
<template>
<div class="reoprtManager">
<div class="report">
<div class="imgBox">
<img
src="./../../../assets/reportManagement/report.png"
alt=""
width="355px"
height="314px"
/>
</div>
<div class="numBox">
<div>
<div class="reportNum">
<div class="num">{{ totalReports }}</div>
<div class="text">
<p class="font">全部报表</p>
<p class="letter">Reports</p>
</div>
</div>
<div class="detail" @click="toDetail()">了解详情</div>
</div>
</div>
</div>
<div class="reportDesc" v-for="(item, i) in reportList" :key="i">
<div>
<div class="reportNum">
<div class="num">{{ item.quantity }}</div>
<div class="text">
<p class="font">{{ item.name }}</p>
<p class="letter">Reports</p>
</div>
</div>
<div class="detail" @click="toDetail(item.id)">了解详情</div>
</div>
</div>
</div>
</template>
<script>
import { getReportCategorylist } from '@/api/reportManagement'
export default {
name: 'ReportList',
data() {
return {
totalReports: 0,
reportList: []
}
},
mounted() {
this.getList()
},
methods: {
getList() {
getReportCategorylist({}).then((res) => {
if (res.code === 0 && res.data.length > 0) {
this.totalReports = 0
for (let i = 0; i < res.data.length; i++) {
this.totalReports += res.data[i].quantity
}
this.reportList = res.data
} else {
this.totalReports = 0
this.reportList = []
}
})
},
toDetail(id) {
this.$router.push({
// path: '/basicConfig/reportManagement/reportListDetail',
name: 'reportListDetail',
params: { categoryId: id ? id : '' }
})
}
}
}
</script>
<style lang="scss">
.reoprtManager {
padding-left: 16px;
padding-top: 8px;
display: flex;
flex-flow: row wrap;
height: calc(100vh - 210px);
align-content: flex-start;
overflow: auto;
.report {
width: 768px;
height: 456px;
background: #fff;
border-radius: 4px;
margin: 0 16px 16px 0;
position: relative;
.imgBox {
display: inline-block;
width: 480px;
height: 100%;
padding: 80px 0 0 80px;
}
.numBox {
position: absolute;
display: inline-block;
height: 100%;
top: 120px;
}
}
.reportDesc {
width: 376px;
height: 456px;
background: #fff;
border-radius: 4px;
text-align: center;
padding-top: 120px;
margin: 0 16px 16px 0;
}
.reportNum {
.num {
display: inline-block;
font-size: 80px;
font-weight: 600;
color: #161616;
margin-right: 36px;
}
.text {
display: inline-block;
.font {
font-size: 18px;
letter-spacing: 2px;
margin-bottom: 5px;
}
.letter {
font-size: 32px;
font-weight: 300;
}
}
}
.detail {
width: 200px;
height: 30px;
font-size: 14px;
line-height: 30px;
text-align: center;
color: #fff;
background: #0b58ff;
border-radius: 4px;
margin: 139px auto 0;
cursor: pointer;
}
}
</style>

查看文件

@ -0,0 +1,271 @@
<template>
<div class="report-classification">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
@emitFun="categoryChange"
>
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="180"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
:total="total"
@pagination="getList()"
/>
<!-- 编辑 -->
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="centervisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
>
<report-name-edit ref="reportNameEdit" @successSubmit="successSubmit" />
</base-dialog>
</div>
</template>
<script>
import ReportNameEdit from './../components/reportNameEdit.vue'
import {
getReportlist,
delReportlist,
getReportCategorylist,
updateReportlist
} from '@/api/reportManagement'
import { tableHeight, timeFormatter } from '@/utils'
import categorySelect from './../components/categorySelect.vue'
const tableProps = [
{
prop: 'fileName',
label: '报表名称'
},
{
prop: 'category',
label: '报表分类',
subcomponent: categorySelect
},
{
prop: 'createTime',
label: '添加时间',
filter: timeFormatter
}
]
const tableBtn = [
{
type: 'view',
btnName: '预览'
},
{
type: 'design',
btnName: '设计'
},
{
type: 'edit',
btnName: '编辑'
},
{
type: 'delete',
btnName: '删除'
}
]
export default {
name: 'ReportListDetail',
components: { ReportNameEdit },
data() {
return {
formConfig: [
{
type: 'input',
label: '关键字',
placeholder: '报表名称',
param: 'name',
width: 200
},
{
type: 'select',
label: '报表分类',
selectOptions: [],
param: 'category',
labelField: 'name',
valueField: 'id',
defaultSelect: '',
width: 200
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '新增',
name: 'add',
color: 'success',
plain: true
}
],
tableProps,
tableData: [],
tableBtn,
tableH: tableHeight(330),
total: 0,
listQuery: {
current: 1,
size: 20,
name: '',
category: ''
},
typeList: [],
centervisible: false,
addOrEditTitle: '' //title
}
},
created() {
this.getCategorylist()
},
mounted() {
window.addEventListener('resize', () => {
this.tableH = tableHeight(265)
})
this.formConfig[1].defaultSelect = this.$route.params.categoryId || ''
this.listQuery.category = this.$route.params.categoryId || ''
},
methods: {
getList() {
getReportlist({ ...this.listQuery }).then((res) => {
if (res.code === 0 && res.data) {
this.tableData = res.data.records
this.total = res.data.total
} else {
this.tableData = []
this.total = 0
}
})
},
getCategorylist() {
getReportCategorylist({}).then((res) => {
if (res.code === 0 && res.data.length > 0) {
localStorage.setItem('reportCategory', JSON.stringify(res.data))
this.formConfig[1].selectOptions = res.data
} else {
localStorage.setItem('reportCategory', '')
}
this.getList()
})
},
handleClick(val) {
switch (val.type) {
case 'view':
this.$router.push({
// path: '/basicConfig/reportManagement/reportView',
name: 'reportView',
params: { name: val.data.name }
})
break
case 'design':
this.$router.push({
// path: '/basicConfig/reportManagement/reportDesign',
name: 'reportDesign',
params: { name: val.data.name }
})
break
case 'edit':
this.addOrEditTitle = '编辑'
this.centervisible = true
this.$nextTick(() => {
this.$refs.reportNameEdit.init(val.data.id)
})
break
default:
this.$confirm('确认删除报表"' + val.data.name + '"吗?', {
type: 'warning'
})
.then(() => {
delReportlist({ id: val.data.id }).then(() => {
this.$message({
message: '报表删除成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
this.listQuery.current = 1
this.getList()
})
})
.catch(() => {})
}
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.name = val.name
this.listQuery.category = val.category
this.listQuery.current = 1
this.getList()
break
default:
this.$router.push({
path: '/basicConfig/reportManagement/reportDesign'
})
}
},
handleCancel() {
this.$refs.reportNameEdit.formClear()
this.centervisible = false
this.addOrEditTitle = ''
},
handleConfirm() {
this.$refs.reportNameEdit.submitForm()
},
successSubmit() {
this.handleCancel()
this.getList()
},
categoryChange(val) {
updateReportlist({
fileName: val.injectData.fileName,
id: val.injectData.id,
category: val.categoryId
}).then((res) => {
if (res.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500
})
this.getList()
}
})
}
}
}
</script>
<style lang="scss">
.report-classification {
height: calc(100vh - 203px);
padding: 12px 16px;
margin: 0px 16px;
border-radius: 8px;
background-color: #fff;
}
</style>

查看文件

@ -0,0 +1,36 @@
<template>
<div id="reportView" class="reportView">
<iframe :src="url" width="100%" height="100%"></iframe>
</div>
</template>
<script>
export default {
name: 'ReportView',
data() {
return {
url: process.env.VUE_APP_REPORT_VIEW_URL
}
},
mounted() {
const vm = this
const { name } = this.$route.params
this.url += name ? '?_u=db:' + this.$route.params.name : ''
const ifream = document.getElementById('reportView')
ifream.onload = function () {
console.log('加载完成')
vm.loading = false
}
}
}
</script>
<style lang="scss" scoped>
.reportView {
margin: 0px 16px 0 16px;
width: 98.5%;
height: calc(100vh - 205px);
.mainIframe {
width: 100%;
height: 100%;
}
}
</style>