增加报表管理模块
这个提交包含在:
父节点
2ae3d3f3e7
当前提交
de0a6c45e0
1
dist/css/1909.65f8bc12.css
vendored
普通文件
1
dist/css/1909.65f8bc12.css
vendored
普通文件
@ -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
dist/css/2801.5bbc94e4.css
vendored
1
dist/css/2801.5bbc94e4.css
vendored
@ -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
dist/css/3366.7459e497.css
vendored
1
dist/css/3366.7459e497.css
vendored
@ -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
dist/css/4093.abe04878.css
vendored
1
dist/css/4093.abe04878.css
vendored
@ -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
dist/css/4238.05a640eb.css
vendored
1
dist/css/4238.05a640eb.css
vendored
@ -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
普通文件
1
dist/css/5271.3daf5a00.css
vendored
普通文件
@ -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
普通文件
1
dist/css/5797.81598d88.css
vendored
普通文件
@ -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
dist/css/6234.3ff852d9.css
vendored
1
dist/css/6234.3ff852d9.css
vendored
@ -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
dist/css/868.775f6802.css
vendored
1
dist/css/868.775f6802.css
vendored
@ -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
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
普通文件
1
dist/js/2413.b0006aaf.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/2413.e3256bbf.js
vendored
1
dist/js/2413.e3256bbf.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/2740.0ffcbd63.js
vendored
普通文件
1
dist/js/2740.0ffcbd63.js
vendored
普通文件
@ -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
dist/js/2801.7cc1950e.js
vendored
1
dist/js/2801.7cc1950e.js
vendored
@ -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/2949.d1630ea2.js
vendored
1
dist/js/2949.d1630ea2.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/2990.145272cf.js
vendored
普通文件
1
dist/js/2990.145272cf.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/2990.9f7bfdd4.js
vendored
1
dist/js/2990.9f7bfdd4.js
vendored
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/3813.435d2e60.js
vendored
普通文件
1
dist/js/3813.435d2e60.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/3813.dc300e60.js
vendored
1
dist/js/3813.dc300e60.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/3899.4bd3c5c8.js
vendored
普通文件
1
dist/js/3899.4bd3c5c8.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/3899.8d6b4056.js
vendored
1
dist/js/3899.8d6b4056.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/4048.0faf667a.js
vendored
普通文件
1
dist/js/4048.0faf667a.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/4048.f4813ceb.js
vendored
1
dist/js/4048.f4813ceb.js
vendored
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/4093.94763922.js
vendored
1
dist/js/4093.94763922.js
vendored
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
@ -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
普通文件
1
dist/js/4922.6d343695.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/5096.4cb05e81.js
vendored
1
dist/js/5096.4cb05e81.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/5096.efa7f846.js
vendored
普通文件
1
dist/js/5096.efa7f846.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/5271.8199e756.js
vendored
普通文件
1
dist/js/5271.8199e756.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/5286.4812cac9.js
vendored
1
dist/js/5286.4812cac9.js
vendored
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/5748.94b73395.js
vendored
普通文件
1
dist/js/5748.94b73395.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
@ -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
dist/js/6234.864ef5ee.js
vendored
1
dist/js/6234.864ef5ee.js
vendored
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/8311.74c6e8f9.js
vendored
1
dist/js/8311.74c6e8f9.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/868.2820c60e.js
vendored
1
dist/js/868.2820c60e.js
vendored
@ -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.5b9672f6.js
vendored
1
dist/js/889.5b9672f6.js
vendored
文件差异因一行或多行过长而隐藏
1
dist/js/889.fda67dfe.js
vendored
普通文件
1
dist/js/889.fda67dfe.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/897.6b02e069.js
vendored
1
dist/js/897.6b02e069.js
vendored
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/9707.b2783b7b.js
vendored
普通文件
1
dist/js/9707.b2783b7b.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
1
dist/js/app.8a6daf4f.js
vendored
普通文件
1
dist/js/app.8a6daf4f.js
vendored
普通文件
文件差异因一行或多行过长而隐藏
1
dist/js/app.e2f493b2.js
vendored
1
dist/js/app.e2f493b2.js
vendored
文件差异因一行或多行过长而隐藏
@ -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
普通文件
140
src/api/reportManagement.js
普通文件
@ -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
普通文件
二进制
src/assets/home/reportManagement.png
普通文件
二进制文件未显示。
之后 宽度: | 高度: | 大小: 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>玻璃ID:26522322323</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>
|
正在加载...
在新工单中引用
屏蔽一个用户