zjl #11

Merged
juzi merged 3 commits from zjl into master 2023-03-14 14:15:38 +08:00
64 changed files with 954 additions and 359 deletions

View File

@ -5,4 +5,5 @@ ENV = 'development'
# 这里修改成api服务器地址
VUE_APP_BASE_API = '/api'
VUE_APP_VIEW_PIC = 'http://tft.mes.picaiba.com/api/common/attachment/downloadFile?type=0&attachmentId='
VUE_APP_REPORT_DESIGN_URL = 'http://tft.mes.picaiba.com/ureport/designer'
VUE_APP_REPORT_DESIGN_URL = 'http://tft.mes.picaiba.com/ureport/designer'
VUE_APP_REPORT_VIEW_URL = 'http://tft.mes.picaiba.com/ureport/preview'

View File

@ -5,4 +5,5 @@ ENV = 'production'
# 这里修改成api服务器地址
VUE_APP_BASE_API = '/api'
VUE_APP_VIEW_PIC = 'http://tft.mes.picaiba.com/api/common/attachment/downloadFile?type=0&attachmentId='
VUE_APP_REPORT_DESIGN_URL = 'http://tft.mes.picaiba.com/ureport/designer'
VUE_APP_REPORT_DESIGN_URL = 'http://tft.mes.picaiba.com/ureport/designer'
VUE_APP_REPORT_VIEW_URL = 'http://tft.mes.picaiba.com/ureport/preview'

1
dist/css/3759.bca3f817.css vendored Normal file
View File

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

View File

