Commit 0a2545e6 authored by 罗林杰's avatar 罗林杰

完成B1,B2两种类型

parent 0c655a17
......@@ -395,19 +395,6 @@ export default {
const values = rowData.dictValue.split(',')
const remarksValues = rowData.remarks.split(',')
this.fixedColumnCount = values.length
// 往table表格里放值,但排除row1表头
if (rowData.dictLabel !== 'row1') {
const result = {}
for (let j = 0; j < values.length; j++) {
result[j] = values[j]
}
this.tableData.push(result)
const remarks = {}
for (let j = 0; j < remarksValues.length; j++) {
remarks[j] = remarksValues[j]
}
this.tableRemarks.push(remarks)
}
if (rowData.dictLabel === 'row1') {
// 获取表头数据 循环values
for (let i = 0; i < values.length; i++) {
......@@ -419,6 +406,36 @@ export default {
}
this.tableHeaderLength = this.tableHeader.length
}
// 往table表格里放值,但排除row1表头
if (rowData.dictLabel !== 'row1') {
const result = {}
for (let j = 0; j < this.tableHeader.length; j++) {
// i !== templateData.length - 1 代表着不是最后一行
// 处理固定列之外的列值 赋成空字符串
if (j < values.length) {
result[j] = values[j]
} else {
result[j] = ''
}
}
this.tableData.push(result)
// 重新排序
this.tableData = this.tableData.map(row => {
// 获取对象的键,并按升序排序
const sortedKeys = Object.keys(row).map(Number).sort((a, b) => a - b)
// 创建一个新对象,重新映射键
const newRow = {}
sortedKeys.forEach((key, index) => {
newRow[index] = row[key] // 从 0 开始映射
})
return newRow
})
const remarks = {}
for (let j = 0; j < remarksValues.length; j++) {
remarks[j] = remarksValues[j]
}
this.tableRemarks.push(remarks)
}
}
this.loading = false
} else {
......
......@@ -122,7 +122,8 @@ export default {
maxTable: [],
minTable: [],
// 列表备注数据
tableRemarks: []
tableRemarks: [],
allInRange: 'OK'
}
},
watch: {
......@@ -213,67 +214,8 @@ export default {
}
},
methods: {
verifyResult(rowData, columnData, column, index) {
if (this.localVerifyResultFlag[index] === true) {
// 遍历result
let allInRange = 'OK' // 假设所有值都在范围内
// 获取当前行,如果第一个列的值为'Cpk',则进行校验
if (rowData[0] === 'Cpk') {
// 校验表格数据
const upperBound = this.tableRemarks[index][1] // 上限
const lowerBound = this.tableRemarks[index][0]// 下限
// 检查 columnData 是否为数字
if (isNaN(Number(columnData))) {
allInRange = 'NG' // 如果 columnData 不是数字,直接返回 true
} else {
if (upperBound !== '' && upperBound !== '') {
if (Number(columnData) < Number(lowerBound) || Number(columnData) > Number(upperBound)) {
// 不在范围之间
allInRange = 'NG'
} else {
allInRange = 'OK'
}
}
}
}
// 如果当前行第一个值为'n='开头的字符串
if (rowData[0].startsWith('n=')) {
const fourthRowData = this.tableData[3][column.property] // 第4行的数据
const fifthRowData = this.tableData[4][column.property] // 第5行的数据
// 确保 fourthRowData 和 fifthRowData 是有效的数值
if (!isNaN(Number(fourthRowData)) && !isNaN(Number(fifthRowData))) {
if (Number(columnData) < Number(fourthRowData) && Number(columnData) > Number(fifthRowData)) {
// 当前列的数据不在第四行和第五行指定的范围内
allInRange = 'OK'
} else {
allInRange = 'NG'
}
} else {
// 如果 columnData 不是数字,直接返回 true
allInRange = 'OK'
}
}
const params = {
rowData: rowData,
value: allInRange
}
this.$emit('updateTableData', params)
} else if (this.localVerifyResultFlag[index] === false) {
// 当为修改时 并且不需要校验的时候 直接返回数据的结果
if (this.updateFlag === true) {
return rowData[rowData.length - 1]
}
}
},
// 处理输入事件 一旦输入 就把当前行改为需要校验结果列的行
handleInput(rowData, columnData, column, index) {
// 通知父组件进行修改校验结果列标志
const data = JSON.parse(JSON.stringify(this.verifyResultFlag))
data[index] = true
this.localVerifyResultFlag = data
this.$emit('update:verify-result-flag', data)
// 校验结果列
this.verifyResult(rowData, columnData, column, index)
handleInput() {
this.allInRange = 'OK'
},
// 初始化时 整个表格的数据校验
dataVerify(rowData, columnData, column, index) {
......@@ -285,8 +227,24 @@ export default {
if (columnData === '' || columnData === null || columnData === undefined) {
return false
}
// 判断校验结果
this.verifyResult(rowData, columnData, column, index)
// 如果当前行第一个值为'n='开头的字符串
if (rowData[0].startsWith('n=')) {
const fourthRowData = this.tableData[3][column.property] // 第4行的数据
const fifthRowData = this.tableData[4][column.property] // 第5行的数据
// 确保 fourthRowData 和 fifthRowData 是有效的数值
if (!isNaN(Number(fourthRowData)) && !isNaN(Number(fifthRowData))) {
if (Number(columnData) <= Number(fourthRowData) && Number(columnData) >= Number(fifthRowData)) {
// 当前列的数据不在第四行和第五行指定的范围内
return false
} else {
this.allInRange = 'NG'
return true
}
} else {
return false // 或者可以根据需求决定是否返回 true
}
}
// 获取当前行,如果第一个列的值为'Cpk',则进行校验
if (rowData[0] === 'Cpk') {
// 校验表格数据
......@@ -294,35 +252,30 @@ export default {
const lowerBound = this.tableRemarks[index][0]// 下限
// 检查 columnData 是否为数字
if (isNaN(Number(columnData))) {
this.allInRange = 'NG'
if (Number(column.property) + 2 === Number(this.tableHeader.length)) {
this.$emit('updateTableData', this.allInRange)
}
return true // 如果 columnData 不是数字,直接返回 true
} else {
if (upperBound !== '' && upperBound !== '') {
if (Number(columnData) < Number(lowerBound) || Number(columnData) > Number(upperBound)) {
this.allInRange = 'NG'
if (Number(column.property) + 2 === this.tableHeader.length) {
this.$emit('updateTableData', this.allInRange)
}
// 不在范围之间
return true
} else {
if (Number(column.property) + 2 === this.tableHeader.length) {
// 在范围内
this.$emit('updateTableData', this.allInRange)
}
return false
}
}
}
}
// 如果当前行第一个值为'n='开头的字符串
if (rowData[0].startsWith('n=')) {
const fourthRowData = this.tableData[3][column.property] // 第4行的数据
const fifthRowData = this.tableData[4][column.property] // 第5行的数据
// 确保 fourthRowData 和 fifthRowData 是有效的数值
if (!isNaN(Number(fourthRowData)) && !isNaN(Number(fifthRowData))) {
if (Number(columnData) < Number(fourthRowData) && Number(columnData) > Number(fifthRowData)) {
// 当前列的数据不在第四行和第五行指定的范围内
return false
} else {
return true
}
} else {
return false // 或者可以根据需求决定是否返回 true
}
}
},
// 获取OCR模版配置
getDictOcrTemplate1() {
......@@ -337,19 +290,6 @@ export default {
const values = rowData.dictValue.split(',')
const remarksValues = rowData.remarks.split(',')
this.fixedColumnCount = values.length
// 往table表格里放值,但排除row1表头
if (rowData.dictLabel !== 'row1') {
const result = {}
for (let j = 0; j < values.length; j++) {
result[j] = values[j]
}
this.tableData.push(result)
const remarks = {}
for (let j = 0; j < remarksValues.length; j++) {
remarks[j] = remarksValues[j]
}
this.tableRemarks.push(remarks)
}
if (rowData.dictLabel === 'row1') {
// 获取表头数据 循环values
for (let i = 0; i < values.length; i++) {
......@@ -361,6 +301,36 @@ export default {
}
this.tableHeaderLength = this.tableHeader.length
}
// 往table表格里放值,但排除row1表头
if (rowData.dictLabel !== 'row1') {
const result = {}
for (let j = 0; j < this.tableHeader.length; j++) {
// i !== templateData.length - 1 代表着不是最后一行
// 处理固定列之外的列值 赋成空字符串
if (j < values.length) {
result[j] = values[j]
} else {
result[j] = ''
}
}
this.tableData.push(result)
// 重新排序
this.tableData = this.tableData.map(row => {
// 获取对象的键,并按升序排序
const sortedKeys = Object.keys(row).map(Number).sort((a, b) => a - b)
// 创建一个新对象,重新映射键
const newRow = {}
sortedKeys.forEach((key, index) => {
newRow[index] = row[key] // 从 0 开始映射
})
return newRow
})
const remarks = {}
for (let j = 0; j < remarksValues.length; j++) {
remarks[j] = remarksValues[j]
}
this.tableRemarks.push(remarks)
}
}
this.loading = false
} else {
......
......@@ -122,7 +122,8 @@ export default {
maxTable: [],
minTable: [],
// 列表备注数据
tableRemarks: []
tableRemarks: [],
allInRange: 'OK'
}
},
watch: {
......@@ -131,6 +132,8 @@ export default {
handler(newValue, oldValue) {
if (this.updateFlag === true) {
this.tableData = Array.from({ length: newValue.length }, () => [])
console.log('111111111',this.tableData)
console.log('2222222',newValue)
// 修改
// 循环this.tableData i代表第几行
for (let i = 0; i < newValue.length; i++) {
......@@ -141,6 +144,7 @@ export default {
// this.tableData[i][this.fixedColumnCount + j] = newValue[i][j];
}
}
console.log('33333333333',this.tableData)
this.tableHeader = JSON.parse(JSON.stringify(this.returnTableHeader))
this.tableHeaderLength = this.tableHeader.length
// 找出列表表头为1的索引号
......@@ -213,67 +217,8 @@ export default {
}
},
methods: {
verifyResult(rowData, columnData, column, index) {
if (this.localVerifyResultFlag[index] === true) {
// 遍历result
let allInRange = 'OK' // 假设所有值都在范围内
// 获取当前行,如果第一个列的值为'Cpk',则进行校验
if (rowData[0] === 'Cpk') {
// 校验表格数据
const upperBound = this.tableRemarks[index][1] // 上限
const lowerBound = this.tableRemarks[index][0]// 下限
// 检查 columnData 是否为数字
if (isNaN(Number(columnData))) {
allInRange = 'NG' // 如果 columnData 不是数字,直接返回 true
} else {
if (upperBound !== '' && upperBound !== '') {
if (Number(columnData) < Number(lowerBound) || Number(columnData) > Number(upperBound)) {
// 不在范围之间
allInRange = 'NG'
} else {
allInRange = 'OK'
}
}
}
}
// 如果当前行第一个值为'n='开头的字符串
if (rowData[0].startsWith('n=')) {
const fourthRowData = this.tableData[3][column.property] // 第4行的数据
const fifthRowData = this.tableData[4][column.property] // 第5行的数据
// 确保 fourthRowData 和 fifthRowData 是有效的数值
if (!isNaN(Number(fourthRowData)) && !isNaN(Number(fifthRowData))) {
if (Number(columnData) < Number(fourthRowData) && Number(columnData) > Number(fifthRowData)) {
// 当前列的数据不在第四行和第五行指定的范围内
allInRange = 'OK'
} else {
allInRange = 'NG'
}
} else {
// 如果 columnData 不是数字,直接返回 true
allInRange = 'OK'
}
}
const params = {
rowData: rowData,
value: allInRange
}
this.$emit('updateTableData', params)
} else if (this.localVerifyResultFlag[index] === false) {
// 当为修改时 并且不需要校验的时候 直接返回数据的结果
if (this.updateFlag === true) {
return rowData[rowData.length - 1]
}
}
},
// 处理输入事件 一旦输入 就把当前行改为需要校验结果列的行
handleInput(rowData, columnData, column, index) {
// 通知父组件进行修改校验结果列标志
const data = JSON.parse(JSON.stringify(this.verifyResultFlag))
data[index] = true
this.localVerifyResultFlag = data
this.$emit('update:verify-result-flag', data)
// 校验结果列
this.verifyResult(rowData, columnData, column, index)
handleInput() {
this.allInRange = 'OK'
},
// 初始化时 整个表格的数据校验
dataVerify(rowData, columnData, column, index) {
......@@ -285,8 +230,24 @@ export default {
if (columnData === '' || columnData === null || columnData === undefined) {
return false
}
// 判断校验结果
this.verifyResult(rowData, columnData, column, index)
// 如果当前行第一个值为'n='开头的字符串
if (rowData[0].startsWith('n=')) {
const fourthRowData = this.tableData[3][column.property] // 第4行的数据
const fifthRowData = this.tableData[4][column.property] // 第5行的数据
// 确保 fourthRowData 和 fifthRowData 是有效的数值
if (!isNaN(Number(fourthRowData)) && !isNaN(Number(fifthRowData))) {
if (Number(columnData) <= Number(fourthRowData) && Number(columnData) >= Number(fifthRowData)) {
// 当前列的数据不在第四行和第五行指定的范围内
return false
} else {
this.allInRange = 'NG'
return true
}
} else {
return false // 或者可以根据需求决定是否返回 true
}
}
// 获取当前行,如果第一个列的值为'Cpk',则进行校验
if (rowData[0] === 'Cpk') {
// 校验表格数据
......@@ -294,35 +255,30 @@ export default {
const lowerBound = this.tableRemarks[index][0]// 下限
// 检查 columnData 是否为数字
if (isNaN(Number(columnData))) {
this.allInRange = 'NG'
if (Number(column.property) + 2 === Number(this.tableHeader.length)) {
this.$emit('updateTableData', this.allInRange)
}
return true // 如果 columnData 不是数字,直接返回 true
} else {
if (upperBound !== '' && upperBound !== '') {
if (Number(columnData) < Number(lowerBound) || Number(columnData) > Number(upperBound)) {
this.allInRange = 'NG'
if (Number(column.property) + 2 === this.tableHeader.length) {
this.$emit('updateTableData', this.allInRange)
}
// 不在范围之间
return true
} else {
if (Number(column.property) + 2 === this.tableHeader.length) {
// 在范围内
this.$emit('updateTableData', this.allInRange)
}
return false
}
}
}
}
// 如果当前行第一个值为'n='开头的字符串
if (rowData[0].startsWith('n=')) {
const fourthRowData = this.tableData[3][column.property] // 第4行的数据
const fifthRowData = this.tableData[4][column.property] // 第5行的数据
// 确保 fourthRowData 和 fifthRowData 是有效的数值
if (!isNaN(Number(fourthRowData)) && !isNaN(Number(fifthRowData))) {
if (Number(columnData) < Number(fourthRowData) && Number(columnData) > Number(fifthRowData)) {
// 当前列的数据不在第四行和第五行指定的范围内
return false
} else {
return true
}
} else {
return false // 或者可以根据需求决定是否返回 true
}
}
},
// 获取OCR模版配置
getDictOcrTemplate1() {
......@@ -337,19 +293,6 @@ export default {
const values = rowData.dictValue.split(',')
const remarksValues = rowData.remarks.split(',')
this.fixedColumnCount = values.length
// 往table表格里放值,但排除row1表头
if (rowData.dictLabel !== 'row1') {
const result = {}
for (let j = 0; j < values.length; j++) {
result[j] = values[j]
}
this.tableData.push(result)
const remarks = {}
for (let j = 0; j < remarksValues.length; j++) {
remarks[j] = remarksValues[j]
}
this.tableRemarks.push(remarks)
}
if (rowData.dictLabel === 'row1') {
// 获取表头数据 循环values
for (let i = 0; i < values.length; i++) {
......@@ -361,6 +304,36 @@ export default {
}
this.tableHeaderLength = this.tableHeader.length
}
// 往table表格里放值,但排除row1表头
if (rowData.dictLabel !== 'row1') {
const result = {}
for (let j = 0; j < this.tableHeader.length; j++) {
// i !== templateData.length - 1 代表着不是最后一行
// 处理固定列之外的列值 赋成空字符串
if (j < values.length) {
result[j] = values[j]
} else {
result[j] = ''
}
}
this.tableData.push(result)
// 重新排序
this.tableData = this.tableData.map(row => {
// 获取对象的键,并按升序排序
const sortedKeys = Object.keys(row).map(Number).sort((a, b) => a - b)
// 创建一个新对象,重新映射键
const newRow = {}
sortedKeys.forEach((key, index) => {
newRow[index] = row[key] // 从 0 开始映射
})
return newRow
})
const remarks = {}
for (let j = 0; j < remarksValues.length; j++) {
remarks[j] = remarksValues[j]
}
this.tableRemarks.push(remarks)
}
}
this.loading = false
} else {
......
......@@ -239,28 +239,26 @@
<div v-if="showModelTypeB1">
<B1CheckOrders
:ocr-array="ocrArray"
:verify-result-flag.sync="verifyResultFlag"
:update-flag="updateFlag"
:return-table-header="tableHeader"
:one-key-flag="oneKeyFlag"
:remarks="subModalRemarks"
@afterUpdate="getAfterUpdateData"
@afterUpdate="getAfterUpdateDataB"
@tableHeader="getTableHeader"
@updateTableData="updateTableData"
@updateTableData="updateTableDataB"
@tableRemarks="getTableRemarks"
/>
</div>
<div v-if="showModelTypeB2">
<B2CheckOrders
:ocr-array="ocrArray"
:verify-result-flag.sync="verifyResultFlag"
:update-flag="updateFlag"
:return-table-header="tableHeader"
:one-key-flag="oneKeyFlag"
:remarks="subModalRemarks"
@afterUpdate="getAfterUpdateData"
@afterUpdate="getAfterUpdateDataB"
@tableHeader="getTableHeader"
@updateTableData="updateTableData"
@updateTableData="updateTableDataB"
@tableRemarks="getTableRemarks"
/>
</div>
......@@ -351,7 +349,7 @@ export default {
{ value: '0', label: 'NG' }
],
// 扫描得到的数据
ocrArray: '',
ocrArray: [],
lot: '',
// 主类型的总数据
TypeModalOptions: [
......@@ -445,6 +443,14 @@ export default {
}
}
},
updateTableDataB(params) {
// console.log('111111',params)
if (params === 'OK') {
this.form.chResult = '1'
} else if (params === 'NG') {
this.form.chResult = '0'
}
},
// 获取表格的表头数据
getTableHeader(data) {
this.tableHeader = data
......@@ -481,10 +487,12 @@ export default {
// 转换逻辑
const newData = data.map(item => Object.values(item))
// 循环newData i代表第几行
for (let i = 0; i < newData.length; i++) {
newData[i][newData[i].length - 1] = 'OK'
if (this.form.chType === 'A') {
for (let i = 0; i < newData.length; i++) {
newData[i][newData[i].length - 1] = 'OK'
}
this.ocrArray = newData
}
this.ocrArray = newData
// 生成的是每一行的结果列是否需要验证 false为不需要验证 true为需要验证
const result = {}
for (let i = 0; i < this.tableData1.length; i++) {
......@@ -521,6 +529,9 @@ export default {
}
}
},
getAfterUpdateDataB(value) {
this.tableData1 = value
},
// 获取父组件传递过来的备注数据
getTableRemarks(value) {
this.tableRemarks = value
......@@ -694,6 +705,8 @@ export default {
this.isUpdate = false
this.showModelTypeA1 = false
this.showModelTypeA2 = false
this.showModelTypeB1 = false
this.showModelTypeB2 = false
this.firstTimeUpdate = false
this.firstTimeSelectType = false
this.subOptions = []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment