zhaowei
2025-07-02 d3441881742c1397cd02f68c4b0de565456f97b1
src/utils/util.js
@@ -367,6 +367,32 @@
}
/**
 * 重复值验证工具方法
 *
 * 使用示例:
 * { validator: (rule, value, callback) => validateDuplicateValue('sys_fill_rule', 'rule_code', value, this.model.id, callback) }
 *
 * @param tableName 被验证的表名
 * @param fieldName 被验证的字段名
 * @param fieldVal 被验证的值
 * @param dataId 数据ID,可空
 * @param delFlag 删除标记
 * @param callback
 */
export function validateDuplicateValueInDelFlag(tableName, fieldName, fieldVal, dataId, delFlag, callback) {
  if (fieldVal) {
    let params = { tableName, fieldName, fieldVal, dataId, delFlag }
    api.duplicateCheck(params).then(res => {
      res['success'] ? callback() : callback(res['message'])
    }).catch(err => {
      callback(err.message || err)
    })
  } else {
    callback()
  }
}
/**
 * 根据编码校验规则code,校验传入的值是否合法
 *
 * 使用示例:
@@ -626,4 +652,64 @@
      },
    })
  }
}
}
/**
 * 休眠
 * @param ms 毫秒
 * @return {Promise<unknown>}
 */
export function sleep(ms) {
  return new Promise(function (resolve) {
    return setTimeout(resolve, ms);
  });
}
/**
 * 获取指定的 $refs 对象
 * 有时候可能会遇到组件未挂载到页面中的情况,导致无法获取 $refs 中的某个对象
 * 这个方法可以等待挂载完成之后再返回 $refs 的对象,避免报错
 *
 * 用法示例:let modalRef = getRefPromise(this, 'modal')
 * @param vm vue实例
 * @param name 要获取的ref名称
 * @param noComment $el 标签不能是注释
 **/
export function getRefPromise(vm, name, noComment = true) {
  return new Promise((resolve) => {
    (function next() {
      let ref = vm.$refs[name]
      if (ref && (noComment && ref.$el.tagName)) {
        resolve(ref)
      } else {
        setTimeout(() => {
          if (noComment) {
            vm.$forceUpdate()
          }
          next()
        }, 10)
      }
    })()
  })
}
/**
 * 导出文件xlsx的mime-type
 * xls:   application/vnd.ms-excel
 * @type {string}
 */
export const EXPORT_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
/**
 * 导出excel文件后缀
 * @type {string}
 */
export const EXPORT_FILE_SUFFIX = ".xlsx";
/**
 * 字符串是否为null或null字符串
 * @param str
 * @return {boolean}
 */
export function stringIsNull(str) {
  return str == null || str === 'null' || str === 'undefined';
}