zs
2025-04-29 716eeb4b87efbdc5b149410bbea4c1f35ac116ac
HIAWms/web/src/libs/Create/Create.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
/**
 * åˆ›å»ºä¸€ä¸ªå¯¹è±¡
 */
export class Create<T> {
  constructor(args: T) {
    this.init(args)
  }
  [key: string]: any
  /**
   * åˆå§‹åŒ–对象,要求结构[[key, value]] æˆ– { key: value }
   *
   * new Create([1,2]) or new Create({ 1: 2 })
   * @param args
   */
  private init(args: T) {
    if (Array.isArray(args)) {
      args.forEach(([key, value = '']) => {
        this[key] = value
      })
    } else if (args instanceof Object) {
      Object.entries(args).forEach(([key, value = '']) => {
        this[key] = value
      })
    }
  }
  /**
   * è®¾ç½®å€¼
   * @param key
   * @param value
   * @returns void
   */
  set(key: string, value: any) {
    return (this[key] = value)
  }
  /**
   * èŽ·å–å€¼
   * @param key
   * @returns any
   */
  get(key: string) {
    return this[key]
  }
  /**
   * åˆ é™¤å€¼
   * @param key
   */
  remove(key: string) {
    delete this[key]
  }
  /**
   * æ·»åР值
   * @param key
   * @param value
   * @returns
   */
  insert(key: string, value: any) {
    return (this[key] = value)
  }
  /**
   * æ›´æ–°æ•°æ®
   * @param o
   * @returns
   */
  update(o: T) {
    this.init(o)
  }
  /**
   * é‡ç½®å¯¹è±¡
   */
  reset() {
    Object.entries(this).forEach(([key, value]: string[]) => {
      if (typeof this[key] !== 'function') {
        this.remove(key)
      }
    })
  }
}