Merge pull request '5.22' (#19) from zjl into master
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #19
This commit is contained in:
朱菊兰 2023-05-22 14:21:50 +08:00
commit dead1e5a40
40 changed files with 247 additions and 186 deletions

1
dist/css/1913.db4e9e42.css vendored Normal file
View File

@ -0,0 +1 @@
.tableInner .el-input__inner{border:none;padding:0;height:33px}.samplingAdd .form-box[data-v-b1bb2734]{height:100%;padding:0 32px;position:relative}.samplingAdd .form-box .first-line[data-v-b1bb2734]{border-bottom:1px solid #e9e9e9;margin-bottom:23px}.samplingAdd .bottom[data-v-b1bb2734]{position:absolute;bottom:0;right:32px}.standardSetting .form-box[data-v-fbc9d82a]{height:100%;padding:0 32px;position:relative}.standardSetting .bottom[data-v-fbc9d82a]{position:absolute;bottom:0;right:32px}

1
dist/css/2125.93591f9e.css vendored Normal file
View File

@ -0,0 +1 @@
.processMonitoring .bottom-box[data-v-756f88ed],.processMonitoring .top-box[data-v-756f88ed]{margin:8px 16px;background-color:#fff;border-radius:8px}.processMonitoring .bottom-box[data-v-756f88ed]{padding:16px;height:calc(100vh - 218px)}.processMonitoring .bottom-box .title-box[data-v-756f88ed]{margin-bottom:16px}.processMonitoring .bottom-box .title[data-v-756f88ed]:before{content:"";display:inline-block;width:4px;height:16px;background-color:#0b58ff;vertical-align:middle;margin-right:8px}.processMonitoring .top-box[data-v-756f88ed]{padding:10px 16px 1px}.processMonitoring .top-box .top-search1[data-v-756f88ed],.processMonitoring .top-box .top-search2[data-v-756f88ed]{display:inline-block}.processMonitoring .top-box .top-search1[data-v-756f88ed]{height:50px;padding-top:5px;vertical-align:bottom;margin-right:24px}

View File

@ -1 +0,0 @@
.tableInner .el-input__inner{border:none;padding:0;height:33px}.samplingAdd .form-box[data-v-2adb9530]{height:100%;padding:0 32px;position:relative}.samplingAdd .form-box .first-line[data-v-2adb9530]{border-bottom:1px solid #e9e9e9;margin-bottom:23px}.samplingAdd .bottom[data-v-2adb9530]{position:absolute;bottom:0;right:32px}.standardSetting .form-box[data-v-fbc9d82a]{height:100%;padding:0 32px;position:relative}.standardSetting .bottom[data-v-fbc9d82a]{position:absolute;bottom:0;right:32px}

1
dist/css/293.b914c318.css vendored Normal file
View File

@ -0,0 +1 @@
.box[data-v-537468a0]{padding:0 32px}

View File

@ -1 +0,0 @@
.processMonitoring .bottom-box[data-v-bcfbbbf2],.processMonitoring .top-box[data-v-bcfbbbf2]{margin:8px 16px;background-color:#fff;border-radius:8px}.processMonitoring .bottom-box[data-v-bcfbbbf2]{padding:16px;height:calc(100vh - 218px)}.processMonitoring .bottom-box .title-box[data-v-bcfbbbf2]{margin-bottom:16px}.processMonitoring .bottom-box .title[data-v-bcfbbbf2]:before{content:"";display:inline-block;width:4px;height:16px;background-color:#0b58ff;vertical-align:middle;margin-right:8px}.processMonitoring .top-box[data-v-bcfbbbf2]{padding:10px 16px 1px}.processMonitoring .top-box .top-search1[data-v-bcfbbbf2],.processMonitoring .top-box .top-search2[data-v-bcfbbbf2]{display:inline-block}.processMonitoring .top-box .top-search1[data-v-bcfbbbf2]{height:50px;padding-top:5px;vertical-align:bottom;margin-right:24px}

View File

@ -1 +0,0 @@
.box[data-v-353959df]{padding:0 32px}

View File

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

2
dist/index.html vendored
View File

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>tft-mes</title><script defer="defer" src="/js/chunk-vendors.a42f8636.js"></script><script defer="defer" src="/js/app.50e71cdc.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.ae91d20e.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

1
dist/js/2125.35167988.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/js/293.26410775.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/js/3813.3001de3b.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

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/5094.c1fd04cd.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/5096.fd052dc8.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/6729.a676c4bc.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

File diff suppressed because one or more lines are too long

1
dist/js/app.ae91d20e.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@ export function getPageReal(data) {
export function getPageHistory(data) { export function getPageHistory(data) {
return request({ return request({
url: '/process/processMonitor/history', url: '/process/processMonitor/historyList',
method: 'post', method: 'post',
data data
}) })

View File

@ -110,6 +110,24 @@ export function queryPointClear(data) {
data data
}) })
} }
export function pointExport2(data) {
return request({
url: '/quality/ProcessFull/pointExport2',
method: 'post',
responseType: 'blob',
data,
timeout: 60000
})
}
export function pointExport(data) {
return request({
url: '/quality/ProcessFull/pointExport',
method: 'post',
responseType: 'blob',
data,
timeout: 60000
})
}
// 颗粒折线图 // 颗粒折线图
export function getProcessFull(data) { export function getProcessFull(data) {

View File

@ -162,18 +162,17 @@ export default {
} }
}, },
methods: { methods: {
init() { init() {},
this.getNameList() selectName(val) {
}, getNameList({
getNameList() { type: val
getNameList().then((res) => { }).then((res) => {
this.sparePartsList = res.data this.sparePartsList = res.data
this.sparePartsSpecList = [] this.sparePartsSpecList = []
this.form.sparePartName = ''
this.form.model = ''
}) })
}, },
selectName(val) {
console.log(val)
},
selectModel(val) { selectModel(val) {
getModelList({ getModelList({
name: val name: val

View File

@ -112,7 +112,7 @@
</el-form> </el-form>
</template> </template>
<script> <script>
import { getModelList, getNameList } from '@/api/basicConfig' import { getModelList } from '@/api/basicConfig'
import { sparePartStockUpdate, getSparePartStock } from '@/api/deviceManagement' import { sparePartStockUpdate, getSparePartStock } from '@/api/deviceManagement'
export default { export default {
name: 'SparePartsEdit', name: 'SparePartsEdit',
@ -170,12 +170,6 @@ export default {
}) })
} }
}, },
getNameList() {
getNameList().then((res) => {
this.sparePartsList = res.data
this.sparePartsSpecList = []
})
},
selectModel(val) { selectModel(val) {
getModelList({ getModelList({
name: val name: val

View File

@ -128,7 +128,7 @@
</el-form> </el-form>
</template> </template>
<script> <script>
import { getModelList, getNameList } from '@/api/basicConfig' import { getModelList } from '@/api/basicConfig'
import { import {
sparePartStockOutStock, sparePartStockOutStock,
getBatchList, getBatchList,
@ -207,12 +207,6 @@ export default {
this.batchCodeList = res.data this.batchCodeList = res.data
}) })
}, },
getNameList() {
getNameList().then((res) => {
this.sparePartsList = res.data
this.sparePartsSpecList = []
})
},
selectModel(val) { selectModel(val) {
getModelList({ getModelList({
name: val name: val

View File

@ -7,16 +7,15 @@
<script> <script>
import * as echarts from 'echarts' import * as echarts from 'echarts'
import resize from '@/utils/chartMixins/resize' import resize from '@/utils/chartMixins/resize'
import moment from 'moment'
export default { export default {
mixins: [resize], mixins: [resize],
name: 'ProcessMonitoringChart', name: 'ProcessMonitoringChart',
props: { props: {
chartMsg: { chartMsg: {
type: Object, type: Array,
default: () => { default: () => {
return { return []
chart: ''
}
} }
}, },
beilv: { beilv: {
@ -24,11 +23,11 @@ export default {
default: 1 default: 1
} }
}, },
// mounted() { mounted() {
// this.$nextTick(() => { this.$nextTick(() => {
// this.initChart() this.initChart()
// }) })
// }, },
watch: { watch: {
chartMsg: function () { chartMsg: function () {
this.initChart() this.initChart()
@ -43,6 +42,15 @@ export default {
}, },
methods: { methods: {
initChart() { initChart() {
const xData = []
const yData = []
for (let i = 0; i < this.chartMsg.length; i++) {
let time = moment(this.chartMsg[i].createTime).format(
'yyyy-MM-DD HH:mm:ss'
)
xData.push(time)
yData.push(this.chartMsg[i].value)
}
if ( if (
this.chart !== null && this.chart !== null &&
this.chart !== '' && this.chart !== '' &&
@ -64,14 +72,14 @@ export default {
}, },
xAxis: { xAxis: {
type: 'category', type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] data: xData
}, },
yAxis: { yAxis: {
type: 'value' type: 'value'
}, },
series: [ series: [
{ {
data: [150, 230, 224, 218, 135, 147, 260], data: yData,
type: 'line' type: 'line'
} }
] ]

View File

@ -37,7 +37,7 @@
/> />
</div> </div>
<div v-else> <div v-else>
<process-monitoring-chart :beilv="beilv" /> <process-monitoring-chart :beilv="beilv" :chartMsg="historyList" />
</div> </div>
</div> </div>
</div> </div>
@ -185,7 +185,7 @@ export default {
paramName: this.listQuery.paramName paramName: this.listQuery.paramName
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
this.historyList = res this.historyList = res.data
} }
}) })
}, },

View File

@ -18,22 +18,60 @@ import resize from '@/utils/chartMixins/resize'
export default { export default {
name: 'DefectScatterPlotChart', name: 'DefectScatterPlotChart',
mixins: [resize], mixins: [resize],
props: {
defectMsg: {
type: Object,
default: () => {
return {}
}
}
},
data() { data() {
return { return {
chartDom: '', chartDom: '',
chart: '', chart: '',
chartHeight: tableHeight(446) chartHeight: tableHeight(446),
list: [
{ label: 'S', value: 's' },
{ label: 'M', value: 'm' },
{ label: 'L', value: 'l' },
{ label: 'XL', value: 'xl' },
{ 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: 'tin' },
{ label: '锡缺陷(顶部)', value: 'top' },
{ label: '锡缺陷(底部)', value: 'bottom' },
{ label: '无法识别', value: 'iisrest' }
]
} }
}, },
mounted() { mounted() {
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
this.chartHeight = tableHeight(446) this.chartHeight = tableHeight(446)
}) })
setTimeout(() => { },
watch: {
defectMsg: function () {
this.getChart() this.getChart()
}, 20) }
}, },
methods: { methods: {
transLabel(v) {
let label = ''
for (let l = 0; l < this.list.length; l++) {
if (v === this.list[l].value) {
label = this.list[l].label
}
}
return label
},
getChart() { getChart() {
if ( if (
this.chart !== null && this.chart !== null &&
@ -44,105 +82,28 @@ export default {
} }
this.chartDom = document.getElementById('defectScatterPlotChart') this.chartDom = document.getElementById('defectScatterPlotChart')
this.chart = echarts.init(this.chartDom) this.chart = echarts.init(this.chartDom)
const dataS = [ console.log(this.defectMsg)
[1, 55], let legendList = []
[2, 25], let seriesList = []
[3, 56], for (let i in this.defectMsg) {
[4, 33], console.log(i)
[5, 42], console.log(this.transLabel(i))
[6, 82], legendList.push(this.transLabel(i))
[7, 74], let arr1 = []
[8, 78], let obj = {}
[9, 267], for (let j of this.defectMsg[i]) {
[10, 185], let arr2 = []
[11, 39], arr2.push(parseInt(j.xpos))
[12, 41], arr2.push(parseInt(j.ypos))
[13, 64], arr1.push(arr2)
[14, 108], }
[15, 108], obj.name = this.transLabel(i)
[16, 33], obj.type = 'scatter'
[17, 94], obj.data = arr1
[18, 186], obj.symbolSize = 5
[19, 57], seriesList.push(obj)
[20, 22], }
[21, 39], console.log(seriesList)
[22, 94],
[23, 99],
[24, 31],
[25, 42],
[26, 154],
[27, 234],
[28, 160],
[29, 134],
[30, 52],
[31, 46]
]
const dataM = [
[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],
[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 = { var option = {
color: [ color: [
'#5d7ab7', '#5d7ab7',
@ -166,7 +127,7 @@ export default {
legend: { legend: {
top: 10, top: 10,
left: 0, left: 0,
data: ['S', 'M', 'L'], data: legendList,
textStyle: { textStyle: {
fontSize: 9 fontSize: 9
}, },
@ -185,7 +146,6 @@ export default {
nameTextStyle: { nameTextStyle: {
fontSize: 16 fontSize: 16
}, },
max: 31,
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
@ -207,26 +167,27 @@ export default {
} }
} }
}, },
series: [ series: seriesList
{ // series: [
name: 'S', // {
type: 'scatter', // name: 'S',
data: dataS, // type: 'scatter',
symbolSize: 5 // data: dataS,
}, // symbolSize: 5
{ // },
name: 'M', // {
type: 'scatter', // name: 'M',
data: dataM, // type: 'scatter',
symbolSize: 5 // data: dataM,
}, // symbolSize: 5
{ // },
name: 'L', // {
type: 'scatter', // name: 'L',
data: dataL, // type: 'scatter',
symbolSize: 5 // data: dataL,
} // symbolSize: 5
] // }
// ]
} }
option && this.chart.setOption(option) option && this.chart.setOption(option)
} }

View File

@ -107,6 +107,10 @@ const tablePropsP = [
{ {
prop: 'currentValue', prop: 'currentValue',
label: '当前值' label: '当前值'
},
{
prop: 'time',
label: '参数记录时间'
} }
] ]
const tablePropsD = [ const tablePropsD = [

View File

@ -29,7 +29,6 @@
v-model="form.detectTime" v-model="form.detectTime"
type="datetime" type="datetime"
placeholder="选择抽检时间" placeholder="选择抽检时间"
value-format="yyyy-MM-DDTHH:mm:ss"
style="width: 100%" style="width: 100%"
> >
</el-date-picker> </el-date-picker>
@ -168,8 +167,7 @@ export default {
this.tableH = tableHeight(250) this.tableH = tableHeight(250)
}) })
this.form.model = 'G8.5' this.form.model = 'G8.5'
// this.form.detectTime = moment().format('yyyy-MM-DD HH:mm:ss') this.form.detectTime = new Date()
this.form.detectTime = moment().format('yyyy-MM-DD HH:mm:ss')
}, },
selectItem() { selectItem() {
this.getStandard() this.getStandard()

View File

@ -37,7 +37,9 @@
@click="drawPic" @click="drawPic"
>绘图</el-button >绘图</el-button
> >
<el-button type="primary" size="small" plain>导出</el-button> <el-button type="primary" size="small" plain @click="exportExl"
>导出</el-button
>
</div> </div>
<div class="line2"> <div class="line2">
<el-checkbox-group v-model="checkList"> <el-checkbox-group v-model="checkList">
@ -52,7 +54,10 @@
<div> <div>
<span class="title">缺陷散点图(1245241242)</span> <span class="title">缺陷散点图(1245241242)</span>
</div> </div>
<defect-scatter-plot-chart ref="poltChart" /> <defect-scatter-plot-chart
ref="poltChart"
:defectMsg="defectList"
/>
<div class="bottom"> <div class="bottom">
<div style="margin-bottom: 10px"> <div style="margin-bottom: 10px">
<span class="title">合计</span> <span class="title">合计</span>
@ -69,7 +74,13 @@
import { tableHeight } from '@/utils/index' import { tableHeight } from '@/utils/index'
import defectScatterPlotTotal from './../components/defectScatterPlotTotal.vue' import defectScatterPlotTotal from './../components/defectScatterPlotTotal.vue'
import defectScatterPlotChart from './../components/defectScatterPlotChart.vue' import defectScatterPlotChart from './../components/defectScatterPlotChart.vue'
import { queryPoint, drawPoint, queryPointClear } from '@/api/qualityManagement' import {
queryPoint,
drawPoint,
queryPointClear,
pointExport,
pointExport2
} from '@/api/qualityManagement'
import moment from 'moment' import moment from 'moment'
import { timeFormatter } from '@/utils' import { timeFormatter } from '@/utils'
const tableProps = [ const tableProps = [
@ -168,7 +179,8 @@ export default {
{ label: '无法识别', value: 'iisrest' } { label: '无法识别', value: 'iisrest' }
], ],
selectedGlassId: [], selectedGlassId: [],
detailMsg: {} detailMsg: {},
defectList: {}
} }
}, },
mounted() { mounted() {
@ -201,13 +213,29 @@ export default {
}) })
return false return false
} }
if (this.checkList.length === 0) {
this.$message({
message: '请先勾选缺陷',
type: 'error',
duration: 1500,
onClose: () => {}
})
return false
}
this.getDetail() this.getDetail()
drawPoint({ drawPoint({
startTime: this.listQuery.startTime, startTime: this.listQuery.startTime,
endTime: this.listQuery.endTime, endTime: this.listQuery.endTime,
glassId: this.selectedGlassId glassId: this.selectedGlassId,
defectType: this.checkList
}).then((res) => { }).then((res) => {
console.log(res) console.log(res)
if (res.code === 0) {
this.defectList = res.data
} else {
this.defectList = {}
}
this.$refs.poltChart.getChart()
}) })
}, },
getDetail() { getDetail() {
@ -266,6 +294,63 @@ export default {
}, },
moveEnd() { moveEnd() {
this.$refs.poltChart.getChart() this.$refs.poltChart.getChart()
},
//
exportExl() {
pointExport({
startTime: this.listQuery.startTime,
endTime: this.listQuery.endTime,
glassId: this.selectedGlassId,
defectType: this.checkList
}).then((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)
}
})
pointExport2({
startTime: this.listQuery.startTime,
endTime: this.listQuery.endTime,
glassId: this.selectedGlassId,
defectType: this.checkList
}).then((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)
}
})
} }
} }
} }