Newer
Older
xc-business-system / src / commonMethods / useCheckList.ts
dutingting on 16 Sep 2023 1 KB 溯源结果确认详情
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 // 被依赖项条件
 */
export function useCheckList(list: any, columns: any, tableTitle = '', depend?: string, depended?: string, dependedValue?: number) {
  for (let index = 0; index < list.length; index++) {
    const item = list[index]
    for (const prop of columns) {
      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]}`)) {
          ElMessage.warning(`请先完善${tableTitle}第${index + 1}行中${prop.text}`)
          return false
        }
      }

      // 验证正则
      if (prop.reg && typeof prop.reg === 'function') {
        if (!prop.reg(item[prop.value])) {
          ElMessage.warning(`${tableTitle}第${index + 1}行中${prop.text}输入不合法`)
          return false
        }
      }
    }
  }
  return true
}