Merge pull request 'zjl' (#11) from zjl into master
Some checks failed
continuous-integration/drone/push Build is failing

Reviewed-on: #11
This commit is contained in:
2023-03-14 14:15:38 +08:00
當前提交 523a9d9767
共有 64 個文件被更改,包括 954 次插入359 次删除

查看文件

@@ -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'

查看文件

@@ -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
查看文件

@@ -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%}

查看文件

@@ -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}

查看文件

@@ -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
查看文件

@@ -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
查看文件

@@ -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}

查看文件

@@ -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%}

查看文件

@@ -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
查看文件

@@ -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
查看文件

@@ -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
查看文件

@@ -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

查看文件

@@ -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"}}]);

查看文件

@@ -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

查看文件

@@ -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
查看文件

@@ -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
查看文件

@@ -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

查看文件

@@ -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("玻璃ID:46745386415274874")])])}],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

查看文件

@@ -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
查看文件

@@ -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

查看文件

@@ -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}}]);

查看文件

@@ -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

查看文件

@@ -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
})
}

查看文件

@@ -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
})
}

查看文件

@@ -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',

查看文件

@@ -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

查看文件

@@ -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('加载完成')

查看文件

@@ -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 }
})
}
}
}

查看文件

@@ -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(() => {})
}

查看文件

@@ -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>

查看文件

@@ -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,

查看文件

@@ -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>

查看文件

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

查看文件

@@ -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()

查看文件

@@ -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
}
})
}
}
}

查看文件

@@ -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>

查看文件

@@ -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 = {

查看文件

@@ -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
}
}
}