@ -1 +1 @@
.particleLine-chart[data-v-06ca839a]{height:calc(100vh - 205px);margin:0 16px;border-radius:8px;padding:8px 16px;background-color:#fff}
.particleLine-chart[data-v-b61f9baa]{height:calc(100vh - 205px);margin:0 16px;border-radius:8px;padding:8px 16px;background-color:#fff}

View File

@ -1 +0,0 @@
.thicknessDistributionChart .top-table[data-v-2cc32f61]{font-size:14px;font-weight:500;margin-bottom:16px}.thicknessDistributionChart .top-table ul[data-v-2cc32f61]{display:flex;flex-flow:row nowrap}.thicknessDistributionChart .top-table ul li[data-v-2cc32f61]{color:rgba(0,0,0,.85);width:20%;padding:10px;border:1px solid #e8e8e8}.thicknessDistributionChart .top-table ul .red-tip[data-v-2cc32f61]{color:rgba(255,78,78,.85)}.thicknessDistributionChart .top-table ul .blue-tip[data-v-2cc32f61]{color:#507dd7}.thicknessDistributionChart .top-table ul .purple-tip[data-v-2cc32f61]{color:rgba(152,83,255,.85)}.thicknessDistributionChart .top-table ul .green-tip[data-v-2cc32f61]{color:#50bb90}.thicknessDistributionChart .top-table ul .yellow-tip[data-v-2cc32f61]{color:#ecb441}.thicknessDistributionChart .title[data-v-2cc32f61]{font-size:14px;color:rgba(0,0,0,.85)}.thicknessDistributionChart .title[data-v-2cc32f61]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.thicknessDistributionMap[data-v-6ea24da0]{width:100%;padding:0 8px 0 16px}.thicknessDistributionMap .left-box[data-v-6ea24da0],.thicknessDistributionMap .right-box[data-v-6ea24da0]{height:calc(100vh - 205px);padding:16px;border-radius:8px;background-color:#fff}

1
dist/css/576.e84e22e2.css vendored Normal file
View File

@ -0,0 +1 @@
.thicknessDistributionChart .top-table[data-v-39282f9b]{font-size:14px;font-weight:500;margin-bottom:16px}.thicknessDistributionChart .top-table ul[data-v-39282f9b]{display:flex;flex-flow:row nowrap}.thicknessDistributionChart .top-table ul li[data-v-39282f9b]{color:rgba(0,0,0,.85);width:20%;padding:10px;border:1px solid #e8e8e8}.thicknessDistributionChart .top-table ul .red-tip[data-v-39282f9b]{color:rgba(255,78,78,.85)}.thicknessDistributionChart .top-table ul .blue-tip[data-v-39282f9b]{color:#507dd7}.thicknessDistributionChart .top-table ul .purple-tip[data-v-39282f9b]{color:rgba(152,83,255,.85)}.thicknessDistributionChart .top-table ul .green-tip[data-v-39282f9b]{color:#50bb90}.thicknessDistributionChart .top-table ul .yellow-tip[data-v-39282f9b]{color:#ecb441}.thicknessDistributionChart .title[data-v-39282f9b]{font-size:14px;color:rgba(0,0,0,.85)}.thicknessDistributionChart .title[data-v-39282f9b]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;margin-right:8px;vertical-align:middle}.thicknessDistributionMap[data-v-577f5adc]{width:100%;padding:0 8px 0 16px}.thicknessDistributionMap .left-box[data-v-577f5adc],.thicknessDistributionMap .right-box[data-v-577f5adc]{height:calc(100vh - 205px);padding:16px;border-radius:8px;background-color:#fff}

1
dist/css/6082.c905f8b4.css vendored Normal file
View File

@ -0,0 +1 @@
.bottom-box[data-v-4eab165e]{overflow-x:auto;display:flex}.bottom-box .bottom-left[data-v-4eab165e],.bottom-box .bottom-right[data-v-4eab165e]{display:inline-block}.bottom-box .bottom-left[data-v-4eab165e]{width:290px;margin-right:8px}.bottom-box .bottom-left .dataTab li[data-v-4eab165e]{width:65px}.bottom-box .bottom-right[data-v-4eab165e]{width:calc(100% - 300px)}.bottom-box .bottom-right .dataTab li[data-v-4eab165e]{width:7.7%;min-width:60px}.title[data-v-4eab165e]{display:inline-block;height:66px;width:30px;font-size:14px;line-height:14px;font-weight:500;padding:5px 8px 0;color:rgba(0,0,0,.85);background-color:#fafafa;border-top-left-radius:5px;border-bottom-left-radius:5px}.dataTab[data-v-4eab165e]{display:flex;flex-flow:row nowrap}.dataTab li[data-v-4eab165e]{font-size:14px;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.dataTab li p[data-v-4eab165e]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dataTab li .tabHead[data-v-4eab165e]{height:31px;background:#e9ebf0}.dataTab li .tabHead[data-v-4eab165e],.dataTab li .tabValue[data-v-4eab165e]{padding:8px}.dataTab li .tabValue[data-v-4eab165e]{height:35px}.full-inspection-detail[data-v-444ed842]{margin:0 16px;padding:16px;border-radius:8px;height:calc(100vh - 205px);background-color:#fff}.full-inspection-detail .plot-total[data-v-444ed842]{position:relative;height:115px}.full-inspection-detail .plot-total .plot-total-box[data-v-444ed842]{position:absolute;width:100%;top:25px;left:0}

View File

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

View File

@ -1 +0,0 @@
.bottom-box[data-v-7836bff5]{overflow-x:auto;display:flex}.bottom-box .bottom-left[data-v-7836bff5],.bottom-box .bottom-right[data-v-7836bff5]{display:inline-block}.bottom-box .bottom-left[data-v-7836bff5]{width:290px;margin-right:8px}.bottom-box .bottom-left .dataTab li[data-v-7836bff5]{width:65px}.bottom-box .bottom-right[data-v-7836bff5]{width:calc(100% - 300px)}.bottom-box .bottom-right .dataTab li[data-v-7836bff5]{width:7.7%;min-width:60px}.title[data-v-7836bff5]{display:inline-block;height:66px;width:30px;font-size:14px;line-height:14px;font-weight:500;padding:5px 8px 0;color:rgba(0,0,0,.85);background-color:#fafafa;border-top-left-radius:5px;border-bottom-left-radius:5px}.dataTab[data-v-7836bff5]{display:flex;flex-flow:row nowrap}.dataTab li[data-v-7836bff5]{font-size:14px;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.dataTab li p[data-v-7836bff5]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dataTab li .tabHead[data-v-7836bff5]{height:31px;background:#e9ebf0}.dataTab li .tabHead[data-v-7836bff5],.dataTab li .tabValue[data-v-7836bff5]{padding:8px}.dataTab li .tabValue[data-v-7836bff5]{height:35px}.box[data-v-fbbcfa60]{position:relative}.box .text1[data-v-fbbcfa60],.box .text2[data-v-fbbcfa60],.box .text3[data-v-fbbcfa60],.box .text4[data-v-fbbcfa60]{position:absolute}.box .text1[data-v-fbbcfa60]{top:30px;left:0}.box .text2[data-v-fbbcfa60]{top:30px;right:0}.box .text3[data-v-fbbcfa60]{bottom:10px;left:0}.box .text4[data-v-fbbcfa60]{bottom:10px;right:0}.defectScatterPlot[data-v-6da52022]{height:calc(100vh - 206px);overflow:auto}.defectScatterPlot .split-pane[data-v-6da52022]{height:100%;border-radius:8px}.defectScatterPlot .left-box[data-v-6da52022]{margin-left:16px;padding:16px 16px 0;background-color:#fff}.defectScatterPlot .right-box[data-v-6da52022]{margin-right:16px}.defectScatterPlot .right-box .inner-box[data-v-6da52022]{height:100%;margin-left:16px;padding:16px 16px 0;border-radius:8px;overflow:auto;background-color:#fff;font-size:14px}.defectScatterPlot .right-box .inner-box .line1[data-v-6da52022]{margin-bottom:18px}.defectScatterPlot .right-box .inner-box .line2[data-v-6da52022]{margin-bottom:12px}.defectScatterPlot .right-box .inner-box .line2 .el-checkbox[data-v-6da52022]{margin-right:8px}.defectScatterPlot .title[data-v-6da52022]{font-size:14px;color:rgba(0,0,0,.85)}.defectScatterPlot .title[data-v-6da52022]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;vertical-align:middle;margin-right:8px}

1
dist/css/6582.f8d52ac0.css vendored Normal file
View File

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

1
dist/css/8685.2eefc824.css vendored Normal file
View File

@ -0,0 +1 @@
.bottom-box[data-v-4eab165e]{overflow-x:auto;display:flex}.bottom-box .bottom-left[data-v-4eab165e],.bottom-box .bottom-right[data-v-4eab165e]{display:inline-block}.bottom-box .bottom-left[data-v-4eab165e]{width:290px;margin-right:8px}.bottom-box .bottom-left .dataTab li[data-v-4eab165e]{width:65px}.bottom-box .bottom-right[data-v-4eab165e]{width:calc(100% - 300px)}.bottom-box .bottom-right .dataTab li[data-v-4eab165e]{width:7.7%;min-width:60px}.title[data-v-4eab165e]{display:inline-block;height:66px;width:30px;font-size:14px;line-height:14px;font-weight:500;padding:5px 8px 0;color:rgba(0,0,0,.85);background-color:#fafafa;border-top-left-radius:5px;border-bottom-left-radius:5px}.dataTab[data-v-4eab165e]{display:flex;flex-flow:row nowrap}.dataTab li[data-v-4eab165e]{font-size:14px;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.dataTab li p[data-v-4eab165e]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dataTab li .tabHead[data-v-4eab165e]{height:31px;background:#e9ebf0}.dataTab li .tabHead[data-v-4eab165e],.dataTab li .tabValue[data-v-4eab165e]{padding:8px}.dataTab li .tabValue[data-v-4eab165e]{height:35px}.box[data-v-51a1dc14]{position:relative}.box .text1[data-v-51a1dc14],.box .text2[data-v-51a1dc14],.box .text3[data-v-51a1dc14],.box .text4[data-v-51a1dc14]{position:absolute}.box .text1[data-v-51a1dc14]{top:30px;left:0}.box .text2[data-v-51a1dc14]{top:30px;right:0}.box .text3[data-v-51a1dc14]{bottom:10px;left:0}.box .text4[data-v-51a1dc14]{bottom:10px;right:0}.defectScatterPlot[data-v-ab923e7c]{height:calc(100vh - 206px);overflow:auto}.defectScatterPlot .split-pane[data-v-ab923e7c]{height:100%;border-radius:8px}.defectScatterPlot .left-box[data-v-ab923e7c]{margin-left:16px;padding:16px 16px 0;background-color:#fff}.defectScatterPlot .right-box[data-v-ab923e7c]{margin-right:16px}.defectScatterPlot .right-box .inner-box[data-v-ab923e7c]{height:100%;margin-left:16px;padding:16px 16px 0;border-radius:8px;overflow:auto;background-color:#fff;font-size:14px}.defectScatterPlot .right-box .inner-box .line1[data-v-ab923e7c]{margin-bottom:18px}.defectScatterPlot .right-box .inner-box .line2[data-v-ab923e7c]{margin-bottom:12px}.defectScatterPlot .right-box .inner-box .line2 .el-checkbox[data-v-ab923e7c]{margin-right:8px}.defectScatterPlot .title[data-v-ab923e7c]{font-size:14px;color:rgba(0,0,0,.85)}.defectScatterPlot .title[data-v-ab923e7c]:before{content:"";display:inline-block;width:4px;height:16px;background:#0b58ff;border-radius:1px;vertical-align:middle;margin-right:8px}

2
dist/index.html vendored
View File

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>tft-mes</title><script defer="defer" src="/js/chunk-vendors.a42f8636.js"></script><script defer="defer" src="/js/app.9320babc.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.4f3f8fe2.js"></script><link href="/css/app.68cbc19b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but tft-mes doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/2033.322f76fa.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[2532],{2532:function(t,s,a){a.r(s),a.d(s,{default:function(){return o}});var e=function(){var t=this,s=t._self._c;return s("div",{staticClass:"reoprtManager"},[s("div",{staticClass:"report"},[t._m(0),s("div",{staticClass:"numBox"},[s("div",[t._m(1),s("div",{staticClass:"detail",on:{click:t.toDetail}},[t._v("了解详情")])])])]),t._l(t.reportList,(function(a,e){return s("div",{key:e,staticClass:"reportDesc"},[s("div",[s("div",{staticClass:"reportNum"},[s("div",{staticClass:"num"},[t._v(t._s(a.num))]),s("div",{staticClass:"text"},[s("p",{staticClass:"font"},[t._v(t._s(a.name))]),s("p",{staticClass:"letter"},[t._v("Reports")])])]),s("div",{staticClass:"detail",on:{click:t.bbb}},[t._v("了解详情")])])])}))],2)},i=[function(){var t=this,s=t._self._c;return s("div",{staticClass:"imgBox"},[s("img",{attrs:{src:a(2070),alt:"",width:"355px",height:"314px"}})])},function(){var t=this,s=t._self._c;return s("div",{staticClass:"reportNum"},[s("div",{staticClass:"num"},[t._v("6")]),s("div",{staticClass:"text"},[s("p",{staticClass:"font"},[t._v("全部报表")]),s("p",{staticClass:"letter"},[t._v("Reports")])])])}],r={name:"ReportList",data(){return{totalReports:6,reportList:[{num:2,name:"能源报表"},{num:2,name:"订单报表"},{num:1,name:"设备报表"},{num:1,name:"人员报表"},{num:1,name:"质量报表"},{num:0,name:"产线报表"}]}},methods:{toDetail(){this.$router.push({path:"/basicConfig/reportManagement/reportListDetail"})},bbb(){this.$router.push({path:"/basicConfig/reportManagement/reportDesign"})}}},n=r,l=a(1001),c=(0,l.Z)(n,e,i,!1,null,null,null),o=c.exports},2070:function(t,s,a){t.exports=a.p+"img/report.b2b3c253.png"}}]);

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[2795],{2795:function(e,t,a){a.r(t),a.d(t,{default:function(){return y}});var i=function(){var e=this,t=e._self._c;return t("div",{staticClass:"report-classification"},[t("search-bar",{ref:"searchBarForm",attrs:{formConfigs:e.formConfig},on:{headBtnClick:e.buttonClick}}),t("base-table",{attrs:{page:e.listQuery.current,limit:e.listQuery.size,"table-props":e.tableProps,"table-data":e.tableData,"max-height":e.tableH}},[e.tableBtn.length?t("method-btn",{attrs:{slot:"handleBtn",width:180,label:"操作","method-list":e.tableBtn},on:{clickBtn:e.handleClick},slot:"handleBtn"}):e._e()],1),t("pagination",{attrs:{page:e.listQuery.current,limit:e.listQuery.size,total:e.total},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:function(t){return e.getList()}}}),t("base-dialog",{attrs:{dialogTitle:e.addOrEditTitle,dialogVisible:e.centervisible,"before-close":e.handleCancel},on:{cancel:e.handleCancel,confirm:e.handleConfirm}},[t("report-name-edit",{ref:"reportNameEdit",on:{successSubmit:e.successSubmit}})],1)],1)},r=[],s=a(475),n=function(){var e=this,t=e._self._c;return t("el-form",{ref:"form",attrs:{rules:e.rules,"label-width":"100px",model:e.form}},[t("el-form-item",{attrs:{label:"报表名称",prop:"name"}},[t("el-input",{model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1),t("el-form-item",{attrs:{label:"报表分类",prop:"type"}},[t("el-select",{staticStyle:{width:"100%"},attrs:{placeholder:"报表分类"},model:{value:e.form.type,callback:function(t){e.$set(e.form,"type",t)},expression:"form.type"}},e._l(e.typeList,(function(e,a){return t("el-option",{key:a,attrs:{label:e.dataName,value:e.dataName}})})),1)],1)],1)},l=[],o={name:"ReportNameEdit",data(){return{form:{id:"",name:""},typeList:[{dataName:"能源",id:1},{dataName:"订单",id:2},{dataName:"设备",id:3},{dataName:"人员",id:4}],rules:{name:[{required:!0,message:"请输入报表分类名",trigger:"blur"}],type:[{required:!0,message:"请选择分类",trigger:"change"}]}}},methods:{init(e){e&&(this.form.id=e)},submitForm(){this.$refs["form"].validate((e=>{if(!e)return!1;this.$emit("successSubmit")}))},formClear(){this.$refs.form.resetFields()}}},m=o,d=a(1001),u=(0,d.Z)(m,n,l,!1,null,null,null),c=u.exports;const p=[{prop:"name",label:"报表名称"},{prop:"type",label:"报表分类"},{prop:"time",label:"添加时间"}],h=[{type:"view",btnName:"预览"},{type:"design",btnName:"设计"},{type:"edit",btnName:"编辑"},{type:"delete",btnName:"删除"}];var b={name:"ReportListDetail",components:{ReportNameEdit:c},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:!0}],tableProps:p,tableData:[],tableBtn:h,tableH:(0,s.NC)(330),total:0,listQuery:{current:1,size:20},centervisible:!1,addOrEditTitle:""}},mounted(){window.addEventListener("resize",(()=>{this.tableH=(0,s.NC)(265)})),this.getList()},methods:{getList(){let e=[];for(let t=0;t<30;t++){let a={};a.name="名称"+t,a.type="分类"+t,a.time="2023-2-8 13:59:59",a.id=t+1,e.push(a)}this.tableData=e,this.total=30},handleClick(e){switch(e.type){case"view":this.$router.push({path:"/basicConfig/reportManagement/reportView"});break;case"design":this.$router.push({path:"/basicConfig/reportManagement/reportDesign"});break;case"edit":this.addOrEditTitle="编辑",this.centervisible=!0,this.$nextTick((()=>{this.$refs.reportNameEdit.init(e.data.id)}));break;default:this.$confirm('确认删除报表"'+e.data.name+'"吗?',{type:"warning"}).then((()=>{})).catch((()=>{}))}},buttonClick(e){switch(e.btnName){case"search":this.listQuery.name=e.name,this.listQuery.current=1,this.getList();break;default:this.$router.push({path:"/basicConfig/reportManagement/reportDesign"})}},handleCancel(){this.$refs.reportNameEdit.formClear(),this.centervisible=!1,this.addOrEditTitle=""},handleConfirm(){this.$refs.reportNameEdit.submitForm()},successSubmit(){this.handleCancel(),this.getList()}}},f=b,g=(0,d.Z)(f,i,r,!1,null,null,null),y=g.exports}}]);

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[3124],{3124:function(e,t,n){n.r(t),n.d(t,{default:function(){return i}});var u=function(){var e=this,t=e._self._c;return t("div",[e._v("预览")])},r=[],l={name:"reportView"},s=l,f=n(1001),c=(0,f.Z)(s,u,r,!1,null,null,null),i=c.exports}}]);

1
dist/js/3759.74440c51.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[3759],{3759:function(t,e,r){r.r(e),r.d(e,{default:function(){return l}});var o=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%"}})])},n=[],s={name:"ReportView",data(){return{url:"http://tft.mes.picaiba.com/ureport/preview",aa:"111"}},mounted(){const t=this,{name:e}=this.$route.query;console.log(e),this.url+=e?"?_u=db:"+this.$route.query.name:"",console.log(this.url);const r=document.getElementById("reportView");r.onload=function(){console.log("加载完成"),t.loading=!1}}},u=s,i=r(1001),a=(0,i.Z)(u,o,n,!1,null,"2fcfb7ac",null),l=a.exports}}]);

1
dist/js/4325.6b97c0aa.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/4341.a606fa40.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[4341],{4341:function(t,s,a){a.r(s),a.d(s,{default:function(){return c}});var e=function(){var t=this,s=t._self._c;return s("div",{staticClass:"reoprtManager"},[s("div",{staticClass:"report"},[t._m(0),s("div",{staticClass:"numBox"},[s("div",[t._m(1),s("div",{staticClass:"detail",on:{click:t.toAll}},[t._v("了解详情")])])])]),t._l(t.reportList,(function(a,e){return s("div",{key:e,staticClass:"reportDesc"},[s("div",[s("div",{staticClass:"reportNum"},[s("div",{staticClass:"num"},[t._v(t._s(a.num))]),s("div",{staticClass:"text"},[s("p",{staticClass:"font"},[t._v(t._s(a.name))]),s("p",{staticClass:"letter"},[t._v("Reports")])])]),s("div",{staticClass:"detail",on:{click:t.toDetail}},[t._v("了解详情")])])])}))],2)},i=[function(){var t=this,s=t._self._c;return s("div",{staticClass:"imgBox"},[s("img",{attrs:{src:a(2070),alt:"",width:"355px",height:"314px"}})])},function(){var t=this,s=t._self._c;return s("div",{staticClass:"reportNum"},[s("div",{staticClass:"num"},[t._v("6")]),s("div",{staticClass:"text"},[s("p",{staticClass:"font"},[t._v("全部报表")]),s("p",{staticClass:"letter"},[t._v("Reports")])])])}],r={name:"ReportList",data(){return{totalReports:6,reportList:[{num:2,name:"能源报表"},{num:2,name:"订单报表"},{num:1,name:"设备报表"},{num:1,name:"人员报表"},{num:1,name:"质量报表"},{num:0,name:"产线报表"}]}},methods:{toAll(){this.$router.push({path:"/basicConfig/reportManagement/reportListDetail"})},toDetail(t){this.$router.push({path:"/basicConfig/reportManagement/reportListDetail",params:{category:t}})}}},n=r,l=a(1001),o=(0,l.Z)(n,e,i,!1,null,null,null),c=o.exports},2070:function(t,s,a){t.exports=a.p+"img/report.b2b3c253.png"}}]);

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[546],{546:function(t,e,a){a.r(e),a.d(e,{default:function(){return g}});var s=function(){var t=this,e=t._self._c;return e("el-row",{staticClass:"thicknessDistributionMap",attrs:{gutter:8}},[e("el-col",{attrs:{span:10}},[e("div",{staticClass:"left-box"},[e("search-bar",{attrs:{formConfigs:t.formConfig},on:{headBtnClick:t.buttonClick}}),e("base-table",{attrs:{page:t.listQuery.current,limit:t.listQuery.size,selectWidth:50,"table-props":t.tableProps,"table-data":t.tableData,"max-height":t.tableH}})],1)]),e("el-col",{attrs:{span:14}},[e("div",{staticClass:"right-box"},[e("thickness-distribution-chart")],1)])],1)},i=[],l=a(475),r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"thicknessDistributionChart"},[t._m(0),t._m(1),e("div",{staticStyle:{width:"100%"},style:{height:t.chartHeight+"px"},attrs:{id:"thicknessChart"}})])},n=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"top-table"},[e("ul",[e("li",[t._v("转换速度32654654")]),e("li",[t._v("配方类型G8.5-0943")]),e("li",[t._v("玻璃索引56565")]),e("li",[t._v("等级G1")]),e("li")]),e("ul",[e("li",{staticClass:"red-tip"},[t._v("最大值235454")]),e("li",{staticClass:"blue-tip"},[t._v("最小值5652356")]),e("li",{staticClass:"purple-tip"},[t._v("平均值6856532656")]),e("li",{staticClass:"green-tip"},[t._v("厚度差656413212")]),e("li",{staticClass:"yellow-tip"},[t._v("研磨类型4ABC")])])])},function(){var t=this,e=t._self._c;return e("div",[e("span",{staticClass:"title"},[t._v("玻璃ID46745386415274874")])])}],o=a(7171),h=a(5468),c={name:"thicknessDistributionChart",mixins:[h.Z],data(){return{chartDom:"",chart:"",chartHeight:(0,l.NC)(320)}},mounted(){this.chartDom=document.getElementById("thicknessChart"),this.chart=o.S1(this.chartDom),this.getChart(),window.addEventListener("resize",(()=>{this.chartHeight=(0,l.NC)(320)}))},methods:{getChart(){let t=[];for(let i=1;i<=21;i++)t.push(i);let e=[];for(let i=1;i<=7;i++)e.push(i);const a=[];for(let i=0;i<t.length;i++)for(let t=0;t<e.length;t++){let e=[];e[0]=i,e[1]=t,e[2]=parseInt(80*Math.random()+470),a.push(e)}var s={tooltip:{position:"top"},grid:{height:"50%",top:"10%"},xAxis:{type:"category",data:t,splitArea:{show:!0}},yAxis:{type:"category",data:e,splitArea:{show:!0}},visualMap:{min:470,max:550,calculable:!0,color:["#FF8481","#F9E35E","#A6FF99","#46EBE8","#4572FF"],orient:"horizontal",right:"9%",top:"3%"},series:[{name:"Punch Card",type:"heatmap",data:a,label:{show:!0},emphasis:{itemStyle:{shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};s&&this.chart.setOption(s)}}},p=c,u=a(1001),d=(0,u.Z)(p,r,n,!1,null,"2cc32f61",null),m=d.exports;const b=[{prop:"glassID",label:"ID"},{prop:"time",label:"检测时间"},{prop:"type",label:"研磨类型"}];var C={name:"thicknessDistributionMap",components:{thicknessDistributionChart:m},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:"玻璃ID",selectOptions:[{id:"1",name:"521321545"},{id:"2",name:"932234561"},{id:"3",name:"542121212"},{id:"4",name:"354855321"}],param:"fullInspectionType",defaultSelect:"",width:150},{type:"button",btnName:"查询",name:"search",color:"primary"},{type:"button",btnName:"绘图",name:"draw",color:"primary"}],listQuery:{current:1,size:20},tableProps:b,tableData:[],tableH:(0,l.NC)(300)}},mounted(){window.addEventListener("resize",(()=>{this.tableH=(0,l.NC)(300)})),this.getList()},methods:{getList(){let t=[];for(let e=0;e<30;e++){let a={};a.glassID=e,t.push(a)}this.tableData=t},buttonClick(t){switch(t.btnName){case"search":this.getList();break;default:alert("导出")}}}},f=C,y=(0,u.Z)(f,s,i,!1,null,"6ea24da0",null),g=y.exports}}]);

