このコミットが含まれているのは:
2023-05-22 14:21:16 +08:00
コミット 997c8c86eb
40個のファイルの変更247行の追加186行の削除

1
dist/css/1913.db4e9e42.css vendored ノーマルファイル
ファイルの表示

@@ -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 ノーマルファイル
ファイルの表示

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

ファイルの表示

@@ -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 ノーマルファイル
ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

@@ -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
ファイルの表示

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

長すぎる行があるためファイル差分は表示されません

1
dist/js/2125.35167988.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

1
dist/js/293.26410775.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

1
dist/js/3813.3001de3b.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

1
dist/js/5094.c1fd04cd.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

1
dist/js/5096.fd052dc8.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

1
dist/js/6729.a676c4bc.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

長すぎる行があるためファイル差分は表示されません

1
dist/js/app.ae91d20e.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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