tframe-enum

A enum set for smpoo tframe


Keywords
smpoo, tframe
License
ISC
Install
npm install tframe-enum@8.0.12

Documentation

WHY

  • 我可以在程序中定义一个 JSON 对象
  • 也可以在程序保存一份 JSON 文件
  • 也可以在数据库中预留一张用于键值对的表
  • 甚至于 MYSQL 还支持了 enum 类型的字段
但是对于 `tFrame` 这样前后端一致的框架,以上方案都不是最优选择。
  • 任何一端重新维护了 JSON 定义以后,需要两端同步更新,否则不能保证定义一致性;
  • 难以基于版本管理,使历史版本丢失引用;
  • 文件或 DB 均与具体的项目或者历史版本相关,在迁移或新版中,只能通过记忆在其中拷贝或者摘录,不便于复用。

注意

	// 建议: 前端使用时,在使用本枚举之前,采取以下措施
	if (Object.freeze)
	Object.freeze(DaysEnum);
	避免JSON序列化反序列化时发生问题

biz 业务相关类型

	// 公共信息
	commInfo: {
		// 性别
		gender: {
			unkown: '未注明',
			male: '男',
			female: '女'
		}
	}

CRUD 相关类型

  // 编辑或查看状态标志
  act: {
    // 新增状态
    add: 'insert',
    // 修改状态
    edit: 'update',
    // 查看状态
    read: 'select',
    // 删除状态
    del: 'del'
  }

db 数据库及数据模型相关类型

  // 字段索引类型
  indexType: {
    none: '',			// 无索引(默认)
    unique: 'UNIQUE',			// 唯一索引
    normal: 'NORMAL'			// 可重复索引
  },
  // 数据库表重建类型
  rebuildType: {

    force: 1,		// 强制重建,如果表已存在,则删除原表后创建

    depend: 2,		// 视情况而定,如果表不存在,则创建

    disable: 3,		// 停用(重命名为_disable)

    creatAfterBackup: 4		// 备份后新建
  },
  // ORMS实例所基于的数据来源,启动时根据该值决定是否创建对应的物理表
  dataFrom: {
    // 基于本表查询(物理表)
    table: 0,
    // 基于视图
    view: 1,
    // 基于已存在的表(启动时不会创建物理表,而是共用指定的表)
    existed: 2
  },
  // 新增操作成功后,将最新的SELECT集合响应到前端的范围
  afterNew: {
    //   按照一览视图的默认范围,全部返回(适用于字典主数据页面)
    relist: 0,
    //   仅返回本次新增的记录(适用于单据页面,新增保存后,会跳转到详情页,因此无需返回全部数据)
    curr: 1
  }
  // tFrame对各DB所支持的数据类型标度设定的默认值
  defaultScale: {
    mysql: {
      tinyint: '4',
      smallint: '6',
      mediumint: '9',
      int: '11',
      bigint: '20',
      bit: '1',
      real: '28,8',
      double: '28,8',
      float: '28,8',
      decimal: '28,8',
      numeric: '28,8',
      char: '10',
      varchar: '20',
      date: '',
      time: '',
      year: '4',
      timestamp: '',
      datetime: '',
      tinyblob: '',
      blob: '',
      mediumblob: '',
      longblob: '',
      tinytext: '',
      text: '',
      mediumtext: '',
      longtext: '',
      enum: '',
      set: '',
      binary: '50',
      varbinary: '50',
      point: '',
      linestring: '',
      polygon: '',
      geometry: '',
      multipoint: '',
      multilinestring: '',
      multipolygon: '',
      geometrycollection: '',
      json: ''
    }
  }

event 事件相关

	  // 服务初始化成功的事件
	  initOk: 'initOk',
	  // 服务初始化失败的事件
	  initErr: 'initErr',
	  // 服务初始化过程中请求控制台回显的事件
	  initMsg: 'initMsg',
	  // 数据库的 CRUD 执行成功的事件,包括但不限于 SQL 语句(如 mongoDB之类的无需SQL语句的情形,也适合该事件)
	  sqlOk: 'sqlOk',
	  // 数据库的 CRUD 执行失败的事件,包括但不限于 SQL 语句(如 mongoDB之类的无需SQL语句的情形,也适合该事件)
	  sqlErr: 'sqlErr',
	  // 正常登录的事件
	  signInOk: 'signInOk',
	  // 登录失败的事件
	  signInErr: 'signInErr',
	  // 发生在登录名错误的登录事件
	  signInCodeWrong: 'signInCodeWrong',
	  // 发生在密码错误的登录事件
	  signInPwdWrong: 'signInPwdWrong',
	  // 发生在使用空密码的登录事情
	  signInPwdNull: 'signInPwdNull',
	  // 发生在登录被拒绝的登录事件
	  signInRefuse: 'signInRefuse',
	  // 注销登录的事件
	  signOut: 'signOut',
	  // 请求入站
	  reqIn: 'reqIn',
	  // 响应出站
	  resOut: 'resOut',
	  // 网络中断
	  netErr: 'netErr'