1
dist/js/576.003a99f4.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/js/6082.9c39cf0b.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[6286],{6286:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});var r=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=[],i={name:"ReportDesign",data(){return{url:"http://tft.mes.picaiba.com/ureport/designer"}},mounted(){const t=this,e=document.getElementById("reportDesign");e.onload=function(){console.log("加载完成"),t.loading=!1}}},o=i,u=n(1001),a=(0,u.Z)(o,r,s,!1,null,"0e48fcd6",null),c=a.exports}}]);

1
dist/js/640.2aa86d2e.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/6582.b7dd2a16.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[6582],{6582: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=[],u={name:"ReportDesign",data(){return{url:"http://tft.mes.picaiba.com/ureport/designer"}},mounted(){const t=this,{name:e}=this.$route.query;this.url+=e?"?_u=db:"+this.$route.query.name:"";const r=document.getElementById("reportDesign");r.onload=function(){console.log("加载完成"),t.loading=!1}}},i=u,o=r(1001),a=(0,o.Z)(i,n,s,!1,null,"00a9937e",null),l=a.exports}}]);

1
dist/js/6684.ef1e5b36.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/7675.68705689.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[839],{839:function(t,e,a){a.r(e),a.d(e,{default:function(){return y}});var i=function(){var t=this,e=t._self._c;return e("div",{staticClass:"particleLine-chart"},[e("div",{staticStyle:{"margin-bottom":"30px"}},[e("search-bar",{attrs:{formConfigs:t.formConfig},on:{headBtnClick:t.buttonClick}})],1),e("div",{staticStyle:{width:"100%"},style:{height:t.chartHeight+"px"},attrs:{id:"particleLineChart"}})])},s=[],n=a(7171),r=a(475),l=a(5468),o=a(381),m=a.n(o),h={name:"particleLineChart",mixins:[l.Z],data(){return{formConfig:[{type:"datePicker",label:"检验时间",dateType:"datetime",format:"yyyy-MM-dd HH:mm:ss",valueFormat:"yyyy-MM-dd HH:mm:ss",placeholder:"抽检时间",param:"checkOutTime",defaultSelect:"",width:200},{type:"input",label:"合格上线",placeholder:"合格上线",param:"maxLine"},{type:"button",btnName:"确认",name:"search",color:"primary"}],chartDom:"",chart:"",chartHeight:(0,r.NC)(320),checkOutTime:"",maxLine:""}},mounted(){this.chartDom=document.getElementById("particleLineChart"),this.chart=n.S1(this.chartDom),window.addEventListener("resize",(()=>{this.chartHeight=(0,r.NC)(320)})),this.formConfig[0].defaultSelect=m()().format("YYYY-MM-DD HH:mm:ss"),this.getMsg()},methods:{buttonClick(t){console.log(t),"search"===t.btnName&&(this.checkOutTime=t.checkOutTime,this.maxLine=t.maxLine,this.getMsg())},getMsg(){let t=[],e=[],a=[],i=[],s=[],n=[],r={};for(let l=0;l<1e3;l++)t.push(m()().add(l,"days").format("YYYY-MM-DD HH:mm:ss")),e.push(Math.floor(80*Math.random()+10)),a.push(Math.floor(100*Math.random()+20)),i.push(Math.floor(130*Math.random()+30)),s.push(Math.floor(150*Math.random()+40)),n.push(e[l]+a[l]+i[l]+s[l]);r.time=t,r.sList=e,r.mList=a,r.lList=i,r.xlList=s,r.sumList=n,this.getChart(r)},getChart1(t){var e={color:["#5AD8A6","#5B8FF9","#5D7092","#F6BD16","#E8684A"],title:{text:"时间段玻璃颗粒数"},tooltip:{trigger:"axis"},legend:{data:["Total","M","L","S","XL"],right:"4%"},grid:{left:"3%",right:"4%",bottom:"3%"},xAxis:{type:"category",boundaryGap:!1,data:t.time},yAxis:{type:"value"},series:[{name:"Total",type:"line",data:t.sumList,markLine:{show:!1,Symbol:"none",label:{position:"end",formatter:"合格线\n"+this.maxLine},data:[{silent:!1,lineStyle:{type:"dashed",color:"#0B58FF"},yAxis:this.maxLine}]}},{name:"M",type:"line",data:t.mList},{name:"L",type:"line",data:t.lList},{name:"S",type:"line",data:t.sList},{name:"XL",type:"line",data:t.xlList}]};e&&this.chart.setOption(e)},getChart(t){console.log(t);var e={color:["#5AD8A6","#5B8FF9","#5D7092","#F6BD16","#E8684A"],title:{text:"时间段玻璃颗粒数",left:"1%"},tooltip:{trigger:"axis"},legend:{data:["Total","M","L","S","XL"],right:"4%"},grid:{left:"4%",right:"4%",bottom:"10%"},xAxis:{type:"category",boundaryGap:!1,data:t.time},yAxis:{type:"value"},dataZoom:[{startValue:"2023-02-014"},{type:"inside"}],series:[{name:"Total",type:"line",data:t.sumList,markLine:{show:!1,Symbol:"none",label:{position:"end",formatter:"合格线\n"+this.maxLine},data:[{silent:!1,lineStyle:{type:"dashed",color:"#0B58FF"},yAxis:this.maxLine}]}},{name:"M",type:"line",data:t.mList},{name:"L",type:"line",data:t.lList},{name:"S",type:"line",data:t.sList},{name:"XL",type:"line",data:t.xlList}]};e&&this.chart.setOption(e)}}},d=h,c=a(1001),p=(0,c.Z)(d,i,s,!1,null,"06ca839a",null),y=p.exports}}]);

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunktft_mes"]=self["webpackChunktft_mes"]||[]).push([[8637],{8637:function(t,e,l){l.r(e),l.d(e,{default:function(){return m}});var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"fullInspection"},[e("search-bar",{ref:"searchBarForm",attrs:{formConfigs:t.formConfig},on:{headBtnClick:t.buttonClick}}),e("base-table",{attrs:{page:t.listQuery.current,limit:t.listQuery.size,"table-props":t.tableProps,"table-data":t.tableData,"max-height":t.tableH}},[t.tableBtn.length?e("method-btn",{attrs:{slot:"handleBtn",width:80,label:"操作",fixed:"right","method-list":t.tableBtn},on:{clickBtn:t.handleClick},slot:"handleBtn"}):t._e()],1),e("pagination",{attrs:{limit:t.listQuery.size,total:t.total}})],1)},i=[],n=l(475);const r=[{prop:"glassId",label:"玻璃ID"},{prop:"fullInspectionType",label:"全检类型"},{prop:"long",label:"长/mm"},{prop:"width",label:"宽/mm"},{prop:"thick",label:"厚/mm"},{prop:"productQuality",label:"产品质量"},{prop:"productionLine",label:"产线"},{prop:"testOfTime",label:"检验时间"}],s=[{type:"detail",btnName:"详情"}];var o={name:"fullInspection",data(){return{formConfig:[{type:"input",label:"玻璃ID",placeholder:"玻璃ID",param:"glassId"},{type:"select",label:"全检类型",selectOptions:[{id:"1",name:"精切后边检"},{id:"2",name:"终检边检"},{id:"3",name:"面检"},{id:"4",name:"复检"}],param:"fullInspectionType",defaultSelect:"",width:150},{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:"button",btnName:"查询",name:"search",color:"primary"},{type:"separate"},{type:"button",btnName:"导出",name:"export",color:"primary",plain:!0}],tableProps:r,tableData:[],tableH:(0,n.NC)(330),tableBtn:s,total:0,listQuery:{current:1,size:20}}},mounted(){window.addEventListener("resize",(()=>{this.tableH=(0,n.NC)(330)}));for(let t=0;t<30;t++){let e={};e.glassId=t,e.fullInspectionType="全检类型"+t,e.long=t,e.width=t,e.thick=t,e.productQuality="产品质量"+t,e.productionLine="产线"+t,e.testOfTime="2022-08-08 13:59:13",this.tableData.push(e)}},methods:{getList(){console.log("getList")},buttonClick(t){switch(t.btnName){case"search":this.getList();break;default:alert("导出")}},handleClick(t){console.log(t),"detail"===t.type&&alert("详情")}}},p=o,d=l(1001),c=(0,d.Z)(p,a,i,!1,null,null,null),m=c.exports}}]);

