// import { uniqueMultiArray } from '@/utils/Array'
// 稳定性所使用的一些公共的方法
/**
* 清空六个日期的值
* @param item 清空的数据,Object
*/
export function clearDateValue(item: any) {
// 清除表中数据
item.testValueOne = ''
item.testValueTwo = ''
item.testValueThree = ''
item.testValueFour = ''
item.testValueFive = ''
item.testValueSix = ''
return item
}
/**
* 处理详情表头
* @param columns 表头
* @param list 表格数据
* @param columnsNum 示值的索引
*/
export function handleDetailTableTableHead(
columns: any,
list: any,
columnsNum = 5,
) {
if (!list.length) {
return false
}
if (list[0].testValueOneDate !== '') {
columns[columnsNum].children[0].text = list[0].testValueOneDate // 填表头
}
if (list[0].testValueTwoDate !== '') {
columns[columnsNum].children[1].text = list[0].testValueTwoDate // 填表头
}
if (list[0].testValueThreeDate !== '') {
columns[columnsNum].children[2].text = list[0].testValueThreeDate // 填表头
}
if (list[0].testValueFourDate !== '') {
columns[columnsNum].children[3].text = list[0].testValueFourDate // 填表头
}
if (list[0].testValueFiveDate !== '') {
columns[columnsNum].children[4].text = list[0].testValueFiveDate // 填表头
}
if (list[0].testValueSixDate !== '') {
columns[columnsNum].children[5].text = list[0].testValueSixDate // 填表头
}
return columns
}
/**
* 处理保存日期参数
* @param columns 表头
* @param list 表格数据
* @param columnsNum 示值的索引
*/
export function handleSaveDateParams(columns: any, list: any, columnsNum = 5) {
if (!list.length) {
return false
}
list = list.map(
(item: {
testValueFiveDate: string
testValueFourDate: string
testValueThreeDate: string
testValueTwoDate: string
testValueOneDate: string
}) => {
return {
...item,
testValueFiveDate:
columns[columnsNum].children[4].text === '-'
? ''
: columns[columnsNum].children[4].text, // 核查读数5日期(稳定性)
testValueFourDate:
columns[columnsNum].children[3].text === '-'
? ''
: columns[columnsNum].children[3].text, // 核查读数4日期(稳定性)
testValueThreeDate:
columns[columnsNum].children[2].text === '-'
? ''
: columns[columnsNum].children[2].text, // 核查读数3日期(稳定性)
testValueTwoDate:
columns[columnsNum].children[1].text === '-'
? ''
: columns[columnsNum].children[1].text, // 核查读数2日期(稳定性)
testValueOneDate:
columns[columnsNum].children[0].text === '-'
? ''
: columns[columnsNum].children[0].text, // 核查读数1日期(稳定性)
}
},
)
return list
}
/**
* 处理稳定性表格数据
* @param value 所有查询到的稳定性历史数据
* @param item 要处理的行数据
* @param stabilityColumns 稳定性表头
* @param num 控制表头日期从第几个开始填 ---查询历史日期从最后一个填,核查数据需要从倒数第二个填,因为最后一个要是本次核查日期
* @param columnsNum 示值的索引
* @param 参与比较的属性
* @returns itemData 处理完的行数据 columnsData 表头
*/
export function solveHistoryIndicationTableData(
value: any,
item: any,
stabilityColumns: any,
num = 4,
columnsNum = 5,
belongStandardEquipment = '',
) {
let list = []
stabilityColumns = JSON.parse(JSON.stringify(stabilityColumns))
// 示波器、信号发生器
// 核查点+单位
if (belongStandardEquipment === '13' || belongStandardEquipment === '10' || belongStandardEquipment === '1' || belongStandardEquipment === '3' || belongStandardEquipment === '4' || belongStandardEquipment === '5') {
// 先找出此行数据的所有日期
list = value.filter(
(i: any) =>
i.params === item.params
&& i.checkPoint === item.checkPoint
&& i.unit === item.unit,
)
}
else if (belongStandardEquipment === '15') {
// 先找出此行数据的所有日期
list = value.filter((i: any) => i.frequency === item.frequency && i.frequencyUnit === item.frequencyUnit)
}
else if (belongStandardEquipment === '17') { // S参数
// 先找出此行数据的所有日期
list = value.filter((i: any) => {
if (i.params === '失配测量') {
return i.typeValue === item.typeValue && i.frequency === item.frequency && i.frequencyUnit === item.frequencyUnit
}
else if (i.params === '衰减测量') {
return i.typeValue === item.typeValue && i.frequency === item.frequency && i.frequencyUnit === item.frequencyUnit && i.amplitude === item.amplitude && i.amplitudeUnit === item.amplitudeUnit
}
else if (i.params === '相移测量') {
return i.typeValue === item.typeValue && i.phase === item.phase && i.phaseUnit === item.phaseUnit && i.amplitude === item.amplitude && i.amplitudeUnit === item.amplitudeUnit
}
})
}
else if (belongStandardEquipment === '7') { // 精密漏点仪
// 先找出此行数据的所有日期
list = value.filter((i: any) => {
return i.equipmentName === item.equipmentName && i.typeValue === item.typeValue && i.relativeDimension === item.relativeDimension && i.checkPoint === item.checkPoint
})
}
else if (belongStandardEquipment === '14') { // 铯原子
// 先找出此行数据的所有日期
list = value.filter((i: any) => {
if (i.params === '铯原子频标核查') {
return i.checkMethod === item.checkMethod && i.checkPoint === item.checkPoint
}
else if (i.params === '函数信号发生器核查') {
return i.checkPoint === item.checkPoint && i.electricalLevel === item.electricalLevel && i.electricalLevelUnit === item.electricalLevelUnit
}
else if (i.params === '信号源核查') {
return i.checkPoint === item.checkPoint && i.amplitude === item.amplitude && i.amplitudeUnit === item.amplitudeUnit
}
})
}
else if (belongStandardEquipment === '16') { // 低频信号源
// 先找出此行数据的所有日期
list = value.filter((i: any) => {
if (i.params === '频率') {
return i.nominalValue === item.nominalValue && i.unit === item.unit
}
else if (i.params === '交流电压') {
return i.nominalValue === item.nominalValue && i.unit === item.unit && i.frequency === item.frequency && i.frequencyUnit === item.frequencyUnit
}
else if (i.params === '直流电压') {
return i.nominalValue === item.nominalValue && i.unit === item.unit
}
else if (i.params === '平坦度') {
return i.nominalValue === item.nominalValue && i.unit === item.unit && i.amplitude === item.amplitude && i.amplitudeUnit === item.amplitudeUnit
}
else if (i.params === '失真') {
return i.frequency === item.frequency && i.frequencyUnit === item.frequencyUnit && i.nominalValue === item.nominalValue && i.unit === item.unit
}
})
}
else if (belongStandardEquipment === '18') { // 失真度
// 先找出此行数据的所有日期
list = value.filter((i: any) => {
return i.frequency === item.frequency && i.frequencyUnit === item.frequencyUnit && i.nominalValue === item.nominalValue
})
}
else if (belongStandardEquipment === '8') { // E2等砝码
// 先找出此行数据的所有日期---核查点
list = value.filter(
(i: any) => i.checkPoint === item.checkPoint,
)
console.log('E2等砝码List', list)
}
else if (belongStandardEquipment === '12' || belongStandardEquipment === '11') { // 短稳,微波衰减
// 先找出此行数据的所有日期---核查点
list = value.filter(
(i: any) => i.params === item.params,
)
}
else {
// 先找出此行数据的所有日期---核查点
list = value.filter(
(i: any) => i.params === item.params && i.checkPoint === item.checkPoint,
)
}
if (list.length) {
// 按照时间倒序排序
list.sort((i: { testValueDate: string }, j: { testValueDate: string }) => {
const time1 = new Date(j.testValueDate).getTime()
const time2 = new Date(i.testValueDate).getTime()
return time1 - time2
})
// 根据日期去重
// list = uniqueMultiArray(list, 'testValueDate')
list.forEach(
(
e: { testValueDate: string; testValue: string; id: string },
index: number,
) => {
stabilityColumns[columnsNum].children![num - index].text = e.testValueDate // 填表头
stabilityColumns[columnsNum].children![num - index].checkDateDetailId = e.id // id用来查对应日期的详情
item[stabilityColumns[columnsNum].children![num - index].value] = e.testValue // 填表格数据
},
)
}
return {
itemData: item,
columnsData: stabilityColumns,
}
}
/**
*
* @param list 稳定性表格
* @param length fetchHistory查询稳定性的表头有几个日期
* @returns
*/
export function solveListStability(list: any) {
// 这里处理问题:过滤掉历史日期查询不到的数据,达到历史日期查询什么就展示什么的问题
// 存在接口查到第二列数据,但是历史日期接口缺没有第二列
const tempList = list.map((item: any) => {
return {
...item,
// 清除表中数据
testValueOne: '',
testValueTwo: '',
testValueThree: '',
testValueFour: '',
testValueFive: '',
testValueSix: '',
averageValueOne: '',
averageValueTwo: '',
averageValueThree: '',
averageValueFour: '',
averageValueFive: '',
averageValueSix: '',
}
})
return tempList
}