【更新】v1.3版本:代码生成增强,配置每个字段的作用域

pull/22/head
小诺 2021-03-01 12:58:31 +08:00 committed by 小诺
parent 2856eeda99
commit b4ded9548c
35 changed files with 2108 additions and 235 deletions

View File

@ -11,7 +11,7 @@
Target Server Version : 110200 Target Server Version : 110200
File Encoding : 65001 File Encoding : 65001
Date: 09/01/2021 18:52:37 Date: 01/03/2021 12:47:20
*/ */
@ -83,6 +83,81 @@ COMMENT ON COLUMN "SYS_CODE_GENERATE"."UPDATE_USER" IS '更新人';
COMMENT ON COLUMN "SYS_CODE_GENERATE"."UPDATE_TIME" IS '更新时间'; COMMENT ON COLUMN "SYS_CODE_GENERATE"."UPDATE_TIME" IS '更新时间';
COMMENT ON TABLE "SYS_CODE_GENERATE" IS '代码生成基础配置'; COMMENT ON TABLE "SYS_CODE_GENERATE" IS '代码生成基础配置';
-- ----------------------------
-- Records of sys_code_generate
-- ----------------------------
INSERT INTO "SYS_CODE_GENERATE" VALUES ('1362310959781744641', 'yubaoshan、xuyuxiang、dongxiayu', 'CodeGenTest', 'Y', '2', 'xn_code_gen_test', 'com.cn.xiaonuo', 'codegentest', '测试', '1265476890672672808', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL);
COMMIT;
-- ----------------------------
-- Table structure for sys_code_generate_config
-- ----------------------------
CREATE TABLE "SYS_CODE_GENERATE_CONFIG" (
"ID" NUMBER(20) NOT NULL ,
"CODE_GEN_ID" NUMBER(20) ,
"COLUMN_NAME" VARCHAR2(255) ,
"JAVA_NAME" VARCHAR2(255) ,
"DATA_TYPE" VARCHAR2(255) ,
"COLUMN_COMMENT" NVARCHAR2(255) ,
"JAVA_TYPE" VARCHAR2(255) ,
"EFFECT_TYPE" VARCHAR2(255) ,
"DICT_TYPE_CODE" VARCHAR2(255) ,
"WHETHER_TABLE" VARCHAR2(255) ,
"WHETHER_ADD_UPDATE" VARCHAR2(255) ,
"WHETHER_RETRACT" VARCHAR2(255) ,
"WHETHER_REQUIRED" VARCHAR2(255) ,
"QUERY_WHETHER" VARCHAR2(255) ,
"QUERY_TYPE" VARCHAR2(255) ,
"COLUMN_KEY" VARCHAR2(255) ,
"COLUMN_KEY_NAME" VARCHAR2(255) ,
"WHETHER_COMMON" VARCHAR2(255) ,
"CREATE_TIME" DATE ,
"CREATE_USER" NUMBER(20) ,
"UPDATE_TIME" DATE ,
"UPDATE_USER" NUMBER(20)
)
;
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."ID" IS '主键';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."CODE_GEN_ID" IS '代码生成主表ID';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_NAME" IS '数据库字段名';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."JAVA_NAME" IS 'java类字段名';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."DATA_TYPE" IS '物理类型';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_COMMENT" IS '字段描述';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."JAVA_TYPE" IS 'java类型';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."EFFECT_TYPE" IS '作用类型(字典)';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."DICT_TYPE_CODE" IS '字典code';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_TABLE" IS '列表展示';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_ADD_UPDATE" IS '增改';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_RETRACT" IS '列表是否缩进(字典)';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_REQUIRED" IS '是否必填(字典)';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."QUERY_WHETHER" IS '是否是查询条件';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."QUERY_TYPE" IS '查询方式';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_KEY" IS '主键';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_KEY_NAME" IS '主外键名称';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_COMMON" IS '是否是通用字段';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."CREATE_TIME" IS '创建时间';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."CREATE_USER" IS '创建人';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."UPDATE_TIME" IS '修改时间';
COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."UPDATE_USER" IS '修改人';
COMMENT ON TABLE "SYS_CODE_GENERATE_CONFIG" IS '代码生成详细配置';
-- ----------------------------
-- Records of sys_code_generate_config
-- ----------------------------
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310959903379458', '1362310959781744641', 'id', 'id', 'bigint', '主键', 'Long', 'input', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', 'PRI', 'Id', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310959941128193', '1362310959781744641', 'name', 'name', 'varchar', '姓名', 'String', 'input', NULL, 'Y', 'Y', 'N', 'Y', 'Y', 'like', '', 'Name', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310959978876929', '1362310959781744641', 'age', 'age', 'int', '年龄', 'Integer', 'input', NULL, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Age', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960008237058', '1362310959781744641', 'interest', 'interest', 'varchar', '兴趣', 'String', 'checkbox', 'sex', 'Y', 'Y', 'N', 'Y', 'N', 'eq', '', 'Interest', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960033402881', '1362310959781744641', 'switchTest', 'switchtest', 'varchar', '开关', 'String', 'radio', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Switchtest', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960062763009', '1362310959781744641', 'birthday', 'birthday', 'date', '日期', 'Date', 'datepicker', NULL, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Birthday', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960096317442', '1362310959781744641', 'whether', 'whether', 'varchar', '是否已婚', 'String', 'select', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Whether', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960121483266', '1362310959781744641', 'explainTest', 'explaintest', 'varchar', '简介', 'String', 'textarea', NULL, 'N', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Explain', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960150843393', '1362310959781744641', 'create_time', 'createTime', 'datetime', '创建时间', 'Date', 'datepicker', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateTime', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960176009218', '1362310959781744641', 'create_user', 'createUser', 'bigint', '', 'Long', 'input', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateUser', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960201175041', '1362310959781744641', 'update_time', 'updateTime', 'datetime', '', 'Date', 'datepicker', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateTime', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960234729473', '1362310959781744641', 'update_user', 'updateUser', 'bigint', '', 'Long', 'input', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateUser', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
COMMIT;
-- ---------------------------- -- ----------------------------
-- Table structure for sys_config -- Table structure for sys_config
-- ---------------------------- -- ----------------------------
@ -253,6 +328,29 @@ INSERT INTO "SYS_DICT_DATA" VALUES ('1291390260160299009', '1291390159941599233'
INSERT INTO "SYS_DICT_DATA" VALUES ('1291390315437031426', '1291390159941599233', '', 'false', '100', '', '2', TO_DATE('2020-08-06 23:06:59', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_DATA" VALUES ('1291390315437031426', '1291390159941599233', '', 'false', '100', '', '2', TO_DATE('2020-08-06 23:06:59', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1342446007168466945', '1342445962104864770', '下载压缩包', '1', '100', '下载压缩包', '0', TO_DATE('2020-12-25 20:24:04', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_DATA" VALUES ('1342446007168466945', '1342445962104864770', '下载压缩包', '1', '100', '下载压缩包', '0', TO_DATE('2020-12-25 20:24:04', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1342446035433881601', '1342445962104864770', '生成到本项目', '2', '100', '生成到本项目', '0', TO_DATE('2020-12-25 20:24:11', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_DATA" VALUES ('1342446035433881601', '1342445962104864770', '生成到本项目', '2', '100', '生成到本项目', '0', TO_DATE('2020-12-25 20:24:11', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358094655567454210', '1358094419419750401', '输入框', 'input', '100', '输入框', '0', TO_DATE('2021-02-07 00:46:13', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 01:01:28', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358094740510498817', '1358094419419750401', '时间选择', 'datepicker', '100', '时间选择', '0', TO_DATE('2021-02-07 00:46:33', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 01:04:07', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358094793149014017', '1358094419419750401', '下拉框', 'select', '100', '下拉框', '0', TO_DATE('2021-02-07 00:46:46', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358095496009506817', '1358094419419750401', '单选框', 'radio', '100', '单选框', '0', TO_DATE('2021-02-07 00:49:33', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358095673084633090', '1358094419419750401', '开关', 'switch', '100', '开关', '2', TO_DATE('2021-02-07 00:50:15', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-11 19:07:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358458689433190402', '1358457818733428737', '等于', 'eq', '1', '等于', '0', TO_DATE('2021-02-08 00:52:45', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:35:36', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358458785168179202', '1358457818733428737', '模糊', 'like', '2', '模糊', '0', TO_DATE('2021-02-08 00:53:08', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:35:46', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358460475682406401', '1358094419419750401', '多选框', 'checkbox', '100', '多选框', '0', TO_DATE('2021-02-08 00:59:51', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358460819019743233', '1358094419419750401', '数字输入框', 'inputnumber', '100', '数字输入框', '0', TO_DATE('2021-02-08 01:01:13', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358470210267725826', '1358470065111252994', 'Long', 'Long', '100', 'Long', '0', TO_DATE('2021-02-08 01:38:32', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358470239351029762', '1358470065111252994', 'String', 'String', '100', 'String', '0', TO_DATE('2021-02-08 01:38:39', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358470265640927233', '1358470065111252994', 'Date', 'Date', '100', 'Date', '0', TO_DATE('2021-02-08 01:38:45', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358470300168437761', '1358470065111252994', 'Integer', 'Integer', '100', 'Integer', '0', TO_DATE('2021-02-08 01:38:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358470697377415169', '1358470065111252994', 'boolean', 'boolean', '100', 'boolean', '0', TO_DATE('2021-02-08 01:40:28', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 01:40:47', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358471133434036226', '1358470065111252994', 'int', 'int', '100', 'int', '0', TO_DATE('2021-02-08 01:42:12', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358471188291338241', '1358470065111252994', 'double', 'double', '100', 'double', '0', TO_DATE('2021-02-08 01:42:25', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1358756511688761346', '1358457818733428737', '大于', 'gt', '3', '大于', '0', TO_DATE('2021-02-08 20:36:12', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:24', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358756547159990274', '1358457818733428737', '小于', 'lt', '4', '大于', '0', TO_DATE('2021-02-08 20:36:20', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:29', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358756609990664193', '1358457818733428737', '不等于', 'ne', '7', '不等于', '0', TO_DATE('2021-02-08 20:36:35', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:46', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358756685030957057', '1358457818733428737', '大于等于', 'ge', '5', '大于等于', '0', TO_DATE('2021-02-08 20:36:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:35', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1358756800525312001', '1358457818733428737', '小于等于', 'le', '6', '小于等于', '0', TO_DATE('2021-02-08 20:37:20', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:40', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_DATA" VALUES ('1360529773814083586', '1358094419419750401', '文本域', 'textarea', '100', '文本域', '0', TO_DATE('2021-02-13 18:02:30', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_DATA" VALUES ('1360606105914732545', '1358457818733428737', '不为空', 'isNotNull', '8', '不为空', '0', TO_DATE('2021-02-13 23:05:49', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:50', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -304,6 +402,9 @@ INSERT INTO "SYS_DICT_TYPE" VALUES ('1278911800547147777', '通知公告类型',
INSERT INTO "SYS_DICT_TYPE" VALUES ('1278911952657776642', '通知公告状态', 'notice_status', '100', '通知公告状态', '0', TO_DATE('2020-07-03 12:42:25', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_TYPE" VALUES ('1278911952657776642', '通知公告状态', 'notice_status', '100', '通知公告状态', '0', TO_DATE('2020-07-03 12:42:25', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_TYPE" VALUES ('1291390159941599233', '是否boolean', 'yes_true_false', '100', '是否boolean', '2', TO_DATE('2020-08-06 23:06:22', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_TYPE" VALUES ('1291390159941599233', '是否boolean', 'yes_true_false', '100', '是否boolean', '2', TO_DATE('2020-08-06 23:06:22', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_TYPE" VALUES ('1342445962104864770', '代码生成方式', 'code_gen_create_type', '100', '代码生成方式', '0', TO_DATE('2020-12-25 20:23:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_TYPE" VALUES ('1342445962104864770', '代码生成方式', 'code_gen_create_type', '100', '代码生成方式', '0', TO_DATE('2020-12-25 20:23:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_TYPE" VALUES ('1358094419419750401', '代码生成作用类型', 'code_gen_effect_type', '100', '代码生成作用类型', '0', TO_DATE('2021-02-07 00:45:16', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 00:47:48', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808');
INSERT INTO "SYS_DICT_TYPE" VALUES ('1358457818733428737', '代码生成查询类型', 'code_gen_query_type', '100', '代码生成查询类型', '0', TO_DATE('2021-02-08 00:49:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
INSERT INTO "SYS_DICT_TYPE" VALUES ('1358470065111252994', '代码生成java类型', 'code_gen_java_type', '100', '代码生成java类型', '0', TO_DATE('2021-02-08 01:37:57', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -1270,6 +1371,35 @@ COMMENT ON COLUMN "SYS_VIS_LOG"."VIS_TIME" IS '访问时间';
COMMENT ON COLUMN "SYS_VIS_LOG"."ACCOUNT" IS '访问账号'; COMMENT ON COLUMN "SYS_VIS_LOG"."ACCOUNT" IS '访问账号';
COMMENT ON TABLE "SYS_VIS_LOG" IS '系统访问日志表'; COMMENT ON TABLE "SYS_VIS_LOG" IS '系统访问日志表';
-- ----------------------------
-- Table structure for xn_code_gen_test
-- ----------------------------
CREATE TABLE "XN_CODE_GEN_TEST" (
"ID" NUMBER(20) NOT NULL ,
"NAME" NVARCHAR2(255) ,
"AGE" NUMBER(11) ,
"INTEREST" NVARCHAR2(255) ,
"SWITCHTEST" NVARCHAR2(255) ,
"BIRTHDAY" DATE ,
"WHETHER" NVARCHAR2(255) ,
"EXPLAIN_TEST" NVARCHAR2(255) ,
"CREATE_TIME" DATE ,
"CREATE_USER" NUMBER(20) ,
"UPDATE_TIME" DATE ,
"UPDATE_USER" NUMBER(20)
)
;
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."ID" IS '主键';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."NAME" IS '姓名';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."AGE" IS '年龄';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."INTEREST" IS '兴趣';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."SWITCHTEST" IS '开关';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."BIRTHDAY" IS '日期';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."WHETHER" IS '是否已婚';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."EXPLAIN_TEST" IS '简介';
COMMENT ON COLUMN "XN_CODE_GEN_TEST"."CREATE_TIME" IS '创建时间';
COMMENT ON TABLE "XN_CODE_GEN_TEST" IS '测试';
-- ---------------------------- -- ----------------------------
-- Primary Key structure for table sys_app -- Primary Key structure for table sys_app
-- ---------------------------- -- ----------------------------
@ -1280,6 +1410,11 @@ ALTER TABLE "SYS_APP" ADD PRIMARY KEY ("ID");
-- ---------------------------- -- ----------------------------
ALTER TABLE "SYS_CODE_GENERATE" ADD PRIMARY KEY ("ID"); ALTER TABLE "SYS_CODE_GENERATE" ADD PRIMARY KEY ("ID");
-- ----------------------------
-- Primary Key structure for table sys_code_generate_config
-- ----------------------------
ALTER TABLE "SYS_CODE_GENERATE_CONFIG" ADD PRIMARY KEY ("ID");
-- ---------------------------- -- ----------------------------
-- Primary Key structure for table sys_config -- Primary Key structure for table sys_config
-- ---------------------------- -- ----------------------------
@ -1400,3 +1535,8 @@ ALTER TABLE "SYS_USER_ROLE" ADD PRIMARY KEY ("ID");
-- Primary Key structure for table sys_vis_log -- Primary Key structure for table sys_vis_log
-- ---------------------------- -- ----------------------------
ALTER TABLE "SYS_VIS_LOG" ADD PRIMARY KEY ("ID"); ALTER TABLE "SYS_VIS_LOG" ADD PRIMARY KEY ("ID");
-- ----------------------------
-- Primary Key structure for table xn_code_gen_test
-- ----------------------------
ALTER TABLE "XN_CODE_GEN_TEST" ADD PRIMARY KEY ("ID");

View File

@ -1,7 +1,7 @@
/* /*
Navicat MySQL Data Transfer Navicat MySQL Data Transfer
Source Server : ybs Source Server : yubaoshan
Source Server Version : 50710 Source Server Version : 50710
Source Host : localhost:3306 Source Host : localhost:3306
Source Database : xiaonuo-vue-pub Source Database : xiaonuo-vue-pub
@ -10,7 +10,7 @@ Target Server Type : MYSQL
Target Server Version : 50710 Target Server Version : 50710
File Encoding : 65001 File Encoding : 65001
Date: 2020-12-25 20:25:05 Date: 2021-03-01 12:24:12
*/ */
SET FOREIGN_KEY_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;
@ -63,6 +63,53 @@ CREATE TABLE `sys_code_generate` (
-- ---------------------------- -- ----------------------------
-- Records of sys_code_generate -- Records of sys_code_generate
-- ---------------------------- -- ----------------------------
INSERT INTO `sys_code_generate` VALUES ('1362310959781744641', 'yubaoshan、xuyuxiang、dongxiayu', 'CodeGenTest', 'Y', '2', 'xn_code_gen_test', 'com.cn.xiaonuo', 'codegentest', '测试', '1265476890672672808', '2021-02-18 16:00:18', null, null);
-- ----------------------------
-- Table structure for `sys_code_generate_config`
-- ----------------------------
DROP TABLE IF EXISTS `sys_code_generate_config`;
CREATE TABLE `sys_code_generate_config` (
`id` bigint(20) NOT NULL COMMENT '主键',
`code_gen_id` bigint(20) DEFAULT NULL COMMENT '代码生成主表ID',
`column_name` varchar(255) DEFAULT NULL COMMENT '数据库字段名',
`java_name` varchar(255) DEFAULT NULL COMMENT 'java类字段名',
`data_type` varchar(255) DEFAULT NULL COMMENT '物理类型',
`column_comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '字段描述',
`java_type` varchar(255) DEFAULT NULL COMMENT 'java类型',
`effect_type` varchar(255) DEFAULT NULL COMMENT '作用类型(字典)',
`dict_type_code` varchar(255) DEFAULT NULL COMMENT '字典code',
`whether_table` varchar(255) DEFAULT NULL COMMENT '列表展示',
`whether_add_update` varchar(255) DEFAULT NULL COMMENT '增改',
`whether_retract` varchar(255) DEFAULT NULL COMMENT '列表是否缩进(字典)',
`whether_required` varchar(255) DEFAULT NULL COMMENT '是否必填(字典)',
`query_whether` varchar(255) DEFAULT NULL COMMENT '是否是查询条件',
`query_type` varchar(255) DEFAULT NULL COMMENT '查询方式',
`column_key` varchar(255) DEFAULT NULL COMMENT '主键',
`column_key_name` varchar(255) DEFAULT NULL COMMENT '主外键名称',
`whether_common` varchar(255) DEFAULT NULL COMMENT '是否是通用字段',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_user` bigint(255) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='代码生成详细配置';
-- ----------------------------
-- Records of sys_code_generate_config
-- ----------------------------
INSERT INTO `sys_code_generate_config` VALUES ('1362310959903379458', '1362310959781744641', 'id', 'id', 'bigint', '主键', 'Long', 'input', null, 'N', 'N', 'N', 'N', 'N', 'eq', 'PRI', 'Id', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310959941128193', '1362310959781744641', 'name', 'name', 'varchar', '姓名', 'String', 'input', null, 'Y', 'Y', 'N', 'Y', 'Y', 'like', '', 'Name', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310959978876929', '1362310959781744641', 'age', 'age', 'int', '年龄', 'Integer', 'input', null, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Age', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960008237058', '1362310959781744641', 'interest', 'interest', 'varchar', '兴趣', 'String', 'checkbox', 'sex', 'Y', 'Y', 'N', 'Y', 'N', 'eq', '', 'Interest', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960033402881', '1362310959781744641', 'switchTest', 'switchtest', 'varchar', '开关', 'String', 'radio', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Switchtest', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960062763009', '1362310959781744641', 'birthday', 'birthday', 'date', '日期', 'Date', 'datepicker', null, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Birthday', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960096317442', '1362310959781744641', 'whether', 'whether', 'varchar', '是否已婚', 'String', 'select', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Whether', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960121483266', '1362310959781744641', 'explainTest', 'explaintest', 'varchar', '简介', 'String', 'textarea', null, 'N', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Explain', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960150843393', '1362310959781744641', 'create_time', 'createTime', 'datetime', '创建时间', 'Date', 'datepicker', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateTime', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960176009218', '1362310959781744641', 'create_user', 'createUser', 'bigint', '', 'Long', 'input', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateUser', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960201175041', '1362310959781744641', 'update_time', 'updateTime', 'datetime', '', 'Date', 'datepicker', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateTime', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
INSERT INTO `sys_code_generate_config` VALUES ('1362310960234729473', '1362310959781744641', 'update_user', 'updateUser', 'bigint', '', 'Long', 'input', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateUser', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808');
-- ---------------------------- -- ----------------------------
-- Table structure for `sys_config` -- Table structure for `sys_config`
@ -210,6 +257,29 @@ INSERT INTO `sys_dict_data` VALUES ('1291390260160299009', '1291390159941599233'
INSERT INTO `sys_dict_data` VALUES ('1291390315437031426', '1291390159941599233', '', 'false', '100', '', '2', '2020-08-06 23:06:59', '1265476890672672808', null, null); INSERT INTO `sys_dict_data` VALUES ('1291390315437031426', '1291390159941599233', '', 'false', '100', '', '2', '2020-08-06 23:06:59', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1342446007168466945', '1342445962104864770', '下载压缩包', '1', '100', '下载压缩包', '0', '2020-12-25 20:24:04', '1265476890672672808', null, null); INSERT INTO `sys_dict_data` VALUES ('1342446007168466945', '1342445962104864770', '下载压缩包', '1', '100', '下载压缩包', '0', '2020-12-25 20:24:04', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1342446035433881601', '1342445962104864770', '生成到本项目', '2', '100', '生成到本项目', '0', '2020-12-25 20:24:11', '1265476890672672808', null, null); INSERT INTO `sys_dict_data` VALUES ('1342446035433881601', '1342445962104864770', '生成到本项目', '2', '100', '生成到本项目', '0', '2020-12-25 20:24:11', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358094655567454210', '1358094419419750401', '输入框', 'input', '100', '输入框', '0', '2021-02-07 00:46:13', '1265476890672672808', '2021-02-08 01:01:28', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358094740510498817', '1358094419419750401', '时间选择', 'datepicker', '100', '时间选择', '0', '2021-02-07 00:46:33', '1265476890672672808', '2021-02-08 01:04:07', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358094793149014017', '1358094419419750401', '下拉框', 'select', '100', '下拉框', '0', '2021-02-07 00:46:46', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358095496009506817', '1358094419419750401', '单选框', 'radio', '100', '单选框', '0', '2021-02-07 00:49:33', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358095673084633090', '1358094419419750401', '开关', 'switch', '100', '开关', '2', '2021-02-07 00:50:15', '1265476890672672808', '2021-02-11 19:07:18', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358458689433190402', '1358457818733428737', '等于', 'eq', '1', '等于', '0', '2021-02-08 00:52:45', '1265476890672672808', '2021-02-13 23:35:36', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358458785168179202', '1358457818733428737', '模糊', 'like', '2', '模糊', '0', '2021-02-08 00:53:08', '1265476890672672808', '2021-02-13 23:35:46', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358460475682406401', '1358094419419750401', '多选框', 'checkbox', '100', '多选框', '0', '2021-02-08 00:59:51', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358460819019743233', '1358094419419750401', '数字输入框', 'inputnumber', '100', '数字输入框', '0', '2021-02-08 01:01:13', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358470210267725826', '1358470065111252994', 'Long', 'Long', '100', 'Long', '0', '2021-02-08 01:38:32', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358470239351029762', '1358470065111252994', 'String', 'String', '100', 'String', '0', '2021-02-08 01:38:39', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358470265640927233', '1358470065111252994', 'Date', 'Date', '100', 'Date', '0', '2021-02-08 01:38:45', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358470300168437761', '1358470065111252994', 'Integer', 'Integer', '100', 'Integer', '0', '2021-02-08 01:38:53', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358470697377415169', '1358470065111252994', 'boolean', 'boolean', '100', 'boolean', '0', '2021-02-08 01:40:28', '1265476890672672808', '2021-02-08 01:40:47', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358471133434036226', '1358470065111252994', 'int', 'int', '100', 'int', '0', '2021-02-08 01:42:12', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358471188291338241', '1358470065111252994', 'double', 'double', '100', 'double', '0', '2021-02-08 01:42:25', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1358756511688761346', '1358457818733428737', '大于', 'gt', '3', '大于', '0', '2021-02-08 20:36:12', '1265476890672672808', '2021-02-13 23:45:24', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358756547159990274', '1358457818733428737', '小于', 'lt', '4', '大于', '0', '2021-02-08 20:36:20', '1265476890672672808', '2021-02-13 23:45:29', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358756609990664193', '1358457818733428737', '不等于', 'ne', '7', '不等于', '0', '2021-02-08 20:36:35', '1265476890672672808', '2021-02-13 23:45:46', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358756685030957057', '1358457818733428737', '大于等于', 'ge', '5', '大于等于', '0', '2021-02-08 20:36:53', '1265476890672672808', '2021-02-13 23:45:35', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1358756800525312001', '1358457818733428737', '小于等于', 'le', '6', '小于等于', '0', '2021-02-08 20:37:20', '1265476890672672808', '2021-02-13 23:45:40', '1265476890672672808');
INSERT INTO `sys_dict_data` VALUES ('1360529773814083586', '1358094419419750401', '文本域', 'textarea', '100', '文本域', '0', '2021-02-13 18:02:30', '1265476890672672808', null, null);
INSERT INTO `sys_dict_data` VALUES ('1360606105914732545', '1358457818733428737', '不为空', 'isNotNull', '8', '不为空', '0', '2021-02-13 23:05:49', '1265476890672672808', '2021-02-13 23:45:50', '1265476890672672808');
-- ---------------------------- -- ----------------------------
-- Table structure for `sys_dict_type` -- Table structure for `sys_dict_type`
@ -250,6 +320,9 @@ INSERT INTO `sys_dict_type` VALUES ('1278911800547147777', '通知公告类型',
INSERT INTO `sys_dict_type` VALUES ('1278911952657776642', '通知公告状态', 'notice_status', '100', '通知公告状态', '0', '2020-07-03 12:42:25', '1265476890672672808', null, null); INSERT INTO `sys_dict_type` VALUES ('1278911952657776642', '通知公告状态', 'notice_status', '100', '通知公告状态', '0', '2020-07-03 12:42:25', '1265476890672672808', null, null);
INSERT INTO `sys_dict_type` VALUES ('1291390159941599233', '是否boolean', 'yes_true_false', '100', '是否boolean', '2', '2020-08-06 23:06:22', '1265476890672672808', null, null); INSERT INTO `sys_dict_type` VALUES ('1291390159941599233', '是否boolean', 'yes_true_false', '100', '是否boolean', '2', '2020-08-06 23:06:22', '1265476890672672808', null, null);
INSERT INTO `sys_dict_type` VALUES ('1342445962104864770', '代码生成方式', 'code_gen_create_type', '100', '代码生成方式', '0', '2020-12-25 20:23:53', '1265476890672672808', null, null); INSERT INTO `sys_dict_type` VALUES ('1342445962104864770', '代码生成方式', 'code_gen_create_type', '100', '代码生成方式', '0', '2020-12-25 20:23:53', '1265476890672672808', null, null);
INSERT INTO `sys_dict_type` VALUES ('1358094419419750401', '代码生成作用类型', 'code_gen_effect_type', '100', '代码生成作用类型', '0', '2021-02-07 00:45:16', '1265476890672672808', '2021-02-08 00:47:48', '1265476890672672808');
INSERT INTO `sys_dict_type` VALUES ('1358457818733428737', '代码生成查询类型', 'code_gen_query_type', '100', '代码生成查询类型', '0', '2021-02-08 00:49:18', '1265476890672672808', null, null);
INSERT INTO `sys_dict_type` VALUES ('1358470065111252994', '代码生成java类型', 'code_gen_java_type', '100', '代码生成java类型', '0', '2021-02-08 01:37:57', '1265476890672672808', null, null);
-- ---------------------------- -- ----------------------------
-- Table structure for `sys_emp` -- Table structure for `sys_emp`
@ -1028,3 +1101,23 @@ CREATE TABLE `sys_vis_log` (
-- ---------------------------- -- ----------------------------
-- Records of sys_vis_log -- Records of sys_vis_log
-- ---------------------------- -- ----------------------------
-- ----------------------------
-- Table structure for `xn_code_gen_test`
-- ----------------------------
DROP TABLE IF EXISTS `xn_code_gen_test`;
CREATE TABLE `xn_code_gen_test` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(255) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`interest` varchar(255) DEFAULT NULL COMMENT '兴趣',
`switchTest` varchar(255) DEFAULT NULL COMMENT '开关',
`birthday` date DEFAULT NULL COMMENT '日期',
`whether` varchar(255) DEFAULT NULL COMMENT '是否已婚',
`explain_test` varchar(255) DEFAULT NULL COMMENT '简介',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_user` bigint(20) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`update_user` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试';

View File

@ -0,0 +1,29 @@
import { axios } from '@/utils/request'
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
export function sysCodeGenerateConfigList (parameter) {
return axios({
url: '/sysCodeGenerateConfig/list',
method: 'get',
params: parameter
})
}
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
export function sysCodeGenerateConfigEdit (parameter) {
return axios({
url: '/sysCodeGenerateConfig/edit',
method: 'post',
data: parameter
})
}

View File

@ -3,7 +3,7 @@
<div class="links"> <div class="links">
</div> </div>
<div class="copyright"> <div class="copyright">
Copyright © 2020 <a target="_blank" href="https://www.xiaonuo.vip/">XiaoNuo</a> All rights reserved. xiaonuo-vue 1.2.0 Copyright © 2020 <a target="_blank" href="https://www.xiaonuo.vip/">XiaoNuo</a> All rights reserved. xiaonuo-vue 1.3
</div> </div>
</div> </div>
</template> </template>

View File

@ -22,7 +22,7 @@
<a href="_self">条款</a> <a href="_self">条款</a>
</div> </div>
<div class="copyright"> <div class="copyright">
Copyright © 2020 <a target="_blank" href="https://www.xiaonuo.vip/">XiaoNuo</a> All rights reserved. xiaonuo-vue 1.2.0 Copyright © 2020 <a target="_blank" href="https://www.xiaonuo.vip/">XiaoNuo</a> All rights reserved. xiaonuo-vue 1.3
</div> </div>
</div> </div>
</div> </div>

View File

@ -89,3 +89,13 @@ Vue.filter('dictData', function (code) {
} }
return tree return tree
}) })
/**
*
*
* @author yubaoshan
* @date 2021-2-8 01:13
*/
Vue.filter('dictDataAll', function () {
return Vue.ls.get(DICT_TYPE_TREE_DATA)
})

View File

@ -1,5 +1,6 @@
<template> <template>
<a-card :bordered="false"> <div>
<a-card :bordered="false" v-show="indexOpenShow" :bodyStyle="tstyle">
<a-spin :spinning="Loading"> <a-spin :spinning="Loading">
<div class="table-page-search-wrapper" v-if="hasPerm('codeGenerate:page')"> <div class="table-page-search-wrapper" v-if="hasPerm('codeGenerate:page')">
<a-form layout="inline"> <a-form layout="inline">
@ -16,9 +17,10 @@
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
<div class="table-operator" v-if="hasPerm('codeGenerate:add')" > </a-spin>
<a-button type="primary" v-if="hasPerm('codeGenerate:add')" icon="plus" @click="$refs.addForm.add()"></a-button> </a-card>
</div> <a-card :bordered="false" v-show="indexOpenShow">
<a-spin :spinning="Loading">
<s-table <s-table
ref="table" ref="table"
size="default" size="default"
@ -28,12 +30,24 @@
:rowKey="(record) => record.id" :rowKey="(record) => record.id"
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
> >
<div slot="operator" v-if="hasPerm('codeGenerate:add')" >
<a-button type="primary" v-if="hasPerm('codeGenerate:add')" icon="plus" @click="$refs.addForm.add()"></a-button>
</div>
<span slot="tableName" slot-scope="text"> <span slot="tableName" slot-scope="text">
<ellipsis :length="10" tooltip>{{ text }}</ellipsis> <ellipsis :length="10" tooltip>{{ text }}</ellipsis>
</span> </span>
<span slot="packageName" slot-scope="text"> <span slot="packageName" slot-scope="text">
<ellipsis :length="10" tooltip>{{ text }}</ellipsis> <ellipsis :length="10" tooltip>{{ text }}</ellipsis>
</span> </span>
<span slot="busName" slot-scope="text">
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
</span>
<span slot="className" slot-scope="text">
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
</span>
<span slot="tableComment" slot-scope="text">
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
</span>
<span slot="tablePrefix" slot-scope="text"> <span slot="tablePrefix" slot-scope="text">
<ellipsis :length="10" tooltip>{{ 'yes_or_no' | dictType(text) }}</ellipsis> <ellipsis :length="10" tooltip>{{ 'yes_or_no' | dictType(text) }}</ellipsis>
</span> </span>
@ -49,7 +63,9 @@
<a>开始生成</a> <a>开始生成</a>
</a-popconfirm> </a-popconfirm>
</span> </span>
<a-divider type="vertical" v-if="hasPerm('codeGenerate:edit') & hasPerm('codeGenerate:runLocal') || hasPerm('codeGenerate:runDown') "/> <a-divider type="vertical" v-if="hasPerm('codeGenerate:config') & hasPerm('codeGenerate:runLocal') || hasPerm('codeGenerate:runDown') "/>
<a v-if="hasPerm('codeGenerate:config')" @click="indexConfigOpen(record)"></a>
<a-divider type="vertical" v-if="hasPerm('codeGenerate:config') & hasPerm('codeGenerate:edit')"/>
<a v-if="hasPerm('codeGenerate:edit')" @click="$refs.editForm.edit(record)"></a> <a v-if="hasPerm('codeGenerate:edit')" @click="$refs.editForm.edit(record)"></a>
<a-divider type="vertical" v-if="hasPerm('codeGenerate:edit') & hasPerm('codeGenerate:delete')"/> <a-divider type="vertical" v-if="hasPerm('codeGenerate:edit') & hasPerm('codeGenerate:delete')"/>
<a-popconfirm v-if="hasPerm('codeGenerate:delete')" placement="topRight" title="确认删除?" @confirm="() => codeGenerateDelete(record)"> <a-popconfirm v-if="hasPerm('codeGenerate:delete')" placement="topRight" title="确认删除?" @confirm="() => codeGenerateDelete(record)">
@ -61,15 +77,19 @@
<edit-form ref="editForm" @ok="handleOk" v-if="hasPerm('codeGenerate:edit')"/> <edit-form ref="editForm" @ok="handleOk" v-if="hasPerm('codeGenerate:edit')"/>
</a-spin> </a-spin>
</a-card> </a-card>
<index-config ref="indexConfig" @ok="handleResetOpen" v-if="hasPerm('codeGenerate:config')"/>
</div>
</template> </template>
<script> <script>
import { STable, Ellipsis } from '@/components' import { STable, Ellipsis } from '@/components'
import { codeGeneratePage, codeGenerateDelete, codeGenerateRunDown, codeGenerateRunLocal } from '@/api/modular/gen/codeGenerateManage' import { codeGeneratePage, codeGenerateDelete, codeGenerateRunDown, codeGenerateRunLocal } from '@/api/modular/gen/codeGenerateManage'
import addForm from './addForm' import addForm from './addForm'
import editForm from './editForm' import editForm from './editForm'
import indexConfig from './indexConfig'
export default { export default {
components: { components: {
indexConfig,
STable, STable,
Ellipsis, Ellipsis,
addForm, addForm,
@ -93,15 +113,18 @@
}, },
{ {
title: '业务名', title: '业务名',
dataIndex: 'busName' dataIndex: 'busName',
scopedSlots: { customRender: 'busName' }
}, },
{ {
title: '类名', title: '类名',
dataIndex: 'className' dataIndex: 'className',
scopedSlots: { customRender: 'className' }
}, },
{ {
title: '功能名', title: '功能名',
dataIndex: 'tableComment' dataIndex: 'tableComment',
scopedSlots: { customRender: 'tableComment' }
}, },
{ {
title: '作者姓名', title: '作者姓名',
@ -118,6 +141,7 @@
scopedSlots: { customRender: 'generateType' } scopedSlots: { customRender: 'generateType' }
} }
], ],
tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
loadData: parameter => { loadData: parameter => {
return codeGeneratePage(Object.assign(parameter, this.queryParam)).then((res) => { return codeGeneratePage(Object.assign(parameter, this.queryParam)).then((res) => {
return res.data return res.data
@ -126,14 +150,15 @@
selectedRowKeys: [], selectedRowKeys: [],
selectedRows: [], selectedRows: [],
Loading: false, Loading: false,
jdbcDriverList: [] jdbcDriverList: [],
indexOpenShow: true
} }
}, },
created () { created () {
if (this.hasPerm('codeGenerate:edit') || this.hasPerm('codeGenerate:delete')) { if (this.hasPerm('codeGenerate:edit') || this.hasPerm('codeGenerate:delete')) {
this.columns.push({ this.columns.push({
title: '操作', title: '操作',
width: '200px', width: '230px',
dataIndex: 'action', dataIndex: 'action',
scopedSlots: { customRender: 'action' } scopedSlots: { customRender: 'action' }
}) })
@ -184,6 +209,9 @@
} }
}) })
}, },
/**
* 删除
*/
codeGenerateDelete (record) { codeGenerateDelete (record) {
this.Loading = true this.Loading = true
codeGenerateDelete([{ id: record.id }]).then((res) => { codeGenerateDelete([{ id: record.id }]).then((res) => {
@ -199,6 +227,23 @@
this.Loading = false this.Loading = false
}) })
}, },
/**
* 打开配置界面
*/
indexConfigOpen (record) {
this.indexOpenShow = false
this.$refs.indexConfig.open(record)
},
/**
* 详细配置界面返回
*/
handleResetOpen () {
this.indexOpenShow = true
this.$refs.table.refresh()
},
/**
* 其他界面返回
*/
handleOk () { handleOk () {
this.$refs.table.refresh() this.$refs.table.refresh()
}, },

View File

@ -0,0 +1,230 @@
<template>
<a-card :bordered="false" v-show="indexConfigShow">
<div class="table-operator">
<a-button class="but_item" type="dashed" @click="handleCancel" icon="rollback">返回</a-button>
<a-button type="primary" icon="plus" @click="handleSubmit"></a-button>
</div>
<a-table
ref="table"
size="middle"
:columns="columns"
:dataSource="loadData"
:pagination="false"
:alert="true"
:loading="tableLoading"
:rowKey="(record) => record.id"
>
<template slot="columnComment" slot-scope="text, record">
<a-input v-model="record.columnComment" />
</template>
<template slot="javaType" slot-scope="text, record">
<a-select style="width: 120px" v-model="record.javaType" :disabled="judgeColumns(record)">
<a-select-option v-for="(item,index) in javaTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</template>
<template slot="effectType" slot-scope="text, record">
<a-select style="width: 120px" v-model="record.effectType" :disabled="judgeColumns(record)">
<a-select-option v-for="(item,index) in effectTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</template>
<template slot="dictTypeCode" slot-scope="text, record">
<a-select
style="width: 120px"
v-model="record.dictTypeCode"
:disabled="record.effectType !== 'radio' &&
record.effectType !== 'select' && record.effectType !== 'checkbox'">
<a-select-option v-for="(item,index) in dictDataAll" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</template>
<template slot="whetherTable" slot-scope="text, record">
<a-checkbox v-model="record.whetherTable"/>
</template>
<template slot="whetherRetract" slot-scope="text, record">
<a-checkbox v-model="record.whetherRetract"/>
</template>
<template slot="whetherAddUpdate" slot-scope="text, record">
<a-checkbox v-model="record.whetherAddUpdate" :disabled="judgeColumns(record)"/>
</template>
<template slot="whetherRequired" slot-scope="text, record">
<a-checkbox v-model="record.whetherRequired" :disabled="judgeColumns(record)"/>
</template>
<template slot="queryWhether" slot-scope="text, record">
<a-switch v-model="record.queryWhether">
<a-icon slot="checkedChildren" type="check" />
<a-icon slot="unCheckedChildren" type="close" />
</a-switch>
</template>
<template slot="queryType" slot-scope="text, record">
<a-select style="width: 100px" v-model="record.queryType" :disabled="!record.queryWhether">
<a-select-option v-for="(item,index) in codeGenQueryTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</template>
</a-table>
</a-card>
</template>
<script>
import { sysCodeGenerateConfigList, sysCodeGenerateConfigEdit } from '@/api/modular/gen/sysCodeGenerateConfigManage'
export default {
data () {
return {
//
columns: [
{
title: 'java字段',
dataIndex: 'javaName'
},
{
title: '字段描述',
dataIndex: 'columnComment',
scopedSlots: { customRender: 'columnComment' }
},
{
title: '物理类型',
dataIndex: 'dataType'
},
{
title: 'java类型',
dataIndex: 'javaType',
scopedSlots: { customRender: 'javaType' }
},
{
title: '作用类型',
dataIndex: 'effectType',
scopedSlots: { customRender: 'effectType' }
},
{
title: '字典',
dataIndex: 'dictTypeCode',
scopedSlots: { customRender: 'dictTypeCode' }
},
{
title: '列表显示',
align: 'center',
dataIndex: 'whetherTable',
scopedSlots: { customRender: 'whetherTable' }
},
{
title: '列字段省略',
align: 'center',
dataIndex: 'whetherRetract',
scopedSlots: { customRender: 'whetherRetract' }
},
{
title: '增改',
align: 'center',
dataIndex: 'whetherAddUpdate',
scopedSlots: { customRender: 'whetherAddUpdate' }
},
{
title: '必填',
align: 'center',
dataIndex: 'whetherRequired',
scopedSlots: { customRender: 'whetherRequired' }
},
{
title: '是否是查询',
align: 'center',
dataIndex: 'queryWhether',
scopedSlots: { customRender: 'queryWhether' }
},
{
title: '查询方式',
dataIndex: 'queryType',
scopedSlots: { customRender: 'queryType' }
}
],
indexConfigShow: false,
tableLoading: false,
visible: false,
loadData: [],
javaTypeData: [],
effectTypeData: [],
dictDataAll: [],
codeGenQueryTypeData: [],
yesOrNoData: []
}
},
methods: {
/**
* 打开界面
*/
open (data) {
this.indexConfigShow = true
this.tableLoading = true
const dictOption = this.$options
this.javaTypeData = dictOption.filters['dictData']('code_gen_java_type')
this.effectTypeData = dictOption.filters['dictData']('code_gen_effect_type')
this.dictDataAll = dictOption.filters['dictDataAll']()
this.yesOrNoData = dictOption.filters['dictData']('yes_or_no')
this.codeGenQueryTypeData = dictOption.filters['dictData']('code_gen_query_type')
const params = {
codeGenId: data.id
}
sysCodeGenerateConfigList(params).then((res) => {
this.loadData = res.data
this.loadData.forEach(item => {
for (const key in item) {
if (item[key] === 'Y') {
item[key] = true
}
if (item[key] === 'N') {
item[key] = false
}
}
})
this.tableLoading = false
})
},
/**
* 提交表单
*/
handleSubmit () {
this.tableLoading = true
// ,
// eslint-disable-next-line prefer-const
let loadDatas = JSON.parse(JSON.stringify(this.loadData))
loadDatas.forEach(item => {
//
for (const key in item) {
if (item[key] === true) {
item[key] = 'Y'
}
if (item[key] === false) {
item[key] = 'N'
}
}
})
const param = {
sysCodeGenerateConfigParamList: loadDatas
}
sysCodeGenerateConfigEdit(param).then((res) => {
this.tableLoading = false
if (res.success) {
this.$message.success('编辑成功')
this.handleCancel()
} else {
this.$message.error('编辑失败:' + res.message)
}
})
},
/**
* 判断是否用于是否能选择或输入等
*/
judgeColumns (data) {
if (data.columnName.indexOf('create_user') > -1 ||
data.columnName.indexOf('create_time') > -1 ||
data.columnName.indexOf('update_user') > -1 ||
data.columnName.indexOf('update_time') > -1 ||
data.columnKey === 'PRI') {
return true
}
return false
},
handleCancel () {
this.$emit('ok')
this.loadData = []
this.indexConfigShow = false
}
}
}
</script>

View File

@ -19,7 +19,7 @@ public class Config {
/** /**
* vm * vm
*/ */
public static String templatePath = "template/"; public static String templatePath = "template" + FILE_SEP;
/** /**
* *
@ -44,12 +44,17 @@ public class Config {
/** /**
* java * java
*/ */
public static String BASE_JAVA_PAHT = "\\src\\main\\java\\"; public static String BASE_JAVA_PAHT = FILE_SEP + "src" + FILE_SEP + "main" + FILE_SEP + "java" + FILE_SEP;
/** /**
* vue * vue
*/ */
public static String BASE_VUE_PAHT = "\\_web\\src\\"; public static String BASE_VUE_PAHT = FILE_SEP + "_web" + FILE_SEP + "src" + FILE_SEP;
/**
* sql
*/
public static String BASE_SQL_PAHT = FILE_SEP + "_sql" + FILE_SEP;
/** /**
* *
@ -66,6 +71,7 @@ public class Config {
public static String vueIndexPath; public static String vueIndexPath;
public static String vueAddFromPath; public static String vueAddFromPath;
public static String vueEditFromPath; public static String vueEditFromPath;
public static String sqlPath;
/** /**
* *
@ -84,8 +90,9 @@ public class Config {
vueIndexPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP; vueIndexPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP;
vueAddFromPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP; vueAddFromPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP;
vueEditFromPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP; vueEditFromPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP;
sqlPath = BASE_SQL_PAHT;
return new String[] { return new String[] {
controllerPath, entityPath, enumsPath, mapperPath, mappingPath, paramPath, servicePath, serviceImplPath, manageJsPath, vueIndexPath, vueAddFromPath, vueEditFromPath controllerPath, entityPath, enumsPath, mapperPath, mappingPath, paramPath, servicePath, serviceImplPath, manageJsPath, vueIndexPath, vueAddFromPath, vueEditFromPath, sqlPath
}; };
} }
@ -105,6 +112,7 @@ public class Config {
"index.vue.vm", "index.vue.vm",
"addForm.vue.vm", "addForm.vue.vm",
"editForm.vue.vm", "editForm.vue.vm",
"XnMysql.sql.vm",
}; };
/** /**

View File

@ -1,8 +1,16 @@
package com.cn.xiaonuo.generate.core.context; package com.cn.xiaonuo.generate.core.context;
import com.baomidou.mybatisplus.annotation.IdType;
import com.cn.xiaonuo.core.enums.YesOrNotEnum;
import com.cn.xiaonuo.generate.core.param.XnCodeGenParam; import com.cn.xiaonuo.generate.core.param.XnCodeGenParam;
import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig;
import com.cn.xiaonuo.sys.config.MybatisConfig;
import org.apache.velocity.VelocityContext; import org.apache.velocity.VelocityContext;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/** /**
* *
* *
@ -45,7 +53,23 @@ public class XnVelocityContext {
// 数据库表名 // 数据库表名
velocityContext.put("tableName", xnCodeGenParam.getTableName()); velocityContext.put("tableName", xnCodeGenParam.getTableName());
// 数据库字段 // 数据库字段
velocityContext.put("tableField", xnCodeGenParam.getTableField()); velocityContext.put("tableField", xnCodeGenParam.getConfigList());
// 前端查询所有
List<SysCodeGenerateConfig> codeGenerateConfigList = new ArrayList<>();
xnCodeGenParam.getConfigList().forEach(item -> {
if (item.getQueryWhether().equals(YesOrNotEnum.Y.getCode())) {
codeGenerateConfigList.add(item);
}
});
velocityContext.put("queryWhetherList", codeGenerateConfigList);
// sql中id的创建
List<Long> idList = new ArrayList<>();
for (int a = 0; a <= 6; a++) {
idList.add(Math.abs(UUID.randomUUID().getLeastSignificantBits()));
}
velocityContext.put("sqlMenuId", idList);
return velocityContext; return velocityContext;
} }

View File

@ -0,0 +1,56 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuo/xiaonuo-vue
5. https://gitee.com/xiaonuo/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.core.enums;
import lombok.Getter;
/**
*
*
* @author yubaoshan
* @date 2021/2/8 20:31
*/
@Getter
public enum QueryTypeEnum {
eq("eq", "等于"),
like("like", "模糊"),
gt("gt", "大于"),
lt("lt", "小于"),
ne("ne", "不等于"),
ge("ge", "大于等于"),
le("le", "小于等于"),
isNotNull("isNotNull", "不为空");
private final String code;
private final String message;
QueryTypeEnum(String code, String message) {
this.code = code;
this.message = message;
}
}

View File

@ -25,8 +25,9 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注
package com.cn.xiaonuo.generate.core.param; package com.cn.xiaonuo.generate.core.param;
import com.cn.xiaonuo.generate.core.config.Config; import com.cn.xiaonuo.generate.core.config.Config;
import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig;
import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@Data @Data
@ -80,7 +81,7 @@ public class XnCodeGenParam {
/** /**
* *
*/ */
private List<TableField> tableField; private List<SysCodeGenerateConfig> configList;
/** /**
* *

View File

@ -0,0 +1,30 @@
package com.cn.xiaonuo.generate.core.tool;
/**
* javaeffect
*
* @author yubaoshan
* @date 2021-2-8 02:30
*/
public class JavaEffTool {
/**
* java
*
* @author yubaoshan
* @date 2021-2-8 02:30
*/
public static String javaToEff (String javaType) {
if( javaType == null || javaType.trim().length() == 0 ) return javaType;
switch(javaType){
case "String":return "input";
case "Integer":return "input";
case "Long":return "input";
case "Date":return "datepicker";
default:
System.out.println(">>> 转化失败:未发现的类型" + javaType);
break;
}
return javaType;
}
}

View File

@ -47,7 +47,7 @@ public class JavaSqlTool {
case "smallmoney":return "Double"; case "smallmoney":return "Double";
case "image":return "byte[]"; case "image":return "byte[]";
default: default:
System.out.println("-----------------》转化失败:未发现的类型" + sqlType); System.out.println(">>> 转化失败:未发现的类型" + sqlType);
break; break;
} }
return sqlType; return sqlType;

View File

@ -26,19 +26,13 @@ package com.cn.xiaonuo.generate.modular.controller;
import com.cn.xiaonuo.core.annotion.BusinessLog; import com.cn.xiaonuo.core.annotion.BusinessLog;
import com.cn.xiaonuo.core.annotion.Permission; import com.cn.xiaonuo.core.annotion.Permission;
import com.cn.xiaonuo.core.context.constant.ConstantContextHolder;
import com.cn.xiaonuo.core.enums.LogAnnotionOpTypeEnum; import com.cn.xiaonuo.core.enums.LogAnnotionOpTypeEnum;
import com.cn.xiaonuo.core.exception.DemoException;
import com.cn.xiaonuo.core.pojo.response.ResponseData; import com.cn.xiaonuo.core.pojo.response.ResponseData;
import com.cn.xiaonuo.core.pojo.response.SuccessResponseData; import com.cn.xiaonuo.core.pojo.response.SuccessResponseData;
import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam; import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam;
import com.cn.xiaonuo.generate.modular.service.CodeGenerateService; import com.cn.xiaonuo.generate.modular.service.CodeGenerateService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
@ -133,10 +127,6 @@ public class CodeGenerateController {
@PostMapping("/codeGenerate/runLocal") @PostMapping("/codeGenerate/runLocal")
@BusinessLog(title = "代码生成_本地项目", opType = LogAnnotionOpTypeEnum.OTHER) @BusinessLog(title = "代码生成_本地项目", opType = LogAnnotionOpTypeEnum.OTHER)
public ResponseData runLocal(@RequestBody @Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam) { public ResponseData runLocal(@RequestBody @Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam) {
// 演示环境开启,则不允许操作
if (ConstantContextHolder.getDemoEnvFlag()) {
throw new DemoException();
}
this.codeGenerateService.runLocal(codeGenerateParam); this.codeGenerateService.runLocal(codeGenerateParam);
return new SuccessResponseData(); return new SuccessResponseData();
} }
@ -151,10 +141,6 @@ public class CodeGenerateController {
@GetMapping("/codeGenerate/runDown") @GetMapping("/codeGenerate/runDown")
@BusinessLog(title = "代码生成_下载方式", opType = LogAnnotionOpTypeEnum.OTHER) @BusinessLog(title = "代码生成_下载方式", opType = LogAnnotionOpTypeEnum.OTHER)
public void runDown(@Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam, HttpServletResponse response) { public void runDown(@Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam, HttpServletResponse response) {
// 演示环境开启,则不允许操作
if (ConstantContextHolder.getDemoEnvFlag()) {
throw new DemoException();
}
this.codeGenerateService.runDown(codeGenerateParam, response); this.codeGenerateService.runDown(codeGenerateParam, response);
} }
} }

View File

@ -0,0 +1,93 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.controller;
import com.cn.xiaonuo.core.annotion.BusinessLog;
import com.cn.xiaonuo.core.annotion.Permission;
import com.cn.xiaonuo.core.enums.LogAnnotionOpTypeEnum;
import com.cn.xiaonuo.core.pojo.response.ResponseData;
import com.cn.xiaonuo.core.pojo.response.SuccessResponseData;
import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam;
import com.cn.xiaonuo.generate.modular.service.SysCodeGenerateConfigService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@RestController
public class SysCodeGenerateConfigController {
@Resource
private SysCodeGenerateConfigService sysCodeGenerateConfigService;
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@Permission
@PostMapping("/sysCodeGenerateConfig/edit")
@BusinessLog(title = "代码生成详细配置_编辑", opType = LogAnnotionOpTypeEnum.EDIT)
public ResponseData edit(@RequestBody @Validated(SysCodeGenerateConfigParam.edit.class) SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
sysCodeGenerateConfigService.edit(sysCodeGenerateConfigParam.getSysCodeGenerateConfigParamList());
return new SuccessResponseData();
}
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@Permission
@GetMapping("/sysCodeGenerateConfig/detail")
@BusinessLog(title = "代码生成详细配置_查看", opType = LogAnnotionOpTypeEnum.DETAIL)
public ResponseData detail(@Validated(SysCodeGenerateConfigParam.detail.class) SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
return new SuccessResponseData(sysCodeGenerateConfigService.detail(sysCodeGenerateConfigParam));
}
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@Permission
@GetMapping("/sysCodeGenerateConfig/list")
@BusinessLog(title = "代码生成详细配置_列表", opType = LogAnnotionOpTypeEnum.QUERY)
public ResponseData list(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
return new SuccessResponseData(sysCodeGenerateConfigService.list(sysCodeGenerateConfigParam));
}
}

View File

@ -0,0 +1,136 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cn.xiaonuo.core.pojo.base.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("sys_code_generate_config")
public class SysCodeGenerateConfig extends BaseEntity {
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* ID
*/
private Long codeGenId;
/**
*
*/
private String columnName;
/**
* java
*/
private String javaName;
/**
*
*/
private String columnComment;
/**
* java
*/
private String javaType;
/**
*
*/
private String effectType;
/**
* code
*/
private String dictTypeCode;
/**
*
*/
private String whetherRetract;
/**
*
*/
private String whetherRequired;
/**
*
*/
private String queryWhether;
/**
*
*/
private String queryType;
/**
*
*/
private String whetherTable;
/**
*
*/
private String whetherAddUpdate;
/**
*
*/
public String columnKey;
/**
* get set
*/
public String columnKeyName;
/**
*
*/
public String dataType;
/**
*
*/
public String whetherCommon;
}

View File

@ -0,0 +1,64 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.enums;
import com.cn.xiaonuo.core.annotion.ExpEnumType;
import com.cn.xiaonuo.core.exception.enums.abs.AbstractBaseExceptionEnum;
import com.cn.xiaonuo.core.factory.ExpEnumCodeFactory;
import com.cn.xiaonuo.sys.core.consts.SysExpEnumConstant;
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@ExpEnumType(module = SysExpEnumConstant.XIAONUO_SYS_MODULE_EXP_CODE, kind = SysExpEnumConstant.SYS_POS_EXCEPTION_ENUM)
public enum SysCodeGenerateConfigExceptionEnum implements AbstractBaseExceptionEnum {
/**
*
*/
NOT_EXIST(1, "此数据不存在");
private final Integer code;
private final String message;
SysCodeGenerateConfigExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
@Override
public Integer getCode() {
return ExpEnumCodeFactory.getExpEnumCode(this.getClass(), code);
}
@Override
public String getMessage() {
return message;
}
}

View File

@ -24,12 +24,11 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注
*/ */
package com.cn.xiaonuo.generate.modular.mapper; package com.cn.xiaonuo.generate.modular.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; import com.cn.xiaonuo.generate.modular.entity.CodeGenerate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult; import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult;
import com.cn.xiaonuo.generate.modular.result.InformationResult; import com.cn.xiaonuo.generate.modular.result.InformationResult;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/** /**

View File

@ -0,0 +1,37 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig;
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
public interface SysCodeGenerateConfigMapper extends BaseMapper<SysCodeGenerateConfig> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cn.xiaonuo.generate.modular.mapper.SysCodeGenerateConfigMapper">
</mapper>

View File

@ -28,7 +28,6 @@ import com.cn.xiaonuo.core.pojo.base.param.BaseParam;
import com.cn.xiaonuo.core.validation.flag.FlagValue; import com.cn.xiaonuo.core.validation.flag.FlagValue;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;

View File

@ -0,0 +1,138 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.param;
import com.cn.xiaonuo.core.pojo.base.param.BaseParam;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@Data
public class SysCodeGenerateConfigParam extends BaseParam {
/**
*
*/
private Long id;
/**
* ID
*/
private Long codeGenId;
/**
*
*/
private String columnName;
/**
* java
*/
private String javaName;
/**
*
*/
private String columnComment;
/**
* java
*/
private String javaType;
/**
*
*/
private String effectType;
/**
* code
*/
private String dictTypeCode;
/**
*
*/
private String whetherRetract;
/**
*
*/
private String whetherRequired;
/**
*
*/
private String queryWhether;
/**
*
*/
private String queryType;
/**
*
*/
private String whetherTable;
/**
*
*/
private String whetherAddUpdate;
/**
*
*/
public String columnKey;
/**
*
*/
public String columnKeyName;
/**
*
*/
public String dataType;
/**
*
*/
public String whetherCommon;
/**
*
*/
@NotEmpty(message = "代码生成配置列表请检查sysCodeGenerateConfigParamList参数", groups = {edit.class})
private List<SysCodeGenerateConfigParam> sysCodeGenerateConfigParamList;
}

View File

@ -29,7 +29,6 @@ import com.cn.xiaonuo.core.pojo.page.PageResult;
import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; import com.cn.xiaonuo.generate.modular.entity.CodeGenerate;
import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam; import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam;
import com.cn.xiaonuo.generate.modular.result.InformationResult; import com.cn.xiaonuo.generate.modular.result.InformationResult;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;

View File

@ -0,0 +1,91 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cn.xiaonuo.core.pojo.page.PageResult;
import com.cn.xiaonuo.generate.modular.entity.CodeGenerate;
import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig;
import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam;
import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult;
import java.util.List;
/**
* service
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
public interface SysCodeGenerateConfigService extends IService<SysCodeGenerateConfig> {
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
List<SysCodeGenerateConfig> list(SysCodeGenerateConfigParam sysCodeGenerateConfigParam);
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
void add(SysCodeGenerateConfigParam sysCodeGenerateConfigParam);
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
void addList(List<InforMationColumnsResult> inforMationColumnsResultList, CodeGenerate codeGenerate);
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
void delete(SysCodeGenerateConfigParam sysCodeGenerateConfigParam);
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
void edit(List<SysCodeGenerateConfigParam> sysCodeGenerateConfigParamList);
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
SysCodeGenerateConfig detail(SysCodeGenerateConfigParam sysCodeGenerateConfigParam);
}

View File

@ -30,25 +30,31 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cn.xiaonuo.core.consts.CommonConstant; import com.cn.xiaonuo.core.consts.CommonConstant;
import com.cn.xiaonuo.core.context.constant.ConstantContext; import com.cn.xiaonuo.core.context.constant.ConstantContext;
import com.cn.xiaonuo.core.enums.YesOrNotEnum;
import com.cn.xiaonuo.core.exception.ServiceException; import com.cn.xiaonuo.core.exception.ServiceException;
import com.cn.xiaonuo.core.factory.PageFactory; import com.cn.xiaonuo.core.factory.PageFactory;
import com.cn.xiaonuo.core.pojo.page.PageResult; import com.cn.xiaonuo.core.pojo.page.PageResult;
import com.cn.xiaonuo.generate.core.config.Config;
import com.cn.xiaonuo.generate.core.context.XnVelocityContext; import com.cn.xiaonuo.generate.core.context.XnVelocityContext;
import com.cn.xiaonuo.generate.core.enums.TableFilteredFieldsEnum;
import com.cn.xiaonuo.generate.core.param.TableField; import com.cn.xiaonuo.generate.core.param.TableField;
import com.cn.xiaonuo.generate.core.param.XnCodeGenParam; import com.cn.xiaonuo.generate.core.param.XnCodeGenParam;
import com.cn.xiaonuo.generate.core.tool.JavaSqlTool; import com.cn.xiaonuo.generate.core.tool.JavaSqlTool;
import com.cn.xiaonuo.generate.core.tool.NamingConTool; import com.cn.xiaonuo.generate.core.tool.NamingConTool;
import com.cn.xiaonuo.generate.core.tool.StringDateTool; import com.cn.xiaonuo.generate.core.tool.StringDateTool;
import com.cn.xiaonuo.generate.core.config.Config;
import com.cn.xiaonuo.generate.core.enums.TableFilteredFieldsEnum;
import com.cn.xiaonuo.generate.core.util.Util; import com.cn.xiaonuo.generate.core.util.Util;
import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; import com.cn.xiaonuo.generate.modular.entity.CodeGenerate;
import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig;
import com.cn.xiaonuo.generate.modular.enums.CodeGenerateExceptionEnum; import com.cn.xiaonuo.generate.modular.enums.CodeGenerateExceptionEnum;
import com.cn.xiaonuo.generate.modular.mapper.CodeGenerateMapper; import com.cn.xiaonuo.generate.modular.mapper.CodeGenerateMapper;
import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam; import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam;
import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam;
import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult; import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult;
import com.cn.xiaonuo.generate.modular.result.InformationResult; import com.cn.xiaonuo.generate.modular.result.InformationResult;
import com.cn.xiaonuo.generate.modular.service.CodeGenerateService; import com.cn.xiaonuo.generate.modular.service.CodeGenerateService;
import com.cn.xiaonuo.generate.modular.service.SysCodeGenerateConfigService;
import com.cn.xiaonuo.sys.modular.menu.entity.SysMenu;
import com.cn.xiaonuo.sys.modular.menu.mapper.SysMenuMapper;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.velocity.Template; import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext; import org.apache.velocity.VelocityContext;
@ -56,6 +62,7 @@ import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.app.VelocityEngine;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
@ -91,9 +98,12 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
private static String EDIT_FORM_PAGE_NAME = "editForm.vue"; private static String EDIT_FORM_PAGE_NAME = "editForm.vue";
private static String INDEX_PAGE_NAME = "index.vue"; private static String INDEX_PAGE_NAME = "index.vue";
private static String MANAGE_JS_NAME = "Manage.js"; private static String MANAGE_JS_NAME = "Manage.js";
private static String SQL_NAME = ".sql";
private static String JAVA_SUFFIX = ".java"; private static String JAVA_SUFFIX = ".java";
private static String TEMP_ENTITY_NAME = "entity"; private static String TEMP_ENTITY_NAME = "entity";
@Resource
private SysCodeGenerateConfigService sysCodeGenerateConfigService;
@Override @Override
public PageResult<CodeGenerate> page(CodeGenerateParam codeGenerateParam) { public PageResult<CodeGenerate> page(CodeGenerateParam codeGenerateParam) {
@ -115,12 +125,19 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
throw new ServiceException(CodeGenerateExceptionEnum.CODE_GEN_TABLE_NOT_PRI); throw new ServiceException(CodeGenerateExceptionEnum.CODE_GEN_TABLE_NOT_PRI);
} }
this.save(codeGenerate); this.save(codeGenerate);
// 加入配置表中
codeGenerateParam.setId(codeGenerate.getId());
this.sysCodeGenerateConfigService.addList(this.getInforMationColumnsResultList(codeGenerateParam), codeGenerate);
} }
@Override @Override
public void delete(List<CodeGenerateParam> codeGenerateParamList) { public void delete(List<CodeGenerateParam> codeGenerateParamList) {
codeGenerateParamList.forEach(codeGenerateParam -> { codeGenerateParamList.forEach(codeGenerateParam -> {
this.removeById(codeGenerateParam.getId()); this.removeById(codeGenerateParam.getId());
SysCodeGenerateConfigParam sysCodeGenerateConfigParam = new SysCodeGenerateConfigParam();
sysCodeGenerateConfigParam.setCodeGenId(codeGenerateParam.getId());
this.sysCodeGenerateConfigService.delete(sysCodeGenerateConfigParam);
}); });
} }
@ -210,45 +227,28 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
} }
/** /**
* 使 *
* *
* @author yubaoshan * @author yubaoshan
* @date 20201217 2330 * @date 2021-02-06 22:36
*/ */
private XnCodeGenParam copyParams (CodeGenerateParam codeGenerateParam) { private List<InforMationColumnsResult> getInforMationColumnsResultList (CodeGenerateParam codeGenerateParam) {
CodeGenerate codeGenerate = this.queryCodeGenerate(codeGenerateParam); CodeGenerate codeGenerate = this.queryCodeGenerate(codeGenerateParam);
String databaseUrl = ConstantContext.me().getStr(CommonConstant.DATABASE_URL_NAME); String databaseUrl = ConstantContext.me().getStr(CommonConstant.DATABASE_URL_NAME);
String dbName = databaseUrl.substring(Util.getIndex(databaseUrl, 3, "/") + 1, databaseUrl.indexOf("?")); String dbName = databaseUrl.substring(Util.getIndex(databaseUrl, 3, "/") + 1, databaseUrl.indexOf("?"));
List<InforMationColumnsResult> inforMationColumnsResultList = this.baseMapper.selectInformationColumns(dbName, codeGenerate.getTableName()); return this.baseMapper.selectInformationColumns(dbName, codeGenerate.getTableName());
}
private XnCodeGenParam copyParams (CodeGenerateParam codeGenerateParam) {
CodeGenerate codeGenerate = this.queryCodeGenerate(codeGenerateParam);
SysCodeGenerateConfigParam sysCodeGenerateConfigParam = new SysCodeGenerateConfigParam();
sysCodeGenerateConfigParam.setCodeGenId(codeGenerateParam.getId());
List<SysCodeGenerateConfig> configList = this.sysCodeGenerateConfigService.list(sysCodeGenerateConfigParam);
XnCodeGenParam param = new XnCodeGenParam(); XnCodeGenParam param = new XnCodeGenParam();
List<TableField> tableFieldList = new ArrayList<TableField>();
inforMationColumnsResultList.forEach(item -> {
TableField tableField = new TableField();
BeanUtil.copyProperties(item, tableField);
if (tableField.getColumnKey().equals(Config.DB_TABLE_COM_KRY)) {
tableField.setPrimaryKeyFlag(true);
}
// 加入后端查询参数get set参数
String columnName = NamingConTool.UnderlineToHump(item.getColumnName(),"");
tableField.setColumnKeyName(columnName.substring(0,1).toUpperCase() + columnName.substring(1,columnName.length()));
// 字段类型转换Java类型
tableField.setJavaType(JavaSqlTool.sqlToJava(item.getDataType()));
// 字段名称转换
tableField.setColumnName(NamingConTool.UnderlineToHump(item.getColumnName(), codeGenerate.getTablePrefix()));
// 过滤掉通用字段
if (!TableFilteredFieldsEnum.contains(item.getColumnName())) {
tableFieldList.add(tableField);
}
});
BeanUtil.copyProperties(codeGenerate, param); BeanUtil.copyProperties(codeGenerate, param);
// 功能名 // 功能名
param.setFunctionName(codeGenerate.getTableComment()); param.setFunctionName(codeGenerate.getTableComment());
param.setTableField(tableFieldList); param.setConfigList(configList);
param.setCreateTimeString(StringDateTool.getStringDate()); param.setCreateTimeString(StringDateTool.getStringDate());
return param; return param;
} }
@ -274,9 +274,10 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
String fileBaseName = ResetFileBaseName(xnCodeGenParam.getClassName(), String fileBaseName = ResetFileBaseName(xnCodeGenParam.getClassName(),
templateName.substring(templateName.indexOf(Config.FILE_SEP) + 1, templateName.lastIndexOf(TEMP_SUFFIX))); templateName.substring(templateName.indexOf(Config.FILE_SEP) + 1, templateName.lastIndexOf(TEMP_SUFFIX)));
String path = Config.getLocalPath (); String path = Config.getLocalPath ();
// 前端VUE位置有所变化 // 前端VUE位置有所变化, sql同样根目录
if (fileBaseName.contains(INDEX_PAGE_NAME) || fileBaseName.contains(ADD_FORM_PAGE_NAME) || if (fileBaseName.contains(INDEX_PAGE_NAME) || fileBaseName.contains(ADD_FORM_PAGE_NAME) ||
fileBaseName.contains(EDIT_FORM_PAGE_NAME) ||fileBaseName.contains(MANAGE_JS_NAME)) { fileBaseName.contains(EDIT_FORM_PAGE_NAME) ||fileBaseName.contains(MANAGE_JS_NAME) ||
fileBaseName.contains(SQL_NAME)) {
path = Config.getLocalFrontPath(); path = Config.getLocalFrontPath();
} }

View File

@ -0,0 +1,160 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
XiaoNuoAPACHE LICENSE 2.0使
1.LICENSE
2.XiaoNuo
3.
4. https://gitee.com/xiaonuobase/xiaonuo-vue
5. https://gitee.com/xiaonuobase/xiaonuo-vue
6.XiaoNuo https://www.xiaonuo.vip
*/
package com.cn.xiaonuo.generate.modular.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cn.xiaonuo.core.enums.YesOrNotEnum;
import com.cn.xiaonuo.core.exception.ServiceException;
import com.cn.xiaonuo.core.factory.PageFactory;
import com.cn.xiaonuo.core.pojo.page.PageResult;
import com.cn.xiaonuo.generate.core.config.Config;
import com.cn.xiaonuo.generate.core.enums.QueryTypeEnum;
import com.cn.xiaonuo.generate.core.enums.TableFilteredFieldsEnum;
import com.cn.xiaonuo.generate.core.tool.JavaEffTool;
import com.cn.xiaonuo.generate.core.tool.JavaSqlTool;
import com.cn.xiaonuo.generate.core.tool.NamingConTool;
import com.cn.xiaonuo.generate.modular.entity.CodeGenerate;
import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig;
import com.cn.xiaonuo.generate.modular.enums.SysCodeGenerateConfigExceptionEnum;
import com.cn.xiaonuo.generate.modular.mapper.SysCodeGenerateConfigMapper;
import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam;
import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult;
import com.cn.xiaonuo.generate.modular.service.SysCodeGenerateConfigService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* service
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
@Service
public class SysCodeGenerateConfigServiceImpl extends ServiceImpl<SysCodeGenerateConfigMapper, SysCodeGenerateConfig> implements SysCodeGenerateConfigService {
@Override
public List<SysCodeGenerateConfig> list(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
LambdaQueryWrapper<SysCodeGenerateConfig> queryWrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotNull(sysCodeGenerateConfigParam)) {
// 根据代码生成主表ID 模糊查询
if (ObjectUtil.isNotEmpty(sysCodeGenerateConfigParam.getCodeGenId())) {
queryWrapper.eq(SysCodeGenerateConfig::getCodeGenId, sysCodeGenerateConfigParam.getCodeGenId());
}
}
return this.list(queryWrapper);
}
@Override
public void add(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
SysCodeGenerateConfig sysCodeGenerateConfig = new SysCodeGenerateConfig();
BeanUtil.copyProperties(sysCodeGenerateConfigParam, sysCodeGenerateConfig);
this.save(sysCodeGenerateConfig);
}
@Override
public void addList(List<InforMationColumnsResult> inforMationColumnsResultList, CodeGenerate codeGenerate) {
for (InforMationColumnsResult inforMationColumnsResult : inforMationColumnsResultList) {
SysCodeGenerateConfig sysCodeGenerateConfig = new SysCodeGenerateConfig();
String YesOrNo = YesOrNotEnum.Y.getCode();
if (inforMationColumnsResult.getColumnKey().equals(Config.DB_TABLE_COM_KRY) ||
TableFilteredFieldsEnum.contains(inforMationColumnsResult.getColumnName())) {
YesOrNo = YesOrNotEnum.N.getCode();
}
if (TableFilteredFieldsEnum.contains(inforMationColumnsResult.getColumnName())) {
sysCodeGenerateConfig.setWhetherCommon(YesOrNotEnum.Y.getCode());
} else {
sysCodeGenerateConfig.setWhetherCommon(YesOrNotEnum.N.getCode());
}
sysCodeGenerateConfig.setCodeGenId(codeGenerate.getId());
sysCodeGenerateConfig.setColumnName(inforMationColumnsResult.getColumnName());
sysCodeGenerateConfig.setColumnComment(inforMationColumnsResult.getColumnComment());
sysCodeGenerateConfig.setJavaName(NamingConTool.UnderlineToHump(inforMationColumnsResult.getColumnName(), codeGenerate.getTablePrefix()));
sysCodeGenerateConfig.setJavaType(JavaSqlTool.sqlToJava(inforMationColumnsResult.getDataType()));
sysCodeGenerateConfig.setWhetherRetract(YesOrNotEnum.N.getCode());
sysCodeGenerateConfig.setWhetherRequired(YesOrNo);
sysCodeGenerateConfig.setQueryWhether(YesOrNo);
sysCodeGenerateConfig.setWhetherAddUpdate(YesOrNo);
sysCodeGenerateConfig.setWhetherTable(YesOrNo);
sysCodeGenerateConfig.setColumnKey(inforMationColumnsResult.getColumnKey());
// 设置get set方法使用的名称
String columnName = NamingConTool.UnderlineToHump(sysCodeGenerateConfig.getColumnName(),"");
sysCodeGenerateConfig.setColumnKeyName(columnName.substring(0,1).toUpperCase() + columnName.substring(1,columnName.length()));
sysCodeGenerateConfig.setDataType(inforMationColumnsResult.getDataType());
sysCodeGenerateConfig.setEffectType(JavaEffTool.javaToEff(sysCodeGenerateConfig.getJavaType()));
sysCodeGenerateConfig.setQueryType(QueryTypeEnum.eq.getCode());
this.save(sysCodeGenerateConfig);
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
LambdaQueryWrapper<SysCodeGenerateConfig> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysCodeGenerateConfig::getCodeGenId, sysCodeGenerateConfigParam.getCodeGenId());
this.remove(queryWrapper);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void edit(List<SysCodeGenerateConfigParam> sysCodeGenerateConfigParamList) {
for (SysCodeGenerateConfigParam sysCodeGenerateConfigParam : sysCodeGenerateConfigParamList) {
SysCodeGenerateConfig sysCodeGenerateConfig = this.querySysCodeGenerateConfig(sysCodeGenerateConfigParam);
BeanUtil.copyProperties(sysCodeGenerateConfigParam, sysCodeGenerateConfig);
this.updateById(sysCodeGenerateConfig);
}
}
@Override
public SysCodeGenerateConfig detail(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
return this.querySysCodeGenerateConfig(sysCodeGenerateConfigParam);
}
/**
*
*
* @author yubaoshan
* @date 2021-02-06 20:19:49
*/
private SysCodeGenerateConfig querySysCodeGenerateConfig(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) {
SysCodeGenerateConfig sysCodeGenerateConfig = this.getById(sysCodeGenerateConfigParam.getId());
if (ObjectUtil.isNull(sysCodeGenerateConfig)) {
throw new ServiceException(SysCodeGenerateConfigExceptionEnum.NOT_EXIST);
}
return sysCodeGenerateConfig;
}
}

View File

@ -26,6 +26,8 @@ package ${packageName}.${modularName}.${busName}.param;
import com.cn.xiaonuo.core.pojo.base.param.BaseParam; import com.cn.xiaonuo.core.pojo.base.param.BaseParam;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import java.util.*; import java.util.*;
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.javaType} == 'BigDecimal') #if (${column.javaType} == 'BigDecimal')
@ -42,11 +44,31 @@ import java.math.BigDecimal;
@Data @Data
public class ${ClassName}Param extends BaseParam { public class ${ClassName}Param extends BaseParam {
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.columnKey} == "PRI")
/** /**
* ${column.columnComment} * ${column.columnComment}
*/ */
private ${column.javaType} ${column.columnName}; @NotNull(message = "${column.columnComment}不能为空,请检查${column.javaName}参数", groups = {edit.class, delete.class, detail.class})
private ${column.javaType} ${column.javaName};
#elseif (${column.whetherCommon} == 'N')
/**
* ${column.columnComment}
*/
#if (${column.whetherRequired} == "Y")
#if (${column.javaType} == "String")
@NotBlank(message = "${column.columnComment}不能为空,请检查${column.javaName}参数", groups = {add.class, edit.class})
#else
@NotNull(message = "${column.columnComment}不能为空,请检查${column.javaName}参数", groups = {add.class, edit.class})
#end #end
#end
#if(${column.javaType} == "Date")
private String ${column.javaName};
#else
private ${column.javaType} ${column.javaName};
#end
#end
#end
} }

View File

@ -60,18 +60,11 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
if (ObjectUtil.isNotNull(${className}Param)) { if (ObjectUtil.isNotNull(${className}Param)) {
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.primaryKeyFlag}) #if (${column.queryWhether} == "Y")
// 根据${column.columnComment} 查询 // 根据${column.columnComment} 查询
if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) { if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) {
queryWrapper.lambda().eq(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}()); queryWrapper.lambda().${column.queryType}(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}());
} }
#else
// 根据${column.columnComment} 模糊查询
if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) {
queryWrapper.lambda().like(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}());
}
#end #end
#end #end
} }
@ -80,26 +73,7 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
@Override @Override
public List<${ClassName}> list(${ClassName}Param ${className}Param) { public List<${ClassName}> list(${ClassName}Param ${className}Param) {
LambdaQueryWrapper<${ClassName}> queryWrapper = new LambdaQueryWrapper<>(); return this.list();
if (ObjectUtil.isNotNull(${className}Param)) {
#foreach ($column in $tableField)
#if (${column.primaryKeyFlag})
// 根据${column.columnComment} 查询
if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) {
queryWrapper.eq(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}());
}
#else
// 根据${column.columnComment} 模糊查询
if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) {
queryWrapper.like(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}());
}
#end
#end
}
return this.list(queryWrapper);
} }
@Override @Override
@ -113,9 +87,9 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
@Override @Override
public void delete(${ClassName}Param ${className}Param) { public void delete(${ClassName}Param ${className}Param) {
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.primaryKeyFlag}) #if (${column.columnKey} == "PRI")
this.removeById(${className}Param.get${column.columnKeyName}()); this.removeById(${className}Param.get${column.columnKeyName}());
#end #end
#end #end
} }
@ -140,9 +114,9 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
*/ */
private ${ClassName} query${ClassName}(${ClassName}Param ${className}Param) { private ${ClassName} query${ClassName}(${ClassName}Param ${className}Param) {
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.primaryKeyFlag}) #if (${column.columnKey} == "PRI")
${ClassName} ${className} = this.getById(${className}Param.get${column.columnKeyName}()); ${ClassName} ${className} = this.getById(${className}Param.get${column.columnKeyName}());
#end #end
#end #end
if (ObjectUtil.isNull(${className})) { if (ObjectUtil.isNull(${className})) {
throw new ServiceException(${ClassName}ExceptionEnum.NOT_EXIST); throw new ServiceException(${ClassName}ExceptionEnum.NOT_EXIST);

View File

@ -0,0 +1,34 @@
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
#foreach ($id in $sqlMenuId)
#if($foreach.count == 1)
INSERT INTO `sys_menu` VALUES
('$id', '0', '[0],', '${functionName}', '${busName}_index', '1', null, '/${className}', 'main/${busName}/index', null, 'system_tool', '1', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#set ($pid=$id)
#elseif($foreach.count == 2)
INSERT INTO `sys_menu` VALUES
('$id', '$pid', '[0],[$pid],', '${functionName}查询', '${busName}_index_page', '2', null, null, null, '${className}:page', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#elseif($foreach.count == 3)
INSERT INTO `sys_menu` VALUES
('$id', '$pid', '[0],[$pid],', '${functionName}新增', '${busName}_index_add', '2', null, null, null, '${className}:add', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#elseif($foreach.count == 4)
INSERT INTO `sys_menu` VALUES
('$id', '$pid', '[0],[$pid],', '${functionName}编辑', '${busName}_index_edit', '2', null, null, null, '${className}:edit', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#elseif($foreach.count == 5)
INSERT INTO `sys_menu` VALUES
('$id', '$pid', '[0],[$pid],', '${functionName}删除', '${busName}_index_delete', '2', null, null, null, '${className}:delete', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#elseif($foreach.count == 6)
INSERT INTO `sys_menu` VALUES
('$id', '$pid', '[0],[$pid],', '${functionName}查看', '${busName}_index_detail', '2', null, null, null, '${className}:detail', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#elseif($foreach.count == 7)
INSERT INTO `sys_menu` VALUES
('$id', '$pid', '[0],[$pid],', '${functionName}列表', '${busName}_index_list', '2', null, null, null, '${className}:list', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null);
#end
#end

View File

@ -10,18 +10,87 @@
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form :form="form"> <a-form :form="form">
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (!${column.primaryKeyFlag}) #if (${column.columnKey} != "PRI")
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
<a-form-item
label="${column.columnComment}"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
#else
<a-form-item <a-form-item
label="${column.columnComment}" label="${column.columnComment}"
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
> >
<a-input placeholder="请输入${column.columnComment}" v-decorator="['${column.columnName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" /> #end
#if (${column.effectType} == "input")
#if (${column.whetherRequired} == "Y")
<a-input placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" />
#else
<a-input placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}']" />
#end
#end
#if (${column.effectType} == "textarea")
#if (${column.whetherRequired} == "Y")
<a-textarea placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" :auto-size="{ minRows: 3, maxRows: 6 }"/>
#else
<a-textarea placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}']" :auto-size="{ minRows: 3, maxRows: 6 }"/>
#end
#end
#if (${column.effectType} == "inputnumber")
#if (${column.whetherRequired} == "Y")
<a-input-number placeholder="请输入${column.columnComment}" style="width: 100%" v-decorator="['${column.javaName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" />
#else
<a-input-number placeholder="请输入${column.columnComment}" style="width: 100%" v-decorator="['${column.javaName}']" />
#end
#end
#if (${column.effectType} == "select")
#if (${column.whetherRequired} == "Y")
<a-select style="width: 100%" placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}', {rules: [{ required: true, message: '请选择${column.columnComment}' }]}]">
<a-select-option v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
#else
<a-select style="width: 100%" placeholder="请选择${column.columnComment}">
<a-select-option v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
#end
#end
#if (${column.effectType} == "radio")
#if (${column.whetherRequired} == "Y")
<a-radio-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}',{rules: [{ required: true, message: '请选择${column.columnComment}' }]}]" >
<a-radio v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-radio>
</a-radio-group>
#else
<a-radio-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}']" >
<a-radio v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-radio>
</a-radio-group>
#end
#end
#if (${column.effectType} == "checkbox")
#if (${column.whetherRequired} == "Y")
<a-checkbox-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}',{rules: [{ required: true, message: '请选择${column.columnComment}' }]}]" >
<a-checkbox v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-checkbox>
</a-checkbox-group>
#else
<a-checkbox-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}']" >
<a-checkbox v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-checkbox>
</a-checkbox-group>
#end
#end
#if (${column.effectType} == "datepicker")
#if (${column.whetherRequired} == "Y")
<a-date-picker style="width: 100%" placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}',{rules: [{ required: true, message: '请选择${column.columnComment}' }]}]" @change="onChange${column.javaName}"/>
#else
<a-date-picker style="width: 100%" placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}']" @change="onChange${column.javaName}"/>
#end
#end
</a-form-item> </a-form-item>
#end #end
#end #end
#end
</a-form> </a-form>
</a-spin> </a-spin>
</a-modal> </a-modal>
@ -40,6 +109,18 @@
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 15 } sm: { span: 15 }
}, },
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.dictTypeCode})
#if(${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
${column.javaName}Data: [],
#end
#end
#if (${column.effectType} == "datepicker")
${column.javaName}DateString: '',
#end
#end
#end
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
form: this.$form.createForm(this) form: this.$form.createForm(this)
@ -49,6 +130,14 @@
// 初始化方法 // 初始化方法
add (record) { add (record) {
this.visible = true this.visible = true
#foreach ($column in $tableField)
#if (${column.dictTypeCode})
#if(${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
const ${column.javaName}Option = this.$options
this.${column.javaName}Data = ${column.javaName}Option.filters['dictData']('${column.dictTypeCode}')
#end
#end
#end
}, },
/** /**
* 提交表单 * 提交表单
@ -58,6 +147,18 @@
this.confirmLoading = true this.confirmLoading = true
validateFields((errors, values) => { validateFields((errors, values) => {
if (!errors) { if (!errors) {
for (const key in values) {
if (typeof (values[key]) === 'object') {
values[key] = JSON.stringify(values[key])
}
}
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "datepicker")
values.${column.javaName} = this.${column.javaName}DateString
#end
#end
#end
${className}Add(values).then((res) => { ${className}Add(values).then((res) => {
if (res.success) { if (res.success) {
this.$message.success('新增成功') this.$message.success('新增成功')
@ -75,6 +176,15 @@
} }
}) })
}, },
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "datepicker")
onChange${column.javaName}(date, dateString) {
this.${column.javaName}DateString = dateString
},
#end
#end
#end
handleCancel () { handleCancel () {
this.form.resetFields() this.form.resetFields()
this.visible = false this.visible = false

View File

@ -10,10 +10,16 @@
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form :form="form"> <a-form :form="form">
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.primaryKeyFlag}) #if(${column.columnKey} == "PRI")
<a-form-item v-show="false"> <a-form-item v-show="false"><a-input v-decorator="['${column.javaName}']" /></a-form-item>
<a-input v-decorator="['${column.columnName}']" /> #else
</a-form-item> #if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
<a-form-item
label="${column.columnComment}"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
#else #else
<a-form-item <a-form-item
label="${column.columnComment}" label="${column.columnComment}"
@ -21,17 +27,94 @@
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
> >
<a-input placeholder="请输入${column.columnComment}" v-decorator="['${column.columnName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" /> #end
#if (${column.effectType} == "input")
#if (${column.whetherRequired} == "Y")
<a-input placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" />
#else
<a-input placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}']" />
#end
#end
#if (${column.effectType} == "textarea")
#if (${column.whetherRequired} == "Y")
<a-textarea placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" :auto-size="{ minRows: 3, maxRows: 6 }"/>
#else
<a-textarea placeholder="请输入${column.columnComment}" v-decorator="['${column.javaName}']" :auto-size="{ minRows: 3, maxRows: 6 }"/>
#end
#end
#if (${column.effectType} == "inputnumber")
#if (${column.whetherRequired} == "Y")
<a-input-number placeholder="请输入${column.columnComment}" style="width: 100%" v-decorator="['${column.javaName}', {rules: [{required: true, message: '请输入${column.columnComment}'}]}]" />
#else
<a-input-number placeholder="请输入${column.columnComment}" style="width: 100%" v-decorator="['${column.javaName}']" />
#end
#end
#if (${column.effectType} == "select")
#if (${column.whetherRequired} == "Y")
<a-select style="width: 100%" placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}', {rules: [{ required: true, message: '请选择${column.columnComment}' }]}]">
<a-select-option v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
#else
<a-select style="width: 100%" placeholder="请选择${column.columnComment}">
<a-select-option v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
#end
#end
#if (${column.effectType} == "radio")
#if (${column.whetherRequired} == "Y")
<a-radio-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}',{rules: [{ required: true, message: '请选择${column.columnComment}' }]}]" >
<a-radio v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-radio>
</a-radio-group>
#else
<a-radio-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}']" >
<a-radio v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-radio>
</a-radio-group>
#end
#end
#if (${column.effectType} == "checkbox")
#if (${column.whetherRequired} == "Y")
<a-checkbox-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}',{rules: [{ required: true, message: '请选择${column.columnComment}' }]}]" >
<a-checkbox v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-checkbox>
</a-checkbox-group>
#else
<a-checkbox-group placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}']" >
<a-checkbox v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-checkbox>
</a-checkbox-group>
#end
#end
#if (${column.effectType} == "datepicker")
#if (${column.whetherRequired} == "Y")
<a-date-picker style="width: 100%" placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}',{rules: [{ required: true, message: '请选择${column.columnComment}' }]}]" @change="onChange${column.javaName}"/>
#else
<a-date-picker style="width: 100%" placeholder="请选择${column.columnComment}" v-decorator="['${column.javaName}']" @change="onChange${column.javaName}"/>
#end
#end
</a-form-item> </a-form-item>
#end #end
#end #end
#end
</a-form> </a-form>
</a-spin> </a-spin>
</a-modal> </a-modal>
</template> </template>
<script> <script>
#set ($editData = 0)
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "datepicker")
#set ($DateQuery="Y")
#end
#if(${column.columnKey} != "PRI")
#if(${column.effectType} != "datepicker")
#set ($editData = $editData+1)
#end
#end
#end
#end
#if($DateQuery == "Y")
import moment from 'moment'
#end
import { ${className}Edit } from '@/api/modular/main/${busName}/${className}Manage' import { ${className}Edit } from '@/api/modular/main/${busName}/${className}Manage'
export default { export default {
data () { data () {
@ -44,32 +127,96 @@
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 15 } sm: { span: 15 }
}, },
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.dictTypeCode})
#if(${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
${column.javaName}Data: [],
#end
#end
#if (${column.effectType} == "datepicker")
${column.javaName}DateString: '',
#end
#end
#end
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
form: this.$form.createForm(this) form: this.$form.createForm(this)
} }
}, },
methods: { methods: {
#if($DateQuery == "Y")
moment,
#end
// 初始化方法 // 初始化方法
edit (record) { edit (record) {
this.visible = true this.visible = true
#foreach ($column in $tableField)
#if (${column.dictTypeCode})
#if(${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
const ${column.javaName}Option = this.$options
this.${column.javaName}Data = ${column.javaName}Option.filters['dictData']('${column.dictTypeCode}')
#end
#end
#end
setTimeout(() => { setTimeout(() => {
this.form.setFieldsValue( this.form.setFieldsValue(
{ {
#set ($editDataColumn = 0)
#foreach ($column in $tableField) #foreach ($column in $tableField)
${column.columnName}: record.${column.columnName}#if($foreach.hasNext), #if(${column.columnKey} == "PRI")
#end ${column.javaName}: record.${column.javaName}#if($foreach.hasNext),
#end #end
#else
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "checkbox")
#set ($editDataColumn = $editDataColumn+1)
${column.javaName}: JSON.parse(record.${column.javaName})#if($foreach.hasNext && ($editDataColumn != $editData)),
#else
#end
#elseif (${column.effectType} != "datepicker")
#set ($editDataColumn = $editDataColumn+1)
${column.javaName}: record.${column.javaName}#if($foreach.hasNext && ($editDataColumn != $editData)),
#else
#end
#end
#end
#end
#end
} }
) )
}, 100) }, 100)
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "datepicker")
// 时间单独处理
if (record.${column.javaName} != null) {
this.form.getFieldDecorator('${column.javaName}', { initialValue: moment(record.${column.javaName}, 'YYYY-MM-DD') })
}
this.${column.javaName}DateString = moment(record.${column.javaName}).format('YYYY-MM-DD')
#end
#end
#end
}, },
handleSubmit () { handleSubmit () {
const { form: { validateFields } } = this const { form: { validateFields } } = this
this.confirmLoading = true this.confirmLoading = true
validateFields((errors, values) => { validateFields((errors, values) => {
if (!errors) { if (!errors) {
for (const key in values) {
if (typeof (values[key]) === 'object') {
values[key] = JSON.stringify(values[key])
}
}
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "datepicker")
values.${column.javaName} = this.${column.javaName}DateString
#end
#end
#end
${className}Edit(values).then((res) => { ${className}Edit(values).then((res) => {
if (res.success) { if (res.success) {
this.$message.success('编辑成功') this.$message.success('编辑成功')
@ -87,6 +234,15 @@
} }
}) })
}, },
#foreach ($column in $tableField)
#if (${column.whetherAddUpdate} == "Y")
#if (${column.effectType} == "datepicker")
onChange${column.javaName}(date, dateString) {
this.${column.javaName}DateString = dateString
},
#end
#end
#end
handleCancel () { handleCancel () {
this.form.resetFields() this.form.resetFields()
this.visible = false this.visible = false

View File

@ -33,6 +33,9 @@ import java.util.*;
#if (${column.javaType} == 'BigDecimal') #if (${column.javaType} == 'BigDecimal')
import java.math.BigDecimal; import java.math.BigDecimal;
#end #end
#if(${column.javaType} == "Date")
import cn.afterturn.easypoi.excel.annotation.Excel;
#end
#end #end
/** /**
@ -47,18 +50,22 @@ import java.math.BigDecimal;
public class ${ClassName} extends BaseEntity { public class ${ClassName} extends BaseEntity {
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.primaryKeyFlag}) #if (${column.columnKey} == "PRI")
/** /**
* 主键 * ${column.columnComment}
*/ */
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
private ${column.javaType} ${column.columnName}; private ${column.javaType} ${column.javaName};
#else #elseif (${column.whetherCommon} == 'N')
/** /**
* ${column.columnComment} * ${column.columnComment}
*/ */
private ${column.javaType} ${column.columnName}; #if(${column.javaType} == "Date")
@Excel(name = "${column.columnComment}", databaseFormat = "yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd", width = 20)
#end
private ${column.javaType} ${column.javaName};
#end #end
#end #end
} }

View File

@ -1,27 +1,105 @@
<template> <template>
<a-card :bordered="false"> <div>
<a-card :bordered="false" :bodyStyle="tstyle">
#if($queryWhetherList.size() > 0)
<div class="table-page-search-wrapper" v-if="hasPerm('${className}:page')"> <div class="table-page-search-wrapper" v-if="hasPerm('${className}:page')">
<a-form layout="inline"> <a-form layout="inline">
<a-row :gutter="48"> <a-row :gutter="48">
#foreach ($column in $tableField) #foreach ($column in $queryWhetherList)
#if($foreach.count == 3)
<template v-if="advanced">
#end
#if(${column.effectType} == 'input' || ${column.effectType} == 'textarea')
#if($foreach.count >= 3)
<a-col :md="8" :sm="24"> <a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}" > <a-form-item label="${column.columnComment}">
<a-input v-model="queryParam.${column.columnName}" allow-clear placeholder="请输入${column.columnComment}"/> <a-input v-model="queryParam.${column.javaName}" allow-clear placeholder="请输入${column.columnComment}"/>
</a-form-item>
</a-col>
#else
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-input v-model="queryParam.${column.javaName}" allow-clear placeholder="请输入${column.columnComment}"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
#end #end
<a-col :md="!advanced && 8 || 24" :sm="24"> #elseif(${column.effectType} == 'inputnumber')
<span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} "> #if($foreach.count >= 3)
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-input-number v-model="queryParam.${column.javaName}" style="width: 100%" allow-clear placeholder="请输入${column.columnComment}"/>
</a-form-item>
</a-col>
#else
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-input-number v-model="queryParam.${column.javaName}" style="width: 100%" allow-clear placeholder="请输入${column.columnComment}"/>
</a-form-item>
</a-col>
#end
#elseif(${column.effectType} == 'select' || ${column.effectType} == 'radio')
#if($foreach.count >= 3)
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-select style="width: 100%" v-model="queryParam.${column.javaName}" placeholder="请选择${column.columnComment}">
<a-select-option v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
#else
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-select style="width: 100%" v-model="queryParam.${column.javaName}" placeholder="请选择${column.columnComment}">
<a-select-option v-for="(item,index) in ${column.javaName}Data" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
#end
#elseif(${column.effectType} == 'datepicker')
#if($foreach.count >= 3)
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-date-picker style="width: 100%" placeholder="请选择${column.columnComment}" v-model="queryParam.${column.javaName}Date" @change="onChange${column.javaName}"/>
</a-form-item>
</a-col>
#else
<a-col :md="8" :sm="24">
<a-form-item label="${column.columnComment}">
<a-date-picker style="width: 100%" placeholder="请选择${column.columnComment}" v-model="queryParam.${column.javaName}Date" @change="onChange${column.javaName}"/>
</a-form-item>
</a-col>
#end
#else
#end
#end
#if($queryWhetherList.size() > 2)
</template>
#end
#if($queryWhetherList.size() > 2)
<a-col :md="8" :sm="24" >
<span class="table-page-search-submitButtons">
<a-button type="primary" @click="$refs.table.refresh(true)" >查询</a-button>
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
<a @click="toggleAdvanced" style="margin-left: 8px">
{{ advanced ? '收起' : '展开' }}
<a-icon :type="advanced ? 'up' : 'down'"/>
</a>
</span>
</a-col>
#else
<a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button> <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</span> </span>
</a-col> </a-col>
#end
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
<div class="table-operator" v-if="hasPerm('${className}:add')" > #end
<a-button type="primary" v-if="hasPerm('${className}:add')" icon="plus" @click="$refs.addForm.add()">新增${functionName}</a-button> </a-card>
</div> <a-card :bordered="false">
<s-table <s-table
ref="table" ref="table"
size="default" size="default"
@ -29,12 +107,36 @@
:data="loadData" :data="loadData"
:alert="true" :alert="true"
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (${column.primaryKeyFlag}) #if (${column.columnKey} == "PRI")
:rowKey="(record) => record.${column.columnName}" :rowKey="(record) => record.${column.javaName}"
#end #end
#end #end
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
> >
<template class="table-operator" slot="operator" v-if="hasPerm('${className}:add')" >
<a-button type="primary" v-if="hasPerm('${className}:add')" icon="plus" @click="$refs.addForm.add()">新增${functionName}</a-button>
</template>
#foreach ($column in $tableField)
#if(${column.whetherTable} == "Y")
#if(${column.whetherRetract} == "Y" || ${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
<span slot="${column.javaName}scopedSlots" slot-scope="text">
#if(${column.whetherRetract} == "Y" && (${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox'))
<ellipsis :length="10" tooltip>{{ '${column.dictTypeCode}' | dictType(text) }}</ellipsis>
#else
#if(${column.whetherRetract} == "Y")
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
#else
#if(${column.effectType} == 'checkbox')
<a-tag v-for="textData in JSON.parse(text)" :key="textData.code" color="green">{{ 'sex' | dictType(textData) }}</a-tag>
#else
{{ '${column.dictTypeCode}' | dictType(text) }}
#end
#end
#end
</span>
#end
#end
#end
<span slot="action" slot-scope="text, record"> <span slot="action" slot-scope="text, record">
<a v-if="hasPerm('${className}:edit')" @click="$refs.editForm.edit(record)">编辑</a> <a v-if="hasPerm('${className}:edit')" @click="$refs.editForm.edit(record)">编辑</a>
<a-divider type="vertical" v-if="hasPerm('${className}:edit') & hasPerm('${className}:delete')"/> <a-divider type="vertical" v-if="hasPerm('${className}:edit') & hasPerm('${className}:delete')"/>
@ -46,43 +148,93 @@
<add-form ref="addForm" @ok="handleOk" /> <add-form ref="addForm" @ok="handleOk" />
<edit-form ref="editForm" @ok="handleOk" /> <edit-form ref="editForm" @ok="handleOk" />
</a-card> </a-card>
</div>
</template> </template>
<script> <script>
#set ($columnData = 0)
#foreach ($column in $tableField)
#if(${column.whetherTable} == "Y")
#if(${column.whetherRetract} == "Y")
#set ($Ellipsis="Y")
#end
#set ($columnData = $columnData+1)
#end
#if(${column.queryWhether} == 'Y')
#if(${column.effectType} == 'datepicker')
#set ($DateQuery="Y")
#end
#end
#end
#if($Ellipsis == "Y")
import { STable, Ellipsis } from '@/components'
#else
import { STable } from '@/components' import { STable } from '@/components'
#end
#if($DateQuery == "Y")
import moment from 'moment'
#end
import { ${className}Page, ${className}Delete } from '@/api/modular/main/${busName}/${className}Manage' import { ${className}Page, ${className}Delete } from '@/api/modular/main/${busName}/${className}Manage'
import addForm from './addForm.vue' import addForm from './addForm.vue'
import editForm from './editForm.vue' import editForm from './editForm.vue'
export default { export default {
components: { components: {
#if($Ellipsis == "Y")
Ellipsis,
#end
STable, STable,
addForm, addForm,
editForm editForm
}, },
data () { data () {
return { return {
#if($queryWhetherList.size() > 2)
// 高级搜索 展开/关闭 // 高级搜索 展开/关闭
advanced: false, advanced: false,
#end
// 查询参数 // 查询参数
queryParam: {}, queryParam: {},
// 表头 // 表头
columns: [ columns: [
#set ($columnDataColumns = 0)
#foreach ($column in $tableField) #foreach ($column in $tableField)
#if (!${column.primaryKeyFlag}) #if (${column.whetherTable} == "Y")
#set ($columnDataColumns = $columnDataColumns+1)
{ {
title: '${column.columnComment}', title: '${column.columnComment}',
dataIndex: '${column.columnName}' align: 'center',
}#if($foreach.hasNext), #if(${column.whetherRetract} == "Y" || ${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
#end dataIndex: '${column.javaName}',
#end scopedSlots: { customRender: '${column.javaName}scopedSlots' }
#else
dataIndex: '${column.javaName}'
#end #end
}#if($foreach.hasNext && ($columnDataColumns != $columnData)),
#else
#end
#end
#end
], ],
tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
// 加载数据方法 必须为 Promise 对象 // 加载数据方法 必须为 Promise 对象
loadData: parameter => { loadData: parameter => {
#if($DateQuery == "Y")
return ${className}Page(Object.assign(parameter, this.switchingDate())).then((res) => {
#else
return ${className}Page(Object.assign(parameter, this.queryParam)).then((res) => { return ${className}Page(Object.assign(parameter, this.queryParam)).then((res) => {
#end
return res.data return res.data
}) })
}, },
#foreach ($column in $tableField)
#if(${column.queryWhether} == 'Y')
#if(${column.effectType} == 'select' || ${column.effectType} == 'radio')
#if (${column.dictTypeCode})
${column.javaName}Data: [],
#end
#end
#end
#end
selectedRowKeys: [], selectedRowKeys: [],
selectedRows: [] selectedRows: []
} }
@ -96,8 +248,41 @@
scopedSlots: { customRender: 'action' } scopedSlots: { customRender: 'action' }
}) })
} }
#foreach ($column in $tableField)
#if(${column.queryWhether} == 'Y')
#if(${column.effectType} == 'select' || ${column.effectType} == 'radio')
#if (${column.dictTypeCode})
const ${column.javaName}Option = this.$options
this.${column.javaName}Data = ${column.javaName}Option.filters['dictData']('${column.dictTypeCode}')
#end
#end
#end
#end
}, },
methods: { methods: {
#if($DateQuery == "Y")
moment,
/**
* 查询参数组装
*/
switchingDate () {
#foreach ($column in $tableField)
#if(${column.queryWhether} == 'Y')
#if(${column.effectType} == 'datepicker')
const queryParam${column.javaName} = this.queryParam.${column.javaName}Date
if (queryParam${column.javaName} != null) {
this.queryParam.${column.javaName} = moment(queryParam${column.javaName}).format('YYYY-MM-DD')
if (queryParam${column.javaName}.length < 1) {
delete this.queryParam.${column.javaName}
}
}
#end
#end
#end
const obj = JSON.parse(JSON.stringify(this.queryParam))
return obj
},
#end
${className}Delete (record) { ${className}Delete (record) {
${className}Delete(record).then((res) => { ${className}Delete(record).then((res) => {
if (res.success) { if (res.success) {
@ -108,9 +293,20 @@
} }
}) })
}, },
#if($queryWhetherList.size() > 2)
toggleAdvanced () { toggleAdvanced () {
this.advanced = !this.advanced this.advanced = !this.advanced
}, },
#end
#foreach ($column in $queryWhetherList)
#if(${column.queryWhether} == 'Y')
#if(${column.effectType} == 'datepicker')
onChange${column.javaName}(date, dateString) {
this.${column.javaName}DateString = dateString
},
#end
#end
#end
handleOk () { handleOk () {
this.$refs.table.refresh() this.$refs.table.refresh()
}, },