import { ElMessage } from 'element-plus' // import type { TableColumn } from '@/components/NormalTable/table_interface' /** * 检查列表 * @param list 要检查的表格数据(被依赖项如果满足某个条件就去检查依赖项,否则不检查依赖项) * @param columns // 表头信息 * @param tableTitle // 表格名称 * @param depend // 依赖项 * @param depended // 被依赖项 * @param dependedValue // 被依赖项条件 * @param requireLength // 要检查的表格数据长度是否大于0 */ export default function useCheckList(list: any, columns: any, tableTitle = '', depend?: string, depended?: string, dependedValue?: number | string, requireLength = false): boolean { for (const prop of columns) { for (let index = 0; index < list.length; index++) { const item = list[index] if (depend && depended && item[depended] === dependedValue && !(`${item[prop.value]}`)) { // 被依赖项满足条件时需要检查 ElMessage.warning(`请先完善 ${tableTitle} 第${index + 1}行中 ${prop.text} 字段`) return false } else { // 检查必填 if (prop.required && (!(`${item[prop.value]}`) || `${item[prop.value]}` === 'null' || `${item[prop.value]}` === 'undefined' || item[prop.value] == undefined)) { if (`${prop.belongStandardEquipment}` === '15') { // 小功率 ElMessage.warning(`${tableTitle} 第${index + 1}行中 ${prop.message} ${prop.text} 字段不能为空`) } else { ElMessage.warning(`请先完善 ${tableTitle} 第${index + 1}行中 ${prop.text} 字段`) } return false } } // 验证正则 if (prop.reg && typeof prop.reg === 'function') { if (prop.value === 'resolution') { // 分辨力特殊处理 if (!prop.reg(item[prop.value])) { ElMessage.warning(`${tableTitle} 第${index + 1}行中 ${prop.text} 不能大于1`) return false } } else { if (!prop.reg(item[prop.value])) { if (`${prop.belongStandardEquipment}` === '15') { // 小功率 ElMessage.warning(`${tableTitle} 第${index + 1}行中 ${prop.message} ${prop.text} 字段不能为0`) } else if (`${prop.belongStandardEquipment}` === '17') { // S参数 ElMessage.warning(`${tableTitle} 第${index + 1}行中 ${prop.text} 仅允许输入数字、字母、特殊字符`) } else { ElMessage.warning(`${tableTitle} 第${index + 1}行中 ${prop.text} 字段输入不合法`) } return false } } } if (prop.children && prop.children.length) { if (!useCheckList(list, prop.children, tableTitle, depend, depended, dependedValue)) { return false } } } } if (requireLength && !list.length) { ElMessage.warning(`${tableTitle}表格数据不能为空`) return false } return true }