1
dist/js/8685.9816b899.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/app.4f3f8fe2.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -221,3 +221,36 @@ export function getEqCode(data) {
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
})
}

View File

@ -44,6 +44,73 @@ export function processDetectExport(data) {
})
}
// 过程全检
export function processCompleteInspetion(data) {
return request({
url: '/quality/processCompleteInspetion/page',
method: 'post',
data
})
}
export function processCompleteInspetionDetails(data) {
return request({
url: '/quality/processCompleteInspetion/getDetails',
method: 'post',
data
})
}
export function processCompleteInspetionListType(data) {
return request({
url: '/quality/processCompleteInspetion/listType',
method: 'post',
data
})
}
// 全检导出
export function completeInspetionExport(data) {
return request({
url: '/quality/processCompleteInspetion/export',
method: 'post',
responseType: 'blob',
data
})
}
export function pageIIS(data) {
return request({
url: '/quality/processCompleteInspetion/pageIIS',
method: 'post',
data
})
}
// 缺陷散点图
export function queryPoint(data) {
return request({
url: '/quality/ProcessFull/queryPoint',
method: 'post',
data
})
}
// 缺陷散点图-绘图
export function drawPoint(data) {
return request({
url: '/quality/ProcessFull/drawPoint',
method: 'post',
data
})
}
// 缺陷散点图--底部明细
export function queryPointClear(data) {
return request({
url: '/quality/ProcessFull/queryPointClear',
method: 'post',
data
})
}
// 颗粒折线图
export function getProcessFull(data) {
return request({
@ -52,3 +119,21 @@ export function getProcessFull(data) {
data
})
}
// 厚度分布图--查询
export function queryThickness(data) {
return request({
url: '/quality/ProcessFull/queryThickness',
method: 'post',
data
})
}
// 厚度分布图--绘图
export function drawThickness(val) {
return request({
url: '/quality/ProcessFull/drawThickness',
method: 'post',
formState: true,
data: val
})
}

View File

@ -457,6 +457,17 @@ export const routes = [
'../views/qualityManagement/processFullInspection/fullInspection'
)
},
{
path: 'fullInspectionDetail',
name: 'fullInspectionDetail',
meta: {
title: '全检详情'
},
component: () =>
import(
'../views/qualityManagement/processFullInspection/fullInspectionDetail'
)
},
{
path: 'defectScatterPlot',
name: 'defectScatterPlot',

View File

@ -3,8 +3,12 @@
<el-form-item label="报表名称" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="报表分类" prop="type">
<el-select v-model="form.type" placeholder="报表分类" style="width: 100%">
<el-form-item label="报表分类" prop="category">
<el-select
v-model="form.category"
placeholder="报表分类"
style="width: 100%"
>
<el-option
v-for="(item, i) in typeList"
:key="i"
@ -16,13 +20,15 @@
</el-form>
</template>
<script>
import { getReport, updateReportlist } from '@/api/basicConfig'
export default {
name: 'ReportNameEdit',
data() {
return {
form: {
id: '',
name: ''
name: '',
category: ''
},
typeList: [
{ dataName: '能源', id: 1 },
@ -31,10 +37,8 @@ export default {
{ dataName: '人员', id: 4 }
],
rules: {
name: [
{ required: true, message: '请输入报表分类名', trigger: 'blur' }
],
type: [{ required: true, message: '请选择分类', trigger: 'change' }]
name: [{ required: true, message: '请输入报表分类名', trigger: 'blur' }]
// category: [{ required: true, message: '', trigger: 'change' }]
}
}
},
@ -42,32 +46,28 @@ export default {
init(id) {
if (id) {
this.form.id = id
// getAccount({ id }).then((res) => {
// if (res.code === 0) {
// this.form.account = res.data.account
// this.form.password = res.data.password
// this.form.name = res.data.name
// this.form.proLineId = res.data.proLineId
// this.form.role = res.data.role
// this.form.enabled = res.data.enabled
// }
// })
getReport({ id }).then((res) => {
if (res.code === 0) {
this.form.category = res.data.category
this.form.name = res.data.name
}
})
}
},
submitForm() {
this.$refs['form'].validate((valid) => {
if (valid) {
//
// accountUpdate({ ...this.form }).then((res) => {
// if (res.code === 0) {
// this.$message({
// message: '',
// type: 'success',
// duration: 1500
// })
// this.$emit('successSubmit')
// }
// })
updateReportlist({ ...this.form }).then((res) => {
if (res.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500
})
this.$emit('successSubmit')
}
})
this.$emit('successSubmit')
} else {
return false

View File

@ -13,8 +13,8 @@ export default {
},
mounted() {
const vm = this
// const { name } = this.$route.query
// this.url += name ? '?_u=db:' + this.$route.query.name : ''
const { name } = this.$route.query
this.url += name ? '?_u=db:' + this.$route.query.name : ''
const ifream = document.getElementById('reportDesign')
ifream.onload = function () {
console.log('加载完成')

View File

@ -18,7 +18,7 @@
<p class="letter">Reports</p>
</div>
</div>
<div class="detail" @click="toDetail">了解详情</div>
<div class="detail" @click="toAll">了解详情</div>
</div>
</div>
</div>
@ -31,7 +31,7 @@
<p class="letter">Reports</p>
</div>
</div>
<div class="detail" @click="bbb">了解详情</div>
<div class="detail" @click="toDetail">了解详情</div>
</div>
</div>
</div>
@ -53,13 +53,17 @@ export default {
}
},
methods: {
toDetail() {
toAll() {
this.$router.push({
path: '/basicConfig/reportManagement/reportListDetail'
})
},
bbb() {
this.$router.push({ path: '/basicConfig/reportManagement/reportDesign' })
toDetail(name) {
// this.$router.push({ path: '/basicConfig/reportManagement/reportDesign' })
this.$router.push({
path: '/basicConfig/reportManagement/reportListDetail',
params: { category: name }
})
}
}
}

View File

@ -40,20 +40,22 @@
</div>
</template>
<script>
import { tableHeight } from '@/utils/index'
import ReportNameEdit from './../components/reportNameEdit.vue'
import { getReportlist, delReportlist } from '@/api/basicConfig'
import { tableHeight, timeFormatter } from '@/utils'
const tableProps = [
{
prop: 'name',
label: '报表名称'
},
{
prop: 'type',
prop: 'category',
label: '报表分类'
},
{
prop: 'time',
label: '添加时间'
prop: 'createTime',
label: '添加时间',
filter: timeFormatter
}
]
const tableBtn = [
@ -125,28 +127,30 @@ export default {
},
methods: {
getList() {
let arr = []
for (let i = 0; i < 30; i++) {
let obj = {}
obj.name = '名称' + i
obj.type = '分类' + i
obj.time = '2023-2-8 13:59:59'
obj.id = i + 1
arr.push(obj)
}
this.tableData = arr
this.total = 30
getReportlist({ ...this.listQuery }).then((res) => {
console.log(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) {
console.log(val.data.name)
switch (val.type) {
case 'view':
this.$router.push({
path: '/basicConfig/reportManagement/reportView'
path: '/basicConfig/reportManagement/reportView',
query: { name: val.data.name }
})
break
case 'design':
this.$router.push({
path: '/basicConfig/reportManagement/reportDesign'
path: '/basicConfig/reportManagement/reportDesign',
query: { name: val.data.name }
})
break
case 'edit':
@ -161,17 +165,17 @@ export default {
type: 'warning'
})
.then(() => {
// maintainManageDelete({ id: val.data.id }).then((res) => {
// console.log(res)
// this.$message({
// message: '',
// type: 'success',
// duration: 1500,
// onClose: () => {}
// })
// this.listQuery.current = 1
// this.getList()
// })
delReportlist({ id: val.data.id }).then((res) => {
console.log(res)
this.$message({
message: '报表删除成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
this.listQuery.current = 1
this.getList()
})
})
.catch(() => {})
}

View File

@ -1,8 +1,39 @@
<template>
<div>预览</div>
<div id="reportView" class="reportView">
<iframe :src="url" width="100%" height="100%"></iframe>
</div>
</template>
<script>
export default {
name: 'reportView'
name: 'ReportView',
data() {
return {
url: process.env.VUE_APP_REPORT_VIEW_URL,
aa: '111'
}
},
mounted() {
const vm = this
const { name } = this.$route.query
console.log(name)
this.url += name ? '?_u=db:' + this.$route.query.name : ''
console.log(this.url)
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>

View File

@ -45,106 +45,124 @@ export default {
this.chartDom = document.getElementById('defectScatterPlotChart')
this.chart = echarts.init(this.chartDom)
const dataS = [
[1, 55, 9, 56, 0.46, 18, 6, '良'],
[2, 25, 11, 21, 0.65, 34, 9, '优'],
[3, 56, 7, 63, 0.3, 14, 5, '良'],
[4, 33, 7, 29, 0.33, 16, 6, '优'],
[5, 42, 24, 44, 0.76, 40, 16, '优'],
[6, 82, 58, 90, 1.77, 68, 33, '良'],
[7, 74, 49, 77, 1.46, 48, 27, '良'],
[8, 78, 55, 80, 1.29, 59, 29, '良'],
[9, 267, 216, 280, 4.8, 108, 64, '重度污染'],
[10, 185, 127, 216, 2.52, 61, 27, '中度污染'],
[11, 39, 19, 38, 0.57, 31, 15, '优'],
[12, 41, 11, 40, 0.43, 21, 7, '优'],
[13, 64, 38, 74, 1.04, 46, 22, '良'],
[14, 108, 79, 120, 1.7, 75, 41, '轻度污染'],
[15, 108, 63, 116, 1.48, 44, 26, '轻度污染'],
[16, 33, 6, 29, 0.34, 13, 5, '优'],
[17, 94, 66, 110, 1.54, 62, 31, '良'],
[18, 186, 142, 192, 3.88, 93, 79, '中度污染'],
[19, 57, 31, 54, 0.96, 32, 14, '良'],
[20, 22, 8, 17, 0.48, 23, 10, '优'],
[21, 39, 15, 36, 0.61, 29, 13, '优'],
[22, 94, 69, 114, 2.08, 73, 39, '良'],
[23, 99, 73, 110, 2.43, 76, 48, '良'],
[24, 31, 12, 30, 0.5, 32, 16, '优'],
[25, 42, 27, 43, 1, 53, 22, '优'],
[26, 154, 117, 157, 3.05, 92, 58, '中度污染'],
[27, 234, 185, 230, 4.09, 123, 69, '重度污染'],
[28, 160, 120, 186, 2.77, 91, 50, '中度污染'],
[29, 134, 96, 165, 2.76, 83, 41, '轻度污染'],
[30, 52, 24, 60, 1.03, 50, 21, '良'],
[31, 46, 5, 49, 0.28, 10, 6, '优']
[1, 55],
[2, 25],
[3, 56],
[4, 33],
[5, 42],
[6, 82],
[7, 74],
[8, 78],
[9, 267],
[10, 185],
[11, 39],
[12, 41],
[13, 64],
[14, 108],
[15, 108],
[16, 33],
[17, 94],
[18, 186],
[19, 57],
[20, 22],
[21, 39],
[22, 94],
[23, 99],
[24, 31],
[25, 42],
[26, 154],
[27, 234],
[28, 160],
[29, 134],
[30, 52],
[31, 46]
]
const dataM = [
[1, 26, 37, 27, 1.163, 27, 13, '优'],
[2, 85, 62, 71, 1.195, 60, 8, '良'],
[3, 78, 38, 74, 1.363, 37, 7, '良'],
[4, 21, 21, 36, 0.634, 40, 9, '优'],
[5, 41, 42, 46, 0.915, 81, 13, '优'],
[6, 56, 52, 69, 1.067, 92, 16, '良'],
[7, 64, 30, 28, 0.924, 51, 2, '良'],
[8, 55, 48, 74, 1.236, 75, 26, '良'],
[9, 76, 85, 113, 1.237, 114, 27, '良'],
[10, 91, 81, 104, 1.041, 56, 40, '良'],
[11, 84, 39, 60, 0.964, 25, 11, '良'],
[12, 64, 51, 101, 0.862, 58, 23, '良'],
[13, 70, 69, 120, 1.198, 65, 36, '良'],
[14, 77, 105, 178, 2.549, 64, 16, '良'],
[15, 109, 68, 87, 0.996, 74, 29, '轻度污染'],
[16, 73, 68, 97, 0.905, 51, 34, '良'],
[17, 54, 27, 47, 0.592, 53, 12, '良'],
[18, 51, 61, 97, 0.811, 65, 19, '良'],
[19, 91, 71, 121, 1.374, 43, 18, '良'],
[20, 73, 102, 182, 2.787, 44, 19, '良'],
[21, 73, 50, 76, 0.717, 31, 20, '良'],
[22, 84, 94, 140, 2.238, 68, 18, '良'],
[23, 93, 77, 104, 1.165, 53, 7, '良'],
[24, 99, 130, 227, 3.97, 55, 15, '良'],
[25, 146, 84, 139, 1.094, 40, 17, '轻度污染'],
[26, 113, 108, 137, 1.481, 48, 15, '轻度污染'],
[27, 81, 48, 62, 1.619, 26, 3, '良'],
[28, 56, 48, 68, 1.336, 37, 9, '良'],
[29, 82, 92, 174, 3.29, 0, 13, '良'],
[30, 106, 116, 188, 3.628, 101, 16, '轻度污染'],
[31, 118, 50, 0, 1.383, 76, 11, '轻度污染']
[1, 26],
[2, 85],
[3, 78],
[4, 21],
[5, 41],
[6, 56],
[7, 64],
[8, 55],
[9, 76],
[10, 91],
[11, 84],
[12, 64],
[13, 70],
[14, 77],
[15, 109],
[16, 73],
[17, 54],
[18, 51],
[19, 91],
[20, 73],
[21, 73],
[22, 84],
[23, 93],
[24, 99],
[25, 146],
[26, 113],
[27, 81],
[28, 56],
[29, 82],
[30, 106],
[31, 118]
]
const dataL = [
[1, 91, 45, 125, 0.82, 34, 23, '良'],
[2, 65, 27, 78, 0.86, 45, 29, '良'],
[3, 83, 60, 84, 1.09, 73, 27, '良'],
[4, 109, 81, 121, 1.28, 68, 51, '轻度污染'],
[5, 106, 77, 114, 1.07, 55, 51, '轻度污染'],
[6, 109, 81, 121, 1.28, 68, 51, '轻度污染'],
[7, 106, 77, 114, 1.07, 55, 51, '轻度污染'],
[8, 89, 65, 78, 0.86, 51, 26, '良'],
[9, 53, 33, 47, 0.64, 50, 17, '良'],
[10, 80, 55, 80, 1.01, 75, 24, '良'],
[11, 117, 81, 124, 1.03, 45, 24, '轻度污染'],
[12, 99, 71, 142, 1.1, 62, 42, '良'],
[13, 95, 69, 130, 1.28, 74, 50, '良'],
[14, 116, 87, 131, 1.47, 84, 40, '轻度污染'],
[15, 108, 80, 121, 1.3, 85, 37, '轻度污染'],
[16, 134, 83, 167, 1.16, 57, 43, '轻度污染'],
[17, 79, 43, 107, 1.05, 59, 37, '良'],
[18, 71, 46, 89, 0.86, 64, 25, '良'],
[19, 97, 71, 113, 1.17, 88, 31, '良'],
[20, 84, 57, 91, 0.85, 55, 31, '良'],
[21, 87, 63, 101, 0.9, 56, 41, '良'],
[22, 104, 77, 119, 1.09, 73, 48, '轻度污染'],
[23, 87, 62, 100, 1, 72, 28, '良'],
[24, 168, 128, 172, 1.49, 97, 56, '中度污染'],
[25, 65, 45, 51, 0.74, 39, 17, '良'],
[26, 39, 24, 38, 0.61, 47, 17, '优'],
[27, 39, 24, 39, 0.59, 50, 19, '优'],
[28, 93, 68, 96, 1.05, 79, 29, '良'],
[29, 188, 143, 197, 1.66, 99, 51, '中度污染'],
[30, 174, 131, 174, 1.55, 108, 50, '中度污染'],
[31, 187, 143, 201, 1.39, 89, 53, '中度污染']
[1, 91],
[2, 65],
[3, 83],
[4, 109],
[5, 106],
[6, 109],
[7, 106],
[8, 89],
[9, 53],
[10, 80],
[11, 117],
[12, 99],
[13, 95],
[14, 116],
[15, 108],
[16, 134],
[17, 79],
[18, 71],
[19, 97],
[20, 84],
[21, 87],
[22, 104],
[23, 87],
[24, 168],
[25, 65],
[26, 39],
[27, 39],
[28, 93],
[29, 188],
[30, 174],
[31, 187]
]
var option = {
color: ['#dd4444', '#fec42c', '#80F1BE'],
color: [
'#5d7ab7',
'#ec795f',
'#925041',
'#fb5099',
'#f6bd16',
'#E8684A',
'#6DC8EC',
'#9270CA',
'#FF9D4D',
'#269A99',
'#FF99C3',
'#BDD2FD',
'#5AD8A6',
'#FDABAB',
'#BDEFDB',
'#5B8FF9',
'#404E67'
],
legend: {
top: 10,
left: 0,

View File

@ -3,7 +3,7 @@
<div class="bottom-left">
<ul class="dataTab">
<div class="title">颗粒数据</div>
<li v-for="(item, index) in a" :key="index">
<li v-for="(item, index) in leftList" :key="index">
<p class="tabHead">{{ item.name }}</p>
<p class="tabValue">{{ item.value }}</p>
</li>
@ -12,7 +12,7 @@
<div class="bottom-right">
<ul class="dataTab">
<div class="title">面检数据</div>
<li v-for="(item, index) in b" :key="index">
<li v-for="(item, index) in rightList" :key="index">
<p class="tabHead">{{ item.name }}</p>
<p class="tabValue">{{ item.value }}</p>
</li>
@ -23,30 +23,50 @@
<script>
export default {
name: 'DefectScatterPlot',
props: {
detailObj: {
type: Object
}
},
data() {
return {
a: [
{ name: 'S', value: 65323 },
{ name: 'M', value: 65323 },
{ name: 'L', value: 65323 },
{ name: 'XL', value: 65323 }
leftList: [
{ name: 'S', value: null, key: 's' },
{ name: 'M', value: null, key: 'm' },
{ name: 'L', value: null, key: 'l' },
{ name: 'XL', value: null, key: 'xl' }
],
b: [
{ name: '气泡', value: 65323 },
{ name: '变形', value: 65323 },
{ name: '纤维', value: 65323 },
{ name: '划伤', value: 65323 },
{ name: '点状缺陷', value: 65323 },
{ name: '结石', value: 65323 },
{ name: '铂金', value: 65323 },
{ name: '结节', value: 65323 },
{ name: '拖尾', value: 65323 },
{ name: 'ADG', value: 65323 },
{ name: '锡缺陷(顶部)', value: 65323 },
{ name: '锡缺陷(底部)', value: 65323 },
{ name: '无法识别', value: 65323 }
rightList: [
{ name: '气泡', value: null, key: 'bl' },
{ name: '变形', value: null, key: 'distortion' },
{ name: '纤维', value: null, key: 'fiber' },
{ name: '划伤', value: null, key: 'scratch' },
{ name: '点状缺陷', value: null, key: 'tin' },
{ name: '结石', value: null, key: 'stone' },
{ name: '铂金', value: null, key: 'pt' },
{ name: '结节', value: null, key: 'knot' },
{ name: '拖尾', value: null, key: 'tail' },
{ name: 'ADG', value: null, key: 'adg' },
{ name: '锡缺陷(顶部)', value: null, key: 'top' },
{ name: '锡缺陷(底部)', value: null, key: 'bottom' },
{ name: '无法识别', value: null, key: 'iisrest' }
]
}
},
methods: {
init() {
console.log(this.detailObj)
for (let i = 0; i < this.leftList.length; i++) {
this.leftList[i].value = this.detailObj[this.leftList[i].key]
? this.detailObj[this.leftList[i].key]
: null
}
for (let i = 0; i < this.rightList.length; i++) {
this.rightList[i].value = this.detailObj[this.rightList[i].key]
? this.detailObj[this.rightList[i].key]
: null
}
}
}
}
</script>

View File

@ -68,6 +68,7 @@ export default {
data.push(arr)
}
}
console.log(data)
var option = {
tooltip: {
position: 'top'

View File

@ -11,6 +11,7 @@
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
@selection-change="selectChange"
/>
<pagination :limit="listQuery.size" :total="total" />
</div>
@ -24,11 +25,16 @@
v-model="type"
size="small"
style="margin-right: 24px"
@change="selectType"
>
<el-radio-button label="1">颗粒全选</el-radio-button>
<el-radio-button label="2">面检全选</el-radio-button>
<el-radio-button label="pellet">颗粒全选</el-radio-button>
<el-radio-button label="surface">面检全选</el-radio-button>
</el-radio-group>
<el-button type="primary" size="small" style="margin-right: 14px"
<el-button
type="primary"
size="small"
style="margin-right: 14px"
@click="drawPic"
>绘图</el-button
>
<el-button type="primary" size="small" plain>导出</el-button>
@ -63,31 +69,37 @@
import { tableHeight } from '@/utils/index'
import defectScatterPlotTotal from './../components/defectScatterPlotTotal.vue'
import defectScatterPlotChart from './../components/defectScatterPlotChart.vue'
import { queryPoint, drawPoint, queryPointClear } from '@/api/qualityManagement'
import moment from 'moment'
import { timeFormatter } from '@/utils'
const tableProps = [
{
prop: 'id',
label: 'D',
fixed: 'left'
prop: 'glassId',
label: 'ID',
fixed: 'left',
minWidth: 120
},
{
prop: 'fullInspectionType',
prop: 'testTime',
label: '检验时间',
fixed: 'left'
fixed: 'left',
filter: timeFormatter,
minWidth: 160
},
{
prop: 'type',
prop: 'grindType',
label: '研磨类型'
},
{
prop: 'width',
prop: 'electricity',
label: '总电流'
},
{
prop: 'thick',
prop: 'particleSum',
label: '颗粒总数'
},
{
prop: 'productQuality',
prop: 'surfaceSum',
label: '面检总数'
}
]
@ -101,12 +113,15 @@ export default {
{
type: 'datePicker',
label: '检验时间',
dateType: 'datetime',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
placeholder: '抽检时间',
param: 'testTime',
width: 200
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 350
},
{
type: 'button',
@ -117,14 +132,14 @@ export default {
],
searchTime: '',
listQuery: {
current: 1,
size: 20
startTime: '',
endTime: ''
},
tableProps,
tableData: [],
tableH: tableHeight(290),
total: 0,
type: '1',
type: 'pellet',
selectList: [
{ label: '1', value: '1' },
{ label: '2', value: '2' },
@ -132,25 +147,47 @@ export default {
{ label: '4', value: '4' }
],
checkItem: '',
checkList: [],
checkList: ['s', 'm', 'l', 'xl'],
list: [
{ label: 'S', value: 'S' },
{ label: 'S', value: 's' },
{ label: 'M', value: 'm' },
{ label: 'L', value: 'l' },
{ label: 'XL', value: 'xl' },
{ label: '气泡', value: 'qp' },
{ label: '变形', value: 'bx' },
{ label: '纤维', value: 'xw' },
{ label: '划伤', value: 'hs' },
{ label: '结节', value: 'jj' },
{ label: '结石', value: 'js' },
{ label: '铂金', value: 'bj' },
{ label: '拖尾', value: 'tw' },
{ label: '气泡', value: 'bl' },
{ label: '变形', value: 'distortion' },
{ label: '纤维', value: 'fiber' },
{ label: '划伤', value: 'scratch' },
{ label: '结节', value: 'knot' },
{ label: '结石', value: 'stone' },
{ label: '铂金', value: 'pt' },
{ label: '拖尾', value: 'tail' },
{ label: 'ADG', value: 'adg' },
{ label: '点状缺陷', value: '' },
{ label: '锡缺陷(顶部)', value: 'xqxt' },
{ label: '锡缺陷(底部)', value: 'xqxb' },
{ label: '无法识别', value: 'wfsb' }
{ label: '点状缺陷', value: 'tin' },
{ label: '锡缺陷(顶部)', value: 'top' },
{ label: '锡缺陷(底部)', value: 'bottom' },
{ label: '无法识别', value: 'iisrest' }
],
selectedGlassId: [],
leftList: [
{ name: 'S', value: null, key: 's' },
{ name: 'M', value: null, key: 'm' },
{ name: 'L', value: null, key: 'l' },
{ name: 'XL', value: null, key: 'xl' }
],
rightList: [
{ name: '气泡', value: null, key: 'bl' },
{ name: '变形', value: null, key: 'distortion' },
{ name: '纤维', value: null, key: 'fiber' },
{ name: '划伤', value: null, key: 'scratch' },
{ name: '点状缺陷', value: null, key: 'tin' },
{ name: '结石', value: null, key: 'stone' },
{ name: '铂金', value: null, key: 'pt' },
{ name: '结节', value: null, key: 'knot' },
{ name: '拖尾', value: null, key: 'tail' },
{ name: 'ADG', value: null, key: 'adg' },
{ name: '锡缺陷(顶部)', value: null, key: 'top' },
{ name: '锡缺陷(底部)', value: null, key: 'bottom' },
{ name: '无法识别', value: null, key: 'iisrest' }
]
}
},
@ -158,20 +195,76 @@ export default {
window.addEventListener('resize', () => {
this.tableH = tableHeight(290)
})
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() {
let arr = []
for (let i = 0; i < 30; i++) {
let obj = {}
obj.id = i + 10
arr.push(obj)
}
this.tableData = arr
queryPoint({ ...this.listQuery }).then((res) => {
console.log(res)
this.tableData = res.data
})
},
drawPic() {
//
this.getDetail()
drawPoint().then((res) => {
console.log(res)
})
},
getDetail() {
//
queryPointClear({
glassId: this.selectedGlassId
}).then((res) => {
console.log(res)
})
},
buttonClick(val) {
//
console.log(val)
this.listQuery.startTime = val.timeVal ? val.timeVal[0] : ''
this.listQuery.endTime = val.timeVal ? val.timeVal[1] : ''
this.getList()
},
selectChange(val) {
console.log(val)
let arr = []
if (val.length > 0) {
for (let i = 0; i < val.length; i++) {
arr.push(val[i].glassId)
}
this.selectedGlassId = arr
} else {
this.selectedGlassId = []
}
},
selectType(val) {
console.log(val)
if (val === 'pellet') {
this.checkList = ['s', 'm', 'l', 'xl']
} else {
this.checkList = [
'bl',
'distortion',
'fiber',
'scratch',
'knot',
'stone',
'pt',
'tail',
'adg',
'tin',
'top',
'bottom',
'iisrest'
]
}
},
moveEnd() {
this.$refs.poltChart.getChart()

View File

@ -27,38 +27,46 @@
</template>
<script>
import { tableHeight } from '@/utils/index'
import {
processCompleteInspetion,
completeInspetionExport
} from '@/api/qualityManagement'
import moment from 'moment'
import { timeFormatter } from '@/utils'
const tableProps = [
{
prop: 'glassId',
prop: 'virtualcode',
label: '玻璃ID'
},
{
prop: 'fullInspectionType',
prop: 'filetype',
label: '全检类型'
},
{
prop: 'long',
prop: 'glassLength',
label: '长/mm'
},
{
prop: 'width',
prop: 'glassWidth',
label: '宽/mm'
},
{
prop: 'thick',
prop: 'glassHeight',
label: '厚/mm'
},
{
prop: 'productQuality',
prop: 'grade',
label: '产品质量'
},
{
prop: 'productionLine',
prop: 'line',
label: '产线'
},
{
prop: 'testOfTime',
label: '检验时间'
prop: 'time',
label: '检验时间',
filter: timeFormatter,
minWidth: 160
}
]
const tableBtn = [
@ -82,24 +90,27 @@ export default {
type: 'select',
label: '全检类型',
selectOptions: [
{ id: '1', name: '精切后边检' },
{ id: '2', name: '终检边检' },
{ id: '3', name: '面检' },
{ id: '4', name: '复检' }
{ id: '精切后边检', name: '精切后边检' },
{ id: '终检边检', name: '终检边检' },
{ id: '面检', name: '面检' },
{ id: '复检', name: '复检' }
],
param: 'fullInspectionType',
param: 'grindType',
defaultSelect: '',
width: 150
},
{
type: 'datePicker',
label: '检验时间',
dateType: 'datetime',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
placeholder: '抽检时间',
param: 'testTime',
width: 200
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 350
},
{
type: 'button',
@ -133,36 +144,72 @@ export default {
window.addEventListener('resize', () => {
this.tableH = tableHeight(330)
})
for (let i = 0; i < 30; i++) {
let obj = {}
obj.glassId = i
obj.fullInspectionType = '全检类型' + i
obj.long = i
obj.width = i
obj.thick = i
obj.productQuality = '产品质量' + i
obj.productionLine = '产线' + i
obj.testOfTime = '2022-08-08 13:59:13'
this.tableData.push(obj)
}
this.formConfig[2].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() {
console.log('getList')
processCompleteInspetion({ ...this.listQuery }).then((res) => {
console.log(res)
if (res.code === 0 && res.data) {
this.tableData = res.data.records
this.total = res.data.total
}
})
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.startTime = val.timeVal ? val.timeVal[0] : ''
this.listQuery.endTime = val.timeVal ? val.timeVal[1] : ''
this.listQuery.grindType = val.grindType
this.listQuery.glassId = val.glassId
this.listQuery.current = 1
this.getList()
break
default:
alert('导出')
completeInspetionExport({ ...this.listQuery }).then((response) => {
console.log(response)
let fileName = ''
const contentDisposition = response.headers['content-disposition']
if (contentDisposition) {
fileName = decodeURIComponent(
contentDisposition.slice(
contentDisposition.indexOf('filename=') + 9
)
)
}
const blob = new Blob([response.data])
const reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
const a = document.createElement('a')
a.download = fileName
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
})
}
},
handleClick(val) {
console.log(val)
if (val.type === 'detail') {
alert('详情')
this.$router.push({
path: '/qualityManagement/processFullInspection/fullInspectionDetail',
query: {
virtualcode: val.data.virtualcode,
filetype: encodeURIComponent(val.data.filetype),
time: val.data.time
}
})
}
}
}

View File

@ -0,0 +1,201 @@
<template>
<div class="full-inspection-detail">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
<div class="plot-total">
<defect-scatter-plot-total
ref="fullInspectionDetailPlot"
:detailObj="detailObj"
class="plot-total-box"
/>
</div>
<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="操作"
fixed="right"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination :limit="listQuery.size" :total="total" />
</div>
</template>
<script>
import { tableHeight } from '@/utils/index'
import {
processCompleteInspetionListType,
processCompleteInspetionDetails,
pageIIS
} from '@/api/qualityManagement'
import defectScatterPlotTotal from './../components/defectScatterPlotTotal.vue'
const tableProps = [
{
prop: 'virtualcode',
label: '缺陷编号'
},
{
prop: 'filetype',
label: 'Y轴位置(mm)'
},
{
prop: 'glassLength',
label: 'X轴位置(mm)'
},
{
prop: 'glassWidth',
label: '缺陷尺寸等级'
},
{
prop: 'glassHeight',
label: '缺陷类型'
},
{
prop: 'grade',
label: '长度(mm)'
},
{
prop: 'line',
label: '宽度(mm)'
}
]
const tableBtn = [
{
type: 'detail',
btnName: '查看图片'
}
]
export default {
name: 'FullInspectionDetail',
components: { defectScatterPlotTotal },
data() {
return {
formConfig: [
{
type: 'select',
label: '缺陷类型',
selectOptions: [],
param: 'defectType',
labelField: 'defectType',
valueField: 'defectType',
defaultSelect: '',
filterable: true,
width: 200
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '返回',
name: 'export',
color: 'primary',
plain: true
}
],
detailObj: {},
tableProps,
tableData: [],
tableH: tableHeight(330),
tableBtn,
total: 0,
listQuery: {
current: 1,
size: 20,
glassId: ''
}
}
},
mounted() {
const { virtualcode, filetype, time } = this.$route.query
this.listQuery.glassId = virtualcode
this.getDetail(virtualcode, filetype, time)
window.addEventListener('resize', () => {
this.tableH = tableHeight(330)
})
this.getListType()
},
methods: {
getDetail(virtualcode, filetype, time) {
processCompleteInspetionDetails({
virtualcode,
time,
defectType: decodeURIComponent(filetype)
}).then((res) => {
console.log(res)
this.detailObj = res.data
this.$nextTick(() => {
this.$refs.fullInspectionDetailPlot.init()
})
})
},
getListType() {
processCompleteInspetionListType({
size: 500,
current: 1
}).then((res) => {
console.log(res)
this.formConfig[0].selectOptions = res.data
})
},
getList() {
pageIIS({ ...this.listQuery }).then((res) => {
console.log(res)
})
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.defectType = val.defectType
this.listQuery.current = 1
this.getList()
break
default:
this.$router.push({
path: '/qualityManagement/processFullInspection/fullInspection'
})
}
},
handleClick(val) {
console.log(val)
alert('图片详情')
}
}
}
</script>
<style lang="scss" scoped>
.full-inspection-detail {
margin: 0 16px;
padding: 16px;
border-radius: 8px;
height: calc(100vh - 205px);
background-color: #fff;
.plot-total {
position: relative;
height: 115px;
.plot-total-box {
position: absolute;
width: 100%;
top: 25px;
left: 0px;
}
}
}
</style>

View File

@ -14,7 +14,7 @@
import * as echarts from 'echarts'
import { tableHeight } from '@/utils/index'
import resize from '@/utils/chartMixins/resize'
// import { getProcessFull } from '@/api/qualityManagement'
import { getProcessFull } from '@/api/qualityManagement'
import moment from 'moment'
export default {
name: 'particleLineChart',
@ -25,13 +25,15 @@ export default {
{
type: 'datePicker',
label: '检验时间',
dateType: 'datetime',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
placeholder: '抽检时间',
param: 'checkOutTime',
defaultSelect: '',
width: 200
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 350
},
{
type: 'input',
@ -49,6 +51,10 @@ export default {
chartDom: '',
chart: '',
chartHeight: tableHeight(320),
listQuery: {
startTime: '',
endTime: ''
},
checkOutTime: '',
maxLine: ''
}
@ -59,14 +65,21 @@ export default {
window.addEventListener('resize', () => {
this.chartHeight = tableHeight(320)
})
this.formConfig[0].defaultSelect = moment().format('YYYY-MM-DD HH:mm:ss')
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()
this.getMsg()
},
methods: {
buttonClick(val) {
console.log(val)
if (val.btnName === 'search') {
this.checkOutTime = val.checkOutTime
this.listQuery.startTime = val.timeVal ? val.timeVal[0] : ''
this.listQuery.endTime = val.timeVal ? val.timeVal[1] : ''
this.maxLine = val.maxLine
this.getMsg()
}
@ -79,42 +92,42 @@ export default {
let xlList = []
let sumList = []
let msg = {}
for (let i = 0; i < 1000; i++) {
time.push(moment().add(i, 'days').format('YYYY-MM-DD HH:mm:ss'))
sList.push(Math.floor(Math.random() * 80 + 10))
mList.push(Math.floor(Math.random() * 100 + 20))
lList.push(Math.floor(Math.random() * 130 + 30))
xlList.push(Math.floor(Math.random() * 150 + 40))
sumList.push(sList[i] + mList[i] + lList[i] + xlList[i])
}
msg.time = time
msg.sList = sList
msg.mList = mList
msg.lList = lList
msg.xlList = xlList
msg.sumList = sumList
this.getChart(msg)
// getProcessFull({ checkOutTime: this.checkOutTime }).then((res) => {
// console.log(res)
// if (res.code === 0 && res.data.length > 0) {
// res.data.map((item) => {
// console.log(item)
// time.push(moment(item.hour).format('MM-DD HH:mm:ss'))
// sList.push(item.s)
// mList.push(item.m)
// lList.push(item.l)
// xlList.push(item.xl)
// sumList.push(item.sum)
// })
// msg.time = time
// msg.sList = sList
// msg.mList = mList
// msg.lList = lList
// msg.xlList = xlList
// msg.sumList = sumList
// this.getChart(msg)
// }
// })
// for (let i = 0; i < 1000; i++) {
// time.push(moment().add(i, 'days').format('YYYY-MM-DD HH:mm:ss'))
// sList.push(Math.floor(Math.random() * 80 + 10))
// mList.push(Math.floor(Math.random() * 100 + 20))
// lList.push(Math.floor(Math.random() * 130 + 30))
// xlList.push(Math.floor(Math.random() * 150 + 40))
// sumList.push(sList[i] + mList[i] + lList[i] + xlList[i])
// }
// msg.time = time
// msg.sList = sList
// msg.mList = mList
// msg.lList = lList
// msg.xlList = xlList
// msg.sumList = sumList
// this.getChart(msg)
getProcessFull({ ...this.listQuery }).then((res) => {
console.log(res)
if (res.code === 0 && res.data.length > 0) {
res.data.map((item) => {
console.log(item)
time.push(moment(item.hour).format('YY-MM-DD HH:mm:ss'))
sList.push(item.s)
mList.push(item.m)
lList.push(item.l)
xlList.push(item.xl)
sumList.push(item.sum)
})
msg.time = time
msg.sList = sList
msg.mList = mList
msg.lList = lList
msg.xlList = xlList
msg.sumList = sumList
this.getChart(msg)
}
})
},
getChart1(msg) {
var option = {

View File

@ -4,12 +4,13 @@
<div class="left-box">
<search-bar :formConfigs="formConfig" @headBtnClick="buttonClick" />
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:selectWidth="50"
ref="thicknessDistributionTable"
id="thicknessDistributionTable1"
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
highlight-current-row
@current-change="handleCurrentChange"
/>
</div>
</el-col>
@ -23,17 +24,22 @@
<script>
import { tableHeight } from '@/utils/index'
import thicknessDistributionChart from './../components/thicknessDistributionChart.vue'
import { queryThickness, drawThickness } from '@/api/qualityManagement'
import { timeFormatter } from '@/utils'
import moment from 'moment'
const tableProps = [
{
prop: 'glassID',
prop: 'glassId',
label: 'ID'
},
{
prop: 'time',
label: '检测时间'
prop: 'testTime',
label: '检测时间',
filter: timeFormatter,
minWidth: 160
},
{
prop: 'type',
prop: 'grindType',
label: '研磨类型'
}
]
@ -46,25 +52,21 @@ export default {
{
type: 'datePicker',
label: '检验时间',
dateType: 'datetime',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
placeholder: '检验时间',
param: 'testTime',
width: 200
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 350
},
{
type: 'select',
type: 'input',
label: '玻璃ID',
selectOptions: [
{ id: '1', name: '521321545' },
{ id: '2', name: '932234561' },
{ id: '3', name: '542121212' },
{ id: '4', name: '354855321' }
],
param: 'fullInspectionType',
defaultSelect: '',
width: 150
placeholder: '玻璃ID',
param: 'glassId'
},
{
type: 'button',
@ -80,38 +82,65 @@ export default {
}
],
listQuery: {
current: 1,
size: 20
startTime: '',
endTime: '',
glassId: ''
},
tableProps,
tableData: [],
tableH: tableHeight(300)
tableH: tableHeight(350),
drawGlassId: ''
}
},
mounted() {
window.addEventListener('resize', () => {
this.tableH = tableHeight(300)
this.tableH = tableHeight(350)
})
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() {
let arr = []
for (let i = 0; i < 30; i++) {
let obj = {}
obj.glassID = i
arr.push(obj)
}
this.tableData = arr
queryThickness({ ...this.listQuery }).then((res) => {
console.log(res)
if (res.code === 0 && res.data.length > 0) {
let _this = this
_this.tableData = res.data
_this.$nextTick(() => {
_this.$refs.thicknessDistributionTable.setCurrent(
'thicknessDistributionTable1',
0
)
})
_this.drawGlassId = _this.tableData[0].id
} else {
this.tableData = []
this.drawGlassId = ''
}
})
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.startTime = val.timeVal ? val.timeVal[0] : ''
this.listQuery.endTime = val.timeVal ? val.timeVal[1] : ''
this.listQuery.glassId = val.glassId
this.listQuery.current = 1
this.getList()
break
default:
alert('导出')
drawThickness(this.drawGlassId).then((res) => {
console.log(res)
})
}
},
handleCurrentChange(val) {
this.drawGlassId = val.newVal.id
}
}
}