log 日志相关类型

  // 日志简码索引字母表
  indexCode: {
    // 未归类的日志
    Z: 0,
    // 代码运行时日志
    A: 1,
    // DB过程的日志
    B: 2,
    // 用户操作的日志
    C: 3,
    // 服务端运行的日志
    D: 4,
    // 登录的日志
    E: 5,
    // 传输的日志
    F: 6,
    // 安全风险及威胁的日志
    G: 7
  },
  /* 日志简码对照
	  简码规则:字母+3位数字
	  字母:日志类型在简码字母表中的索引
	  位1:日志级别
	  位2~位3:简码流水
  */
  detailCode: {
    Z000: '未归类的信息',
    Z100: '未归类的警告',
    Z200: '未归类的异常',
    A000: '通用的代码运行时信息',
    A100: '通用的代码运行时警告',
    A200: '通用的代码运行时异常',
    B000: '通用的DB过程记录',
    B100: '通用的DB过程警告',
    B300: '通用的DB过程异常',
    C000: '通用的用户操作记录',
    C100: '通用的用户操作警告',
    C200: '通用的用户操作异常',
    D000: '通用的服务端记录',
    D001: '服务端启动成功',
    D100: '通用的服务端警告',
    D101: '服务端被关闭',
    D200: '通用的服务端异常',
    D201: '服务端启动失败',
    E000: '正常登录',
    E001: '正常退出',
    E201: '登录过程出现运行时异常',
    E202: '注销过程出现运行时异常',
    F000: '通用的传输记录',
    F100: '通用的传输警告',
    F300: '通用的传输异常',
    G000: '通用的安全风险审核成功的记录',
    G100: '通用的安全风险审核警告',
    G200: '通用的安全风险审核异常',
    G201: '非系统内的账号的尝试登录',
    G202: '使用错误的密码尝试登录',
    G203: '封停账号尝试登录'
  },
  // 模式匹配的类别代码
  actTypeCode: {
		// 未明确
    unknown: 'unknown',
		// 代码级
    code: 'code',
		// DB级
    db: 'db',
		// 用户操作
    userOperat: 'userOperat',
		// 服务级
    svr: 'svr',
		// 登录及鉴权
    sign: 'sign',
		// 网络传输
    trans: 'trans',
		// 安全类型
    security: 'security'
  },
  // 模式匹配的级别代码
  actLevelCode: {
    unknown: 'unknown',
    info: 'info',
    warning: 'warning',
    error: 'error'
  },
  // 日志类型
  logType: {
    unknown: '未知',
    code: '代码日志',
    db: '数据日志',
    userOperat: '用户操作日志',
    svr: '服务端运行日志',
    sign: '登录及鉴权日志',
    trans: '传输日志',
    security: '安全日志'
  },
  // 日志级别
  logLevel: {
    unknown: '未知',
    info: '信息',
    warning: '告警',
    error: '异常'
  }

sys 系统相关类型

  // 时间日期格式化字符串(统一各个子模块的格式)
  dateFormatStr: {
		// 用于时间日期表示的格式化字符串
    strDateTime: 'YYYY-MM-D HH:mm:ss',
		// 用于时间日期唯一符的格式化字符串
    strDateTime_u: 'YYYY_MM_D_HH_mm_ss',
		// 用于单独表示日期的格式化字符串
    strDate: 'YYYY-MM-D',
		// 用于单独表示时间的格式化字符串
    strTime: 'HH:mm:ss'
  },
  // 列举字符构成情况的枚举
  aboutStr: {
    // 含特殊字符
    special: -1,
    // 纯英文
    enOnly: 0,
    // 纯汉字
    cnOnly: 1,
    // 纯数字
    numOnly: 2,
    // 仅英文或汉字
    enOrcn: 3,
    // 仅英文或数字
    enOrNum: 4,
    // 仅汉字或数字
    cnOrNum: 5,
    // 英文汉字及数字
    enCnNum: 6
  },
  // 判断 JS 对象类型
  aboutObject: {
    // 包含键值对的对象
    Obj: "object",
    // 字符串类型
    Str: "string",
    // 数组类型
    Arr: "array",
    // 数字类型
    Num: "number",
    // 日期类型
    Date: "date",
    // 布尔类型
    Bool: "boolean"
  },
  // 节点审批类型
  nodeType: {
    any: "任审",
    only: "仅审",
    all: "会审"
  },
  // 系统权限种子
  seed: {
    // CRUD功能的权限种子
    crud: {
      read: "查看",
      add: "新增",
      edit: "修改",
      del: "删除",
      copy: "复制"
    },
    // 扩展功能权限种子
    extend: {
      import: "导入",
      export: "导出",
      print: "打印",
      help: "帮助文档",
      issue: "提交需求"
    }
  }

版本变更记录