%%---------------------------------------------------- %% 数据配置文件相关数据结构 %% @author yeahoo2000@gmail.com %% @end %%---------------------------------------------------- -define(LANGUAGE, en). %% 当前语言 -define(LANGUAGE_ALL, ["en","cn", "qq", "zh_tw", "jp"]). %% 所有语言 -define(SRV_INC_PATH, "../../server/inc/"). %% 服务端inc目录 -define(SRV_PATH, "../../server_core_data/data/"). %% 服务端目录 %% -define(SRV_PATH, "./out/"). %% 服务端目录 -define(CLI_PATH, "../../client/src/config/"). %% 客户端目录 -define(CLI_H5_PATH, "../../client_h5/src/config/"). %% 客户端目录 -define(CLI_JSON_PATH, "../../client_h5/src/config/"). %% 客户端目录 -define(PHP_PATH, "./out/"). %% PHP配置文件目录 -define(DEF_PATH, "./json_data/"). %% 默认目录 -define(DEF_DATA, "./data/"). %% 默认数据目录 -define(DEF_LUA, "./lua_data/"). %% 默认目录 %% -define(DEF_DATA, "./template/"). %% 默认数据目录 -define(PROC_NUM, 3). %% 进程数 -define(LANG_COLS, [ #f_column{type = term, name = lang_white, desc = "语言白名单", mod = lang, comment = lists:concat(["空表示所有 格式:cn,jp\n所有项:", string:join(?LANGUAGE_ALL, ",")]), val = "[]"} ,#f_column{type = term, name = lang_black, desc = "语言黑名单", mod = lang, comment = lists:concat(["空表示所有 格式:cn,jp\n所有项:", string:join(?LANGUAGE_ALL, ",")]), val = "[]"} ]). %% 指针加一 -define(inc_row, put(row_idx, get(row_idx) + 1)). -define(inc_col, put(col_idx, get(col_idx) + 1)). -define(inc_names, put(names_idx, get(names_idx) + 1)). -define(inc_sheets, put(sheets_idx, get(sheets_idx) + 1)). %% 重置指针 -define(reset_row, put(row_idx, 1), put(rows, [])). -define(reset_col, put(col_idx, 1), put(cells, [])). -define(reset_names, put(names_idx, 1), put(names, []), put(valid, []), put(names_def, [])). -define(reset_sheets, put(sheets_idx, 1), put(sheets, [])). %% 配置说明 -record(data_cfg, { %% 配置名 name :: atom() %% 描述 ,desc = "" :: string() %% 生成的对应record ,record :: atom() %% 模板需要垂直方向需要拆分的列数 ,splitv = 1 :: pos_integer() %% 头部占用行数 ,head_rows = 1 :: pos_integer() %% 数据文件需要引入的头文件 ,inc = [] :: [string()] %% 数据源文件 ,source = "" :: string() %% 目标文件 ,target = "" :: string() %% LuaName ,lua_name = "" :: string() %% JsName ,js_name = "" :: string() %% 语言版本检查 ,lang = false :: boolean() %% 同时生成校验文件同来校验其它文件 ,valid_file = false :: boolean() %% 数据工作表描述 ,sheet = [] :: list() %% 数据列描述 ,column = [] :: list() %% 服务端回调 ,callback = [] :: list() ,callback_hrl = [] :: list() %% 客户端Lua回调函数 ,callback_cli = [] :: list() %% 客户端JS回调函数 ,callback_js = [] :: list() %% 客户端Json回调函数 ,callback_json = [] :: list() %% PHP配置生成回调 ,callback_php = [] :: list() %% 追加数据表 ,add_data_xml = [] :: list() %% 数据连接合并处理{Name新工作区名称, Name1工作区名称, Name2:查找工作区名称, Keys::合并连接键} ,merge_data = [] :: list() } ). %% 列定义 -record(f_column, { %% 列类型 type = int :: int | float | str | bstr | nstr | term | list | tuple | single | rec | atom | kv | const | func %% 特殊的列类型回调处理函数 ,type_func %% 列名称 ,name :: atom() %% record字段名 默认为name ,rec_name :: atom() %% 取第几列内容 ,col_pos = -1 :: pos_integer() %% 是否主键 唯一值 ,primary = false :: boolean() %% 列表校验方式 ,valid_list = [] :: false | list() %% 是否需要外增加[] ,add_list_sign = true :: boolean() %% 列显示宽度 ,width = 0 :: non_neg_integer() %% 最小值长度 ,min = 0 :: integer() %% 最大值长度 ,max = 9999999999 :: integer() %% 扩展数据校验方式 ,ext_valid :: any() %% 说明 ,desc = "" :: string() %% 子项目 ,fields = [] :: list() %% 模式 ,mod = server :: all | desc | server | client | php | lang %% 子项拆分符号 ,spilt_str = "," :: string() %% 行拆分符号 ,spilt_line = "$$$" :: string() %% 记录名 ,rec :: atom() %% 映射类型 ,kv_type :: undefined | atom() | {m, f, a} %% kv放在独立工作区 ,kv_sheet = false :: false | true %% 原值 未作任何处理 ,cell_val :: term() %% 值 服务端 ,val :: term() %% 值 客户端 ,val_cli :: term() %% 备注 ,comment = "" :: string() %% 默认值 (客户端使用) ,def_cli_val :: term() %% 是否允许空值 ,is_null = true :: false | true %% 是否构造客户端kv值 ,is_cli_kv = true :: false | true %% 测试 false:不指印 true:指印所有行 pos_integer():指定行 {MinRow, MaxRow} ,debug = false :: false | true | pos_integer() | {pos_integer(), pos_integer()} %% 转换处理(time) ,convert :: atom() %% 字符替换处理 ,replace = [] :: list() } ).