Files
7-Dongan-MES_Management_View/src/views/QualityAssurance/AssemblyQualitydataQuery/index.vue
2026-05-29 13:58:41 +08:00

595 lines
26 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="app-container">
<el-card class="topCard">
<div class="topDiv">
<div>
<span style="margin-left: 10px">工位号</span>
<el-select
v-model="stationNumberValue"
clearable
filterable
placeholder="请选择工位号"
size="small"
style="width: 200px"
@change="getMeasuringPosition();getTraceabilityCode();getBatchBarcode();getAssemblyNumber()">
<el-option
v-for="item in stationNumber"
:key="item.value"
:label="item.label"
:value="item.value"
size="mini"/>
</el-select>
<span style="margin-left: 10px">零件类型</span>
<el-select
v-model="engineTypeValue"
clearable
filterable
placeholder="请选择零件类型"
size="small"
style="width: 240px"
@change="getAssemblyNumber()">
<el-option
v-for="item in engineType"
:key="item.value"
:label="item.label"
:value="item.value"
size="mini"/>
</el-select>
<!-- <span style="margin-left: 10px">批次条码</span>-->
<!-- <el-input v-model="traceabilityCode" placeholder="请输入批次条码" clearable size="small" style="width: 200px; margin-left: 13px"/>-->
<!-- <span style="margin-left: 10px">精确追溯码</span>-->
<!-- <el-input v-model="traceabilityCode" placeholder="请输入精确追溯码" clearable size="small" style="width: 200px"/>-->
<!-- <el-select v-model="traceabilityCode" placeholder="请选择精确追溯码" filterable clearable size="small" style="width: 200px">-->
<!-- <el-option-->
<!-- v-for="item in traceabilityCodeArr"-->
<!-- :key="item.ID"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- size="mini"/>-->
<!-- </el-select>-->
<!-- <span style="margin-left: 10px">总成编号</span>-->
<!-- <el-input v-model="assemblyNumber" style="width:150px;" placeholder="总成编号" size="small" clearable/>-->
<!-- <span style="margin-left: 10px">测量位置</span>-->
<!-- <el-select v-model="measuringPositionValue" placeholder="请选择测量位置" filterable clearable size="small" style="width: 200px" @change="getMeasuringProject()">-->
<!-- <el-option-->
<!-- v-for="item in measuringPosition"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- size="mini"/>-->
<!-- </el-select>-->
<span style="margin-left: 10px">任务编号</span>
<el-select
v-model="assemblyNumberValue"
allow-create
clearable
filterable
placeholder="请选择任务编号"
size="small"
style="width: 280px;">
<el-option
v-for="item in assemblyNumber"
:key="item.value"
:label="item.label"
:value="item.value"
size="mini"/>
</el-select>
</div>
<div style="margin-top: 10px">
<span style="margin-left: 10px">订单号</span>
<el-select
v-model="orderNumberValue"
clearable
filterable
placeholder="请选择订单"
size="small"
style="width: 200px">
<el-option
v-for="item in orderNumber"
:key="item.value"
:label="item.label"
:value="item.value"
size="mini"/>
</el-select>
<span style="margin-left: 10px">操作时间</span>
<el-date-picker
v-model="dateTime"
:clearable="false"
align="center"
end-placeholder="结束日期"
format="yyyy-MM-dd"
range-separator=""
size="small"
start-placeholder="开始日期"
style="width: 240px;"
type="daterange"
value-format="yyyy-MM-dd"
@change="getOrderNumber();getTraceabilityCode();getBatchBarcode();getAssemblyNumber()"/>
<!-- <el-select v-model="batchBarcodeValue" placeholder="请选择批次条码" clearable filterable size="small" style="width: 200px; margin-left: 13px">-->
<!-- <el-option-->
<!-- v-for="item in batchBarcode"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- size="mini"/>-->
<!-- </el-select>-->
<!-- <span style="margin-left: 10px">是否合格</span>-->
<!-- <el-select v-model="isQualifiedValue" placeholder="请选择是否合格" clearable size="small" style="width: 200px; margin-left: 13px">-->
<!-- <el-option-->
<!-- v-for="item in isQualified"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- size="mini"/>-->
<!-- </el-select>-->
<!-- <span style="margin-left: 10px">测量项目</span>-->
<!-- <el-select v-model="measuringProjectValue" placeholder="请选择测量项目" filterable clearable size="small" style="width: 200px">-->
<!-- <el-option-->
<!-- v-for="item in measuringProject"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- size="mini"/>-->
<!-- </el-select>-->
<el-button
icon="el-icon-search"
plain
size="small"
style="margin-left: 5px"
type="primary"
@click="selectDate()">查询
</el-button>
<el-button icon="el-icon-download" size="small" type="info" @click="exportExcel()">Excel</el-button>
</div>
<el-table
v-loading="loading"
ref="multipleTable"
:cell-class-name="tableRowClassName"
:data="tableData"
:header-cell-style="{background:'#eef1f6',color:'#606266'}"
border
class="main"
element-loading-background="rgba(0, 0, 0, 0.2)"
element-loading-spinner="el-icon-loading"
element-loading-text="数据加载中"
height="660px"
size="mini"
style="width: 100%;max-height: 700px"
tooltip-effect="dark">
<!-- <el-table-column :selectable="selectable" type="selection" width="45" align="center"/>-->
<el-table-column align="center" label="序号" type="index" width="60"/>
<el-table-column align="center" label="订单号" width="120px">
<template slot-scope="scope">
{{ scope.row.订单号 }}
</template>
</el-table-column>
<el-table-column align="center" label="批次号" width="120px">
<template slot-scope="scope">
{{ scope.row.批次号 }}
</template>
</el-table-column>
<el-table-column align="center" label="零件类型" width="200px">
<template slot-scope="scope">
{{ scope.row.发动机型号 }}
</template>
</el-table-column>
<el-table-column align="center" label="任务编号">
<template slot-scope="scope">
{{ scope.row.发动机号 }}
</template>
</el-table-column>
<el-table-column align="center" label="工位号" width="100px">
<template slot-scope="scope">
{{ scope.row.工位号 }}
</template>
</el-table-column>
<!-- <el-table-column align="center" label="工位名称">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.工位名称 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column align="center" label="测量位置" width="150px">
<template slot-scope="scope">
{{ scope.row.测量位置 }}
</template>
</el-table-column>
<!-- <el-table-column align="center" width="150px" label="测量项目">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.测量项目 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column align="center" label="扭矩(Nm)" width="150px">
<template slot-scope="scope">
{{ scope.row.测量值 }}
</template>
</el-table-column>
<!--<el-table-column align="center" label="角度(°)" width="150px">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.测量值1 }}-->
<!-- </template>-->
<!--</el-table-column>-->
<el-table-column align="center" label="露出高度(mm)" width="150px">
<template slot-scope="scope">
{{ scope.row.测量值2 }}
</template>
</el-table-column>
<!-- <el-table-column align="center" label="测量单位" width="80px">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.测量单位 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="理论值" width="80px">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.理论值 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="值上限" width="80px">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.上限值 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="值下限" width="80px">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.下限值 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column align="center" label="生产日期" width="150px">
<template slot-scope="scope">
{{ scope.row.生产日期 }}
</template>
</el-table-column>
<el-table-column align="center" label="合格标志" width="80px">
<template slot-scope="scope">
<span v-if="scope.row.合格标志 === '合格'" style="color: #00893d">{{ scope.row.合格标志 }}</span>
<span v-else style="color: #ff0000">{{ scope.row.合格标志 }}</span>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
v-if="!loading"
:current-page="pageCurrent"
:page-size="pageSize"
:page-sizes="[15, 30, 40]"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</div>
</div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
traceabilityCodeArr: [], // 精确追溯码数组
traceabilityCode: '', // 精确追溯码
assemblyNumber: [], // 总成编号
assemblyNumberValue: '', // 总成编号
orderNumberValue: '', // 订单号
orderNumber: [], // 订单号
stationNumberValue: '', // 工位号
stationNumber: [], // 工位号
measuringPosition: [], // 测量位置
measuringPositionValue: '', // 测量位置
measuringProject: [], // 测量项目
measuringProjectValue: '', // 测量项目
engineTypeValue: '', // 机型
engineType: [], // 机型
batchBarcode: [], // 批次条码
batchBarcodeValue: '', // 批次条码
isQualified: [
{
label: '合格',
value: 1
}, {
label: '不合格',
value: 0
}, {
label: '全部',
value: 2
}
], // 是否合格
isQualifiedValue: 2, // 是否合格
dateTime: '', // 时间
loading: false, // 时间
tableData: [], // 时间
date: new Date(),
timer: '',
total: 0, // 总条数
pageList: 30, // 每页显示条数
pageSize: 30, // 每页显示条数
pageCurrent: 1 // 后台获取页
}
},
created() {
var year, month, day, audiTime
this.date = new Date() // 修改数据date
year = new Date().getFullYear()
month = new Date().getMonth() + 1 < 10 ? '0' + (new Date().getMonth() + 1) : new Date().getMonth() + 1
day = new Date().getDate() < 10 ? '0' + new Date().getDate() : new Date().getDate()
audiTime = year + '-' + month + '-' + day
console.log(audiTime, 'audiTime')
this.dateTime = [audiTime, audiTime]
this.getStationNumber()
this.getEngineType()
},
mounted() {
this.getOrderNumber()
this.getTraceabilityCode()
this.getAssemblyNumber()
},
methods: {
// 表格颜色变化
tableRowClassName({ row, rowIndex }) {
// console.log(row, rowIndex)
if (rowIndex % 2 === 0) {
return 'black'
} else {
return 'red'
}
},
// 工位号
getStationNumber() {
this.stationNumber = []
var param = []
var Data = this.CreateData('11', 'MES_计划BOM_工位与名称_查询', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.stationNumber.push({
label: response.data[i].工位号,
value: response.data[i].工位号
})
}
}).then(() => {
this.getBatchBarcode()
this.getMeasuringPosition()
})
},
// 机型
getEngineType() {
this.engineType = []
var param = []
var Data = this.CreateData('11', 'MES_基本变量_机型代码_查询 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.engineType.push({
label: response.data[i].发动机型号,
value: response.data[i].发动机型号
})
}
})
},
// 订单号
getOrderNumber() {
this.orderNumber = []
var isQualifiedValue
if (!this.isQualifiedValue) {
isQualifiedValue = null
} else {
isQualifiedValue = this.isQualifiedValue
}
var param = []
param[0] = ['开始时间', this.dateTime[0] + ' ' + '00:00:00']
param[1] = ['结束时间', this.dateTime[1] + ' ' + '23:59:59']
// param[0] = ['开始时间', this.dateTime[0]]
// param[1] = ['结束时间', this.dateTime[1]]
param[2] = ['合格标志', isQualifiedValue]
var Data = this.CreateData('11', '测量数据合格索引_订单号_查询 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.orderNumber.push({
label: response.data[i].订单号,
value: response.data[i].订单号
})
}
})
},
// 追溯
getTraceabilityCode() {
this.traceabilityCodeArr = []
var engineTypeValue_check, stationNumberValue_check
this.engineTypeValue ? engineTypeValue_check = 1 : engineTypeValue_check = 0
this.stationNumberValue ? stationNumberValue_check = 1 : stationNumberValue_check = 0
var param = []
param[0] = ['开始时间', this.dateTime[0] + ' ' + '00:00:00']
param[1] = ['结束时间', this.dateTime[1] + ' ' + '23:59:59']
// param[0] = ['开始时间', this.dateTime[0]]
// param[1] = ['结束时间', this.dateTime[1]]
param[2] = ['发动机型号_ischeck', engineTypeValue_check]
param[3] = ['发动机型号', this.engineTypeValue]
param[4] = ['工位号_ischeck', stationNumberValue_check]
param[5] = ['工位号', this.stationNumberValue]
param[6] = ['分线总线', 1]
var Data = this.CreateData('11', '初始化二维码_查询 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.traceabilityCodeArr.push({
label: response.data[i].物料条码,
value: response.data[i].物料条码,
ID: response.data[i].ID
})
}
})
},
getAssemblyNumber() {
this.assemblyNumber = []
var engineTypeValue_check, stationNumberValue_check
this.engineTypeValue ? engineTypeValue_check = 1 : engineTypeValue_check = 0
this.stationNumberValue ? stationNumberValue_check = 1 : stationNumberValue_check = 0
var param = []
param[0] = ['开始时间', this.dateTime[0] + ' ' + '00:00:00']
param[1] = ['结束时间', this.dateTime[1] + ' ' + '23:59:59']
// param[0] = ['开始时间', this.dateTime[0]]
// param[1] = ['结束时间', this.dateTime[1]]
param[2] = ['发动机型号_ischeck', engineTypeValue_check]
param[3] = ['发动机型号', this.engineTypeValue]
param[4] = ['工位号_ischeck', stationNumberValue_check]
param[5] = ['工位号', this.stationNumberValue]
param[6] = ['分线总线', 1]
var Data = this.CreateData('11', '测量数据合格索引_发动机号_发动机型号_查询 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.assemblyNumber.push({
label: response.data[i].发动机号,
value: response.data[i].发动机号
})
}
})
},
getBatchBarcode() {
this.batchBarcode = []
var param = []
param[0] = ['开始时间', this.dateTime[0] + ' ' + '00:00:00']
param[1] = ['结束时间', this.dateTime[1] + ' ' + '23:59:59']
// param[0] = ['开始时间', this.dateTime[0]]
// param[1] = ['结束时间', this.dateTime[1]]
param[2] = ['工位号', this.stationNumberValue]
var Data = this.CreateData('11', '物料数据_视图_物料条码批次号_查询 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.batchBarcode.push({
label: response.data[i].物料条码,
value: response.data[i].物料条码
})
}
})
},
getMeasuringPosition() {
this.measuringPosition = []
var param = []
param[0] = ['工位号', this.stationNumberValue]
var Data = this.CreateData('11', '质量数据查询_测量位置 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.measuringPosition.push({
label: response.data[i].测量位置,
value: response.data[i].测量位置
})
}
}).then(() => {
this.getMeasuringProject()
})
},
getMeasuringProject() {
this.measuringProject = []
var param = []
param[0] = ['工位号', this.stationNumberValue]
param[1] = ['测量位置', this.measuringPositionValue]
var Data = this.CreateData('11', '质量数据查询_测量项目 ', param)
this.ExecDatabase(Data).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.measuringProject.push({
label: response.data[i].测量项目,
value: response.data[i].测量项目
})
}
})
},
selectDate() {
this.tableData = []
let engineTypeValue_check, assemblyNumberValue_check, stationNumberValue_check, measuringPositionValue_check,
measuringProjectValue_check, traceabilityCode_check, orderNumberValue_check
this.engineTypeValue ? engineTypeValue_check = 1 : (engineTypeValue_check = 0, this.engineTypeValue = '')
this.assemblyNumberValue ? assemblyNumberValue_check = 1 : (assemblyNumberValue_check = 0, this.assemblyNumberValue = '')
this.stationNumberValue ? stationNumberValue_check = 1 : (stationNumberValue_check = 0, this.stationNumberValue = '')
this.measuringPositionValue ? measuringPositionValue_check = 1 : (measuringPositionValue_check = 0, this.measuringPositionValue = '')
this.measuringProjectValue ? measuringProjectValue_check = 1 : (measuringProjectValue_check = 0, this.measuringProjectValue = '')
this.traceabilityCode ? traceabilityCode_check = 1 : (traceabilityCode_check = 0, this.traceabilityCode = '')
this.orderNumberValue ? orderNumberValue_check = 1 : (orderNumberValue_check = 0, this.orderNumberValue = '')
var param = []
param[0] = ['开始时间', this.dateTime[0] + ' ' + '00:00:00']
param[1] = ['结束时间', this.dateTime[1] + ' ' + '23:59:59']
param[2] = ['发动机型号_ischeck', engineTypeValue_check]
param[3] = ['发动机型号', this.engineTypeValue]
param[4] = ['发动机号_ischeck', assemblyNumberValue_check]
param[5] = ['发动机号', this.assemblyNumberValue]
param[6] = ['工位号_ischeck', stationNumberValue_check]
param[7] = ['工位号', this.stationNumberValue]
param[8] = ['测量位置_ischeck', measuringPositionValue_check]
param[9] = ['测量位置', this.measuringPositionValue]
param[10] = ['测量项目_ischeck', measuringProjectValue_check]
param[11] = ['测量项目', this.measuringProjectValue]
param[12] = ['订单号_ischeck', orderNumberValue_check]
param[13] = ['订单号', this.orderNumberValue]
param[14] = ['批次条码_ischeck', traceabilityCode_check]
param[15] = ['批次条码', this.traceabilityCode]
param[16] = ['合格标志', this.isQualifiedValue]
param[17] = ['PageCurrent', this.pageCurrent]
param[18] = ['PageSize', this.pageSize]
param[19] = ['PageCount', '1111', 'int', '1']
param[20] = ['ItemCount', '1111', 'int', '1']
var Data = this.CreateData('11', '质量数据_发动机质量数据_各个工位_视图_发动机型号_综合查询', param)
this.ExecDatabase(Data).then(response => {
console.log(response, 66)
if (response.data.result.length !== 0) {
this.tableData = response.data.result
}
this.total = parseInt(response.data.output[0].ItemCount)
this.loading = false
})
},
exportExcel() {
if (this.tableData.length !== 0) {
let engineTypeValue_check, assemblyNumberValue_check, stationNumberValue_check, measuringPositionValue_check,
measuringProjectValue_check, traceabilityCode_check, orderNumberValue_check
this.engineTypeValue ? engineTypeValue_check = 1 : (engineTypeValue_check = 0, this.engineTypeValue = '')
this.assemblyNumberValue ? assemblyNumberValue_check = 1 : (assemblyNumberValue_check = 0, this.assemblyNumberValue = '')
this.stationNumberValue ? stationNumberValue_check = 1 : (stationNumberValue_check = 0, this.stationNumberValue = '')
this.measuringPositionValue ? measuringPositionValue_check = 1 : (measuringPositionValue_check = 0, this.measuringPositionValue = '')
this.measuringProjectValue ? measuringProjectValue_check = 1 : (measuringProjectValue_check = 0, this.measuringProjectValue = '')
this.traceabilityCode ? traceabilityCode_check = 1 : (traceabilityCode_check = 0, this.traceabilityCode = '')
this.orderNumberValue ? orderNumberValue_check = 1 : (orderNumberValue_check = 0, this.orderNumberValue = '')
var param = []
param[0] = ['开始时间', this.dateTime[0] + ' ' + '00:00:00']
param[1] = ['结束时间', this.dateTime[1] + ' ' + '23:59:59']
// param[0] = ['开始时间', this.dateTime[0]]
// param[1] = ['结束时间', this.dateTime[1]]
param[2] = ['发动机型号_ischeck', engineTypeValue_check]
param[3] = ['发动机型号', this.engineTypeValue]
param[4] = ['发动机号_ischeck', assemblyNumberValue_check]
param[5] = ['发动机号', this.assemblyNumberValue]
param[6] = ['工位号_ischeck', stationNumberValue_check]
param[7] = ['工位号', this.stationNumberValue]
param[8] = ['测量位置_ischeck', measuringPositionValue_check]
param[9] = ['测量位置', this.measuringPositionValue]
param[10] = ['测量项目_ischeck', measuringProjectValue_check]
param[11] = ['测量项目', this.measuringProjectValue]
param[12] = ['订单号_ischeck', orderNumberValue_check]
param[13] = ['订单号', this.orderNumberValue]
param[14] = ['批次条码_ischeck', traceabilityCode_check]
param[15] = ['批次条码', this.traceabilityCode]
param[16] = ['合格标志', this.isQualifiedValue]
var Data = this.CreateData('2001', '质量数据查询_综合查询新', param)
this.exportExcel_NPOI(Data)
} else {
this.$message.warning('暂无数据')
}
},
// 分页
handleSizeChange(val) {
this.pageCurrent = 1
this.pageSize = val
this.selectDate()
},
handleCurrentChange(val) {
this.pageCurrent = val
this.selectDate()
}
}
}
</script>
<style scoped>
.topCard {
margin: 5px;
}
.topDiv {
margin-bottom: 10px;
}
</style>