Порівняти коміти

..

4 Коміти

Автор SHA1 Повідомлення Дата
523a9d9767 Merge pull request 'zjl' (#11) from zjl into master
Декілька перевірок не були успішними
continuous-integration/drone/push Build is failing
Reviewed-on: #11
2023-03-14 14:15:38 +08:00
b9428e6a89 颗粒折线图 2023-03-14 14:14:03 +08:00
d9da687efd 缺陷散点图 2023-03-10 16:55:32 +08:00
6aadadea13 过程全检 2023-03-09 17:01:02 +08:00
64 змінених файлів з 954 додано та 359 видалено

@@ -6,3 +6,4 @@ ENV = 'development'
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_VIEW_URL = 'http://tft.mes.picaiba.com/ureport/preview'

@@ -6,3 +6,4 @@ ENV = 'production'
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_VIEW_URL = 'http://tft.mes.picaiba.com/ureport/preview'

1
dist/css/3759.bca3f817.css сторонній 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
dist/css/546.4c12fd50.css сторонній

@@ -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 сторонній 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 сторонній 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
dist/css/6286.af863504.css сторонній

@@ -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
dist/css/6488.37bc6dd9.css сторонній

@@ -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 сторонній 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 сторонній 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 сторонній

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

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/2033.322f76fa.js сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/2033.434c23a4.js сторонній

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/2532.3254d9f1.js сторонній

@@ -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
dist/js/2795.68202645.js сторонній

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

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/3124.5c573e61.js сторонній

@@ -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 сторонній 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 сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/4341.a606fa40.js сторонній 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"}}]);

1
dist/js/5091.57954fe0.js сторонній

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/546.d5a8f7d7.js сторонній

@@ -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 сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/6082.9c39cf0b.js сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/6286.dfadd6c6.js сторонній

@@ -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 сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/6488.c01a640d.js сторонній

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/6582.b7dd2a16.js сторонній 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 сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/7675.68705689.js сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/839.ec7017d6.js сторонній

@@ -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
dist/js/8637.896e8c07.js сторонній

@@ -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 сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/app.4f3f8fe2.js сторонній Normal file

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

1
dist/js/app.9320babc.js сторонній

Різницю між файлами не показано, оскільки один чи декілька рядків занадто довгі

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