mirror of https://gitee.com/xiaonuobase/snowy
【更新】v1.3版本:代码生成增强,配置每个字段的作用域
parent
2856eeda99
commit
b4ded9548c
|
@ -11,7 +11,7 @@
|
|||
Target Server Version : 110200
|
||||
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 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
|
||||
-- ----------------------------
|
||||
|
@ -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 ('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 ('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;
|
||||
|
||||
-- ----------------------------
|
||||
|
@ -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 ('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 ('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;
|
||||
|
||||
-- ----------------------------
|
||||
|
@ -1270,6 +1371,35 @@ COMMENT ON COLUMN "SYS_VIS_LOG"."VIS_TIME" IS '访问时间';
|
|||
COMMENT ON COLUMN "SYS_VIS_LOG"."ACCOUNT" 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
|
||||
-- ----------------------------
|
||||
|
@ -1280,6 +1410,11 @@ ALTER TABLE "SYS_APP" 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
|
||||
-- ----------------------------
|
||||
|
@ -1400,3 +1535,8 @@ ALTER TABLE "SYS_USER_ROLE" ADD PRIMARY KEY ("ID");
|
|||
-- Primary Key structure for table sys_vis_log
|
||||
-- ----------------------------
|
||||
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");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
Navicat MySQL Data Transfer
|
||||
|
||||
Source Server : ybs
|
||||
Source Server : yubaoshan
|
||||
Source Server Version : 50710
|
||||
Source Host : localhost:3306
|
||||
Source Database : xiaonuo-vue-pub
|
||||
|
@ -10,7 +10,7 @@ Target Server Type : MYSQL
|
|||
Target Server Version : 50710
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 2020-12-25 20:25:05
|
||||
Date: 2021-03-01 12:24:12
|
||||
*/
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
@ -63,6 +63,53 @@ CREATE TABLE `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`
|
||||
|
@ -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 ('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 ('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`
|
||||
|
@ -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 ('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 ('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`
|
||||
|
@ -1028,3 +1101,23 @@ CREATE TABLE `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='测试';
|
||||
|
|
|
@ -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
|
||||
})
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
<div class="links">
|
||||
</div>
|
||||
<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>
|
||||
</template>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<a href="_self">条款</a>
|
||||
</div>
|
||||
<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>
|
||||
|
|
|
@ -89,3 +89,13 @@ Vue.filter('dictData', function (code) {
|
|||
}
|
||||
return tree
|
||||
})
|
||||
|
||||
/**
|
||||
* 获取所有字典数组
|
||||
*
|
||||
* @author yubaoshan
|
||||
* @date 2021-2-8 01:13
|
||||
*/
|
||||
Vue.filter('dictDataAll', function () {
|
||||
return Vue.ls.get(DICT_TYPE_TREE_DATA)
|
||||
})
|
||||
|
|
|
@ -1,75 +1,95 @@
|
|||
<template>
|
||||
<a-card :bordered="false">
|
||||
<a-spin :spinning="Loading">
|
||||
<div class="table-page-search-wrapper" v-if="hasPerm('codeGenerate:page')">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="48">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="表名称" >
|
||||
<a-input v-model="queryParam.tableName" allow-clear placeholder="请输入表名称"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
||||
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator" v-if="hasPerm('codeGenerate:add')" >
|
||||
<a-button type="primary" v-if="hasPerm('codeGenerate:add')" icon="plus" @click="$refs.addForm.add()">新增</a-button>
|
||||
</div>
|
||||
<s-table
|
||||
ref="table"
|
||||
size="default"
|
||||
:columns="columns"
|
||||
:data="loadData"
|
||||
:alert="true"
|
||||
:rowKey="(record) => record.id"
|
||||
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
>
|
||||
<span slot="tableName" slot-scope="text">
|
||||
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
|
||||
</span>
|
||||
<span slot="packageName" slot-scope="text">
|
||||
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
|
||||
</span>
|
||||
<span slot="tablePrefix" slot-scope="text">
|
||||
<ellipsis :length="10" tooltip>{{ 'yes_or_no' | dictType(text) }}</ellipsis>
|
||||
</span>
|
||||
<span slot="generateType" slot-scope="text">
|
||||
<ellipsis :length="10" tooltip>{{ 'code_gen_create_type' | dictType(text) }}</ellipsis>
|
||||
</span>
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<span v-if="record.generateType === '1'">
|
||||
<a v-if="hasPerm('codeGenerate:runDown')" @click="runDownCodeGenerate(record)">开始生成</a>
|
||||
<div>
|
||||
<a-card :bordered="false" v-show="indexOpenShow" :bodyStyle="tstyle">
|
||||
<a-spin :spinning="Loading">
|
||||
<div class="table-page-search-wrapper" v-if="hasPerm('codeGenerate:page')">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="48">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="表名称" >
|
||||
<a-input v-model="queryParam.tableName" allow-clear placeholder="请输入表名称"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
||||
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
</a-spin>
|
||||
</a-card>
|
||||
<a-card :bordered="false" v-show="indexOpenShow">
|
||||
<a-spin :spinning="Loading">
|
||||
<s-table
|
||||
ref="table"
|
||||
size="default"
|
||||
:columns="columns"
|
||||
:data="loadData"
|
||||
:alert="true"
|
||||
:rowKey="(record) => record.id"
|
||||
: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">
|
||||
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
|
||||
</span>
|
||||
<span v-else>
|
||||
<a-popconfirm v-if="hasPerm('codeGenerate:runLocal')" placement="topRight" title="确定生成代码到本项目?" @confirm="() => runLocalCodeGenerate(record)">
|
||||
<a>开始生成</a>
|
||||
<span slot="packageName" slot-scope="text">
|
||||
<ellipsis :length="10" tooltip>{{ text }}</ellipsis>
|
||||
</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">
|
||||
<ellipsis :length="10" tooltip>{{ 'yes_or_no' | dictType(text) }}</ellipsis>
|
||||
</span>
|
||||
<span slot="generateType" slot-scope="text">
|
||||
<ellipsis :length="10" tooltip>{{ 'code_gen_create_type' | dictType(text) }}</ellipsis>
|
||||
</span>
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<span v-if="record.generateType === '1'">
|
||||
<a v-if="hasPerm('codeGenerate:runDown')" @click="runDownCodeGenerate(record)">开始生成</a>
|
||||
</span>
|
||||
<span v-else>
|
||||
<a-popconfirm v-if="hasPerm('codeGenerate:runLocal')" placement="topRight" title="确定生成代码到本项目?" @confirm="() => runLocalCodeGenerate(record)">
|
||||
<a>开始生成</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
<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-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>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
<a-divider type="vertical" v-if="hasPerm('codeGenerate:edit') & hasPerm('codeGenerate:runLocal') || hasPerm('codeGenerate:runDown') "/>
|
||||
<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-popconfirm v-if="hasPerm('codeGenerate:delete')" placement="topRight" title="确认删除?" @confirm="() => codeGenerateDelete(record)">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</s-table>
|
||||
<add-form ref="addForm" @ok="handleOk" v-if="hasPerm('codeGenerate:add')"/>
|
||||
<edit-form ref="editForm" @ok="handleOk" v-if="hasPerm('codeGenerate:edit')"/>
|
||||
</a-spin>
|
||||
</a-card>
|
||||
</s-table>
|
||||
<add-form ref="addForm" @ok="handleOk" v-if="hasPerm('codeGenerate:add')"/>
|
||||
<edit-form ref="editForm" @ok="handleOk" v-if="hasPerm('codeGenerate:edit')"/>
|
||||
</a-spin>
|
||||
</a-card>
|
||||
<index-config ref="indexConfig" @ok="handleResetOpen" v-if="hasPerm('codeGenerate:config')"/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { STable, Ellipsis } from '@/components'
|
||||
import { codeGeneratePage, codeGenerateDelete, codeGenerateRunDown, codeGenerateRunLocal } from '@/api/modular/gen/codeGenerateManage'
|
||||
import addForm from './addForm'
|
||||
import editForm from './editForm'
|
||||
import indexConfig from './indexConfig'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
indexConfig,
|
||||
STable,
|
||||
Ellipsis,
|
||||
addForm,
|
||||
|
@ -93,15 +113,18 @@
|
|||
},
|
||||
{
|
||||
title: '业务名',
|
||||
dataIndex: 'busName'
|
||||
dataIndex: 'busName',
|
||||
scopedSlots: { customRender: 'busName' }
|
||||
},
|
||||
{
|
||||
title: '类名',
|
||||
dataIndex: 'className'
|
||||
dataIndex: 'className',
|
||||
scopedSlots: { customRender: 'className' }
|
||||
},
|
||||
{
|
||||
title: '功能名',
|
||||
dataIndex: 'tableComment'
|
||||
dataIndex: 'tableComment',
|
||||
scopedSlots: { customRender: 'tableComment' }
|
||||
},
|
||||
{
|
||||
title: '作者姓名',
|
||||
|
@ -118,6 +141,7 @@
|
|||
scopedSlots: { customRender: 'generateType' }
|
||||
}
|
||||
],
|
||||
tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
|
||||
loadData: parameter => {
|
||||
return codeGeneratePage(Object.assign(parameter, this.queryParam)).then((res) => {
|
||||
return res.data
|
||||
|
@ -126,14 +150,15 @@
|
|||
selectedRowKeys: [],
|
||||
selectedRows: [],
|
||||
Loading: false,
|
||||
jdbcDriverList: []
|
||||
jdbcDriverList: [],
|
||||
indexOpenShow: true
|
||||
}
|
||||
},
|
||||
created () {
|
||||
if (this.hasPerm('codeGenerate:edit') || this.hasPerm('codeGenerate:delete')) {
|
||||
this.columns.push({
|
||||
title: '操作',
|
||||
width: '200px',
|
||||
width: '230px',
|
||||
dataIndex: 'action',
|
||||
scopedSlots: { customRender: 'action' }
|
||||
})
|
||||
|
@ -184,6 +209,9 @@
|
|||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
codeGenerateDelete (record) {
|
||||
this.Loading = true
|
||||
codeGenerateDelete([{ id: record.id }]).then((res) => {
|
||||
|
@ -199,6 +227,23 @@
|
|||
this.Loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 打开配置界面
|
||||
*/
|
||||
indexConfigOpen (record) {
|
||||
this.indexOpenShow = false
|
||||
this.$refs.indexConfig.open(record)
|
||||
},
|
||||
/**
|
||||
* 详细配置界面返回
|
||||
*/
|
||||
handleResetOpen () {
|
||||
this.indexOpenShow = true
|
||||
this.$refs.table.refresh()
|
||||
},
|
||||
/**
|
||||
* 其他界面返回
|
||||
*/
|
||||
handleOk () {
|
||||
this.$refs.table.refresh()
|
||||
},
|
||||
|
|
|
@ -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>
|
|
@ -19,7 +19,7 @@ public class Config {
|
|||
/**
|
||||
* 存放vm模板位置
|
||||
*/
|
||||
public static String templatePath = "template/";
|
||||
public static String templatePath = "template" + FILE_SEP;
|
||||
|
||||
/**
|
||||
* 主键标识
|
||||
|
@ -44,12 +44,17 @@ public class Config {
|
|||
/**
|
||||
* 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文件夹
|
||||
*/
|
||||
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 vueAddFromPath;
|
||||
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;
|
||||
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;
|
||||
sqlPath = BASE_SQL_PAHT;
|
||||
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",
|
||||
"addForm.vue.vm",
|
||||
"editForm.vue.vm",
|
||||
"XnMysql.sql.vm",
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,8 +1,16 @@
|
|||
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.modular.entity.SysCodeGenerateConfig;
|
||||
import com.cn.xiaonuo.sys.config.MybatisConfig;
|
||||
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("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;
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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;
|
||||
}
|
||||
|
||||
}
|
|
@ -25,8 +25,9 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注
|
|||
package com.cn.xiaonuo.generate.core.param;
|
||||
|
||||
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 java.util.List;
|
||||
|
||||
@Data
|
||||
|
@ -80,7 +81,7 @@ public class XnCodeGenParam {
|
|||
/**
|
||||
* 数据库表中字段集合
|
||||
*/
|
||||
private List<TableField> tableField;
|
||||
private List<SysCodeGenerateConfig> configList;
|
||||
|
||||
/**
|
||||
* 模块名
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
package com.cn.xiaonuo.generate.core.tool;
|
||||
|
||||
/**
|
||||
* java与effect工具类
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
}
|
|
@ -47,7 +47,7 @@ public class JavaSqlTool {
|
|||
case "smallmoney":return "Double";
|
||||
case "image":return "byte[]";
|
||||
default:
|
||||
System.out.println("-----------------》转化失败:未发现的类型" + sqlType);
|
||||
System.out.println(">>> 转化失败:未发现的类型" + sqlType);
|
||||
break;
|
||||
}
|
||||
return sqlType;
|
||||
|
|
|
@ -26,19 +26,13 @@ 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.context.constant.ConstantContextHolder;
|
||||
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.SuccessResponseData;
|
||||
import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam;
|
||||
import com.cn.xiaonuo.generate.modular.service.CodeGenerateService;
|
||||
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 org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
@ -133,10 +127,6 @@ public class CodeGenerateController {
|
|||
@PostMapping("/codeGenerate/runLocal")
|
||||
@BusinessLog(title = "代码生成_本地项目", opType = LogAnnotionOpTypeEnum.OTHER)
|
||||
public ResponseData runLocal(@RequestBody @Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam) {
|
||||
// 演示环境开启,则不允许操作
|
||||
if (ConstantContextHolder.getDemoEnvFlag()) {
|
||||
throw new DemoException();
|
||||
}
|
||||
this.codeGenerateService.runLocal(codeGenerateParam);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
@ -151,10 +141,6 @@ public class CodeGenerateController {
|
|||
@GetMapping("/codeGenerate/runDown")
|
||||
@BusinessLog(title = "代码生成_下载方式", opType = LogAnnotionOpTypeEnum.OTHER)
|
||||
public void runDown(@Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam, HttpServletResponse response) {
|
||||
// 演示环境开启,则不允许操作
|
||||
if (ConstantContextHolder.getDemoEnvFlag()) {
|
||||
throw new DemoException();
|
||||
}
|
||||
this.codeGenerateService.runDown(codeGenerateParam, response);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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));
|
||||
}
|
||||
|
||||
}
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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;
|
||||
|
||||
}
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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;
|
||||
}
|
||||
|
||||
}
|
|
@ -24,12 +24,11 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注
|
|||
*/
|
||||
package com.cn.xiaonuo.generate.modular.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
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.InformationResult;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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> {
|
||||
}
|
|
@ -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>
|
|
@ -28,7 +28,6 @@ import com.cn.xiaonuo.core.pojo.base.param.BaseParam;
|
|||
import com.cn.xiaonuo.core.validation.flag.FlagValue;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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;
|
||||
|
||||
}
|
|
@ -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.param.CodeGenerateParam;
|
||||
import com.cn.xiaonuo.generate.modular.result.InformationResult;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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);
|
||||
}
|
|
@ -30,25 +30,31 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.cn.xiaonuo.core.consts.CommonConstant;
|
||||
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.factory.PageFactory;
|
||||
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.enums.TableFilteredFieldsEnum;
|
||||
import com.cn.xiaonuo.generate.core.param.TableField;
|
||||
import com.cn.xiaonuo.generate.core.param.XnCodeGenParam;
|
||||
import com.cn.xiaonuo.generate.core.tool.JavaSqlTool;
|
||||
import com.cn.xiaonuo.generate.core.tool.NamingConTool;
|
||||
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.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.mapper.CodeGenerateMapper;
|
||||
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.InformationResult;
|
||||
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.velocity.Template;
|
||||
import org.apache.velocity.VelocityContext;
|
||||
|
@ -56,6 +62,7 @@ import org.apache.velocity.app.Velocity;
|
|||
import org.apache.velocity.app.VelocityEngine;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
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 INDEX_PAGE_NAME = "index.vue";
|
||||
private static String MANAGE_JS_NAME = "Manage.js";
|
||||
private static String SQL_NAME = ".sql";
|
||||
private static String JAVA_SUFFIX = ".java";
|
||||
private static String TEMP_ENTITY_NAME = "entity";
|
||||
|
||||
@Resource
|
||||
private SysCodeGenerateConfigService sysCodeGenerateConfigService;
|
||||
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
this.save(codeGenerate);
|
||||
|
||||
// 加入配置表中
|
||||
codeGenerateParam.setId(codeGenerate.getId());
|
||||
this.sysCodeGenerateConfigService.addList(this.getInforMationColumnsResultList(codeGenerateParam), codeGenerate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(List<CodeGenerateParam> codeGenerateParamList) {
|
||||
codeGenerateParamList.forEach(codeGenerateParam -> {
|
||||
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
|
||||
* @date 2020年12月17日 23点30分
|
||||
* @date 2021-02-06 22:36
|
||||
*/
|
||||
private XnCodeGenParam copyParams (CodeGenerateParam codeGenerateParam) {
|
||||
private List<InforMationColumnsResult> getInforMationColumnsResultList (CodeGenerateParam codeGenerateParam) {
|
||||
CodeGenerate codeGenerate = this.queryCodeGenerate(codeGenerateParam);
|
||||
String databaseUrl = ConstantContext.me().getStr(CommonConstant.DATABASE_URL_NAME);
|
||||
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();
|
||||
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);
|
||||
// 功能名
|
||||
param.setFunctionName(codeGenerate.getTableComment());
|
||||
param.setTableField(tableFieldList);
|
||||
param.setConfigList(configList);
|
||||
param.setCreateTimeString(StringDateTool.getStringDate());
|
||||
return param;
|
||||
}
|
||||
|
@ -274,9 +274,10 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
|
|||
String fileBaseName = ResetFileBaseName(xnCodeGenParam.getClassName(),
|
||||
templateName.substring(templateName.indexOf(Config.FILE_SEP) + 1, templateName.lastIndexOf(TEMP_SUFFIX)));
|
||||
String path = Config.getLocalPath ();
|
||||
// 前端VUE位置有所变化
|
||||
// 前端VUE位置有所变化, sql同样根目录
|
||||
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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
XiaoNuo采用APACHE 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;
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@ public class ${ClassName}Controller {
|
|||
@PostMapping("/${className}/add")
|
||||
@BusinessLog(title = "${functionName}_增加", opType = LogAnnotionOpTypeEnum.ADD)
|
||||
public ResponseData add(@RequestBody @Validated(${ClassName}Param.add.class) ${ClassName}Param ${className}Param) {
|
||||
${className}Service.add(${className}Param);
|
||||
${className}Service.add(${className}Param);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ public class ${ClassName}Controller {
|
|||
@PostMapping("/${className}/delete")
|
||||
@BusinessLog(title = "${functionName}_删除", opType = LogAnnotionOpTypeEnum.DELETE)
|
||||
public ResponseData delete(@RequestBody @Validated(${ClassName}Param.delete.class) ${ClassName}Param ${className}Param) {
|
||||
${className}Service.delete(${className}Param);
|
||||
${className}Service.delete(${className}Param);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
|
@ -101,7 +101,7 @@ public class ${ClassName}Controller {
|
|||
@PostMapping("/${className}/edit")
|
||||
@BusinessLog(title = "${functionName}_编辑", opType = LogAnnotionOpTypeEnum.EDIT)
|
||||
public ResponseData edit(@RequestBody @Validated(${ClassName}Param.edit.class) ${ClassName}Param ${className}Param) {
|
||||
${className}Service.edit(${className}Param);
|
||||
${className}Service.edit(${className}Param);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ package ${packageName}.${modularName}.${busName}.param;
|
|||
|
||||
import com.cn.xiaonuo.core.pojo.base.param.BaseParam;
|
||||
import lombok.Data;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.*;
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.javaType} == 'BigDecimal')
|
||||
|
@ -42,11 +44,31 @@ import java.math.BigDecimal;
|
|||
@Data
|
||||
public class ${ClassName}Param extends BaseParam {
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.columnKey} == "PRI")
|
||||
|
||||
/**
|
||||
* ${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
|
||||
#if(${column.javaType} == "Date")
|
||||
private String ${column.javaName};
|
||||
#else
|
||||
private ${column.javaType} ${column.javaName};
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
|
||||
}
|
||||
|
|
|
@ -60,18 +60,11 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
|
|||
if (ObjectUtil.isNotNull(${className}Param)) {
|
||||
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.primaryKeyFlag})
|
||||
#if (${column.queryWhether} == "Y")
|
||||
// 根据${column.columnComment} 查询
|
||||
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
|
||||
}
|
||||
|
@ -80,26 +73,7 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
|
|||
|
||||
@Override
|
||||
public List<${ClassName}> list(${ClassName}Param ${className}Param) {
|
||||
LambdaQueryWrapper<${ClassName}> queryWrapper = new LambdaQueryWrapper<>();
|
||||
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);
|
||||
return this.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -113,9 +87,9 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
|
|||
@Override
|
||||
public void delete(${ClassName}Param ${className}Param) {
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.primaryKeyFlag})
|
||||
#if (${column.columnKey} == "PRI")
|
||||
this.removeById(${className}Param.get${column.columnKeyName}());
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
|
@ -140,9 +114,9 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
|
|||
*/
|
||||
private ${ClassName} query${ClassName}(${ClassName}Param ${className}Param) {
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.primaryKeyFlag})
|
||||
#if (${column.columnKey} == "PRI")
|
||||
${ClassName} ${className} = this.getById(${className}Param.get${column.columnKeyName}());
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
if (ObjectUtil.isNull(${className})) {
|
||||
throw new ServiceException(${ClassName}ExceptionEnum.NOT_EXIST);
|
||||
|
|
|
@ -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
|
|
@ -10,18 +10,87 @@
|
|||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
#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
|
||||
label="${column.columnComment}"
|
||||
:labelCol="labelCol"
|
||||
:wrapperCol="wrapperCol"
|
||||
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>
|
||||
#end
|
||||
#end
|
||||
|
||||
#end
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</a-modal>
|
||||
|
@ -40,6 +109,18 @@
|
|||
xs: { span: 24 },
|
||||
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,
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this)
|
||||
|
@ -49,6 +130,14 @@
|
|||
// 初始化方法
|
||||
add (record) {
|
||||
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,7 +147,19 @@
|
|||
this.confirmLoading = true
|
||||
validateFields((errors, values) => {
|
||||
if (!errors) {
|
||||
${className}Add(values).then((res) => {
|
||||
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) => {
|
||||
if (res.success) {
|
||||
this.$message.success('新增成功')
|
||||
this.confirmLoading = false
|
||||
|
@ -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 () {
|
||||
this.form.resetFields()
|
||||
this.visible = false
|
||||
|
|
|
@ -10,10 +10,16 @@
|
|||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.primaryKeyFlag})
|
||||
<a-form-item v-show="false">
|
||||
<a-input v-decorator="['${column.columnName}']" />
|
||||
</a-form-item>
|
||||
#if(${column.columnKey} == "PRI")
|
||||
<a-form-item v-show="false"><a-input v-decorator="['${column.javaName}']" /></a-form-item>
|
||||
#else
|
||||
#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
|
||||
label="${column.columnComment}"
|
||||
|
@ -21,17 +27,94 @@
|
|||
:wrapperCol="wrapperCol"
|
||||
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>
|
||||
#end
|
||||
#end
|
||||
|
||||
#end
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<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'
|
||||
export default {
|
||||
data () {
|
||||
|
@ -44,33 +127,97 @@
|
|||
xs: { span: 24 },
|
||||
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,
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
#if($DateQuery == "Y")
|
||||
moment,
|
||||
#end
|
||||
// 初始化方法
|
||||
edit (record) {
|
||||
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(() => {
|
||||
this.form.setFieldsValue(
|
||||
{
|
||||
#set ($editDataColumn = 0)
|
||||
#foreach ($column in $tableField)
|
||||
${column.columnName}: record.${column.columnName}#if($foreach.hasNext),
|
||||
#end
|
||||
#if(${column.columnKey} == "PRI")
|
||||
${column.javaName}: record.${column.javaName}#if($foreach.hasNext),
|
||||
#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)
|
||||
#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 () {
|
||||
const { form: { validateFields } } = this
|
||||
this.confirmLoading = true
|
||||
validateFields((errors, values) => {
|
||||
if (!errors) {
|
||||
${className}Edit(values).then((res) => {
|
||||
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) => {
|
||||
if (res.success) {
|
||||
this.$message.success('编辑成功')
|
||||
this.confirmLoading = false
|
||||
|
@ -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 () {
|
||||
this.form.resetFields()
|
||||
this.visible = false
|
||||
|
|
|
@ -33,6 +33,9 @@ import java.util.*;
|
|||
#if (${column.javaType} == 'BigDecimal')
|
||||
import java.math.BigDecimal;
|
||||
#end
|
||||
#if(${column.javaType} == "Date")
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
#end
|
||||
#end
|
||||
|
||||
/**
|
||||
|
@ -47,18 +50,22 @@ import java.math.BigDecimal;
|
|||
public class ${ClassName} extends BaseEntity {
|
||||
|
||||
#foreach ($column in $tableField)
|
||||
#if (${column.primaryKeyFlag})
|
||||
#if (${column.columnKey} == "PRI")
|
||||
/**
|
||||
* 主键
|
||||
* ${column.columnComment}
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private ${column.javaType} ${column.columnName};
|
||||
#else
|
||||
private ${column.javaType} ${column.javaName};
|
||||
#elseif (${column.whetherCommon} == 'N')
|
||||
|
||||
/**
|
||||
* ${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
|
||||
|
||||
}
|
||||
|
|
|
@ -1,91 +1,243 @@
|
|||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="table-page-search-wrapper" v-if="hasPerm('${className}:page')">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="48">
|
||||
<div>
|
||||
<a-card :bordered="false" :bodyStyle="tstyle">
|
||||
#if($queryWhetherList.size() > 0)
|
||||
<div class="table-page-search-wrapper" v-if="hasPerm('${className}:page')">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="48">
|
||||
#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-form-item label="${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-col>
|
||||
#end
|
||||
#elseif(${column.effectType} == 'inputnumber')
|
||||
#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 style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
#end
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
#end
|
||||
</a-card>
|
||||
<a-card :bordered="false">
|
||||
<s-table
|
||||
ref="table"
|
||||
size="default"
|
||||
:columns="columns"
|
||||
:data="loadData"
|
||||
:alert="true"
|
||||
#foreach ($column in $tableField)
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="${column.columnComment}" >
|
||||
<a-input v-model="queryParam.${column.columnName}" allow-clear placeholder="请输入${column.columnComment}"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
#if (${column.columnKey} == "PRI")
|
||||
:rowKey="(record) => record.${column.javaName}"
|
||||
#end
|
||||
<a-col :md="!advanced && 8 || 24" :sm="24">
|
||||
<span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
|
||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
||||
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator" v-if="hasPerm('${className}:add')" >
|
||||
<a-button type="primary" v-if="hasPerm('${className}:add')" icon="plus" @click="$refs.addForm.add()">新增${functionName}</a-button>
|
||||
</div>
|
||||
<s-table
|
||||
ref="table"
|
||||
size="default"
|
||||
:columns="columns"
|
||||
:data="loadData"
|
||||
:alert="true"
|
||||
#end
|
||||
: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.primaryKeyFlag})
|
||||
:rowKey="(record) => record.${column.columnName}"
|
||||
#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
|
||||
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
>
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<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-popconfirm v-if="hasPerm('${className}:delete')" placement="topRight" title="确认删除?" @confirm="() => ${className}Delete(record)">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</s-table>
|
||||
<add-form ref="addForm" @ok="handleOk" />
|
||||
<edit-form ref="editForm" @ok="handleOk" />
|
||||
</a-card>
|
||||
#end
|
||||
</span>
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<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-popconfirm v-if="hasPerm('${className}:delete')" placement="topRight" title="确认删除?" @confirm="() => ${className}Delete(record)">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</s-table>
|
||||
<add-form ref="addForm" @ok="handleOk" />
|
||||
<edit-form ref="editForm" @ok="handleOk" />
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
<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'
|
||||
#end
|
||||
#if($DateQuery == "Y")
|
||||
import moment from 'moment'
|
||||
#end
|
||||
import { ${className}Page, ${className}Delete } from '@/api/modular/main/${busName}/${className}Manage'
|
||||
import addForm from './addForm.vue'
|
||||
import editForm from './editForm.vue'
|
||||
export default {
|
||||
components: {
|
||||
#if($Ellipsis == "Y")
|
||||
Ellipsis,
|
||||
#end
|
||||
STable,
|
||||
addForm,
|
||||
editForm
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
#if($queryWhetherList.size() > 2)
|
||||
// 高级搜索 展开/关闭
|
||||
advanced: false,
|
||||
#end
|
||||
// 查询参数
|
||||
queryParam: {},
|
||||
// 表头
|
||||
columns: [
|
||||
#set ($columnDataColumns = 0)
|
||||
#foreach ($column in $tableField)
|
||||
#if (!${column.primaryKeyFlag})
|
||||
{
|
||||
title: '${column.columnComment}',
|
||||
dataIndex: '${column.columnName}'
|
||||
}#if($foreach.hasNext),
|
||||
#end
|
||||
#end
|
||||
#if (${column.whetherTable} == "Y")
|
||||
#set ($columnDataColumns = $columnDataColumns+1)
|
||||
{
|
||||
title: '${column.columnComment}',
|
||||
align: 'center',
|
||||
#if(${column.whetherRetract} == "Y" || ${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox')
|
||||
dataIndex: '${column.javaName}',
|
||||
scopedSlots: { customRender: '${column.javaName}scopedSlots' }
|
||||
#else
|
||||
dataIndex: '${column.javaName}'
|
||||
#end
|
||||
}#if($foreach.hasNext && ($columnDataColumns != $columnData)),
|
||||
#else
|
||||
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
],
|
||||
tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
|
||||
// 加载数据方法 必须为 Promise 对象
|
||||
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) => {
|
||||
#end
|
||||
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: [],
|
||||
selectedRows: []
|
||||
}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
if (this.hasPerm('${className}:edit') || this.hasPerm('${className}:delete')) {
|
||||
|
@ -96,10 +248,43 @@
|
|||
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: {
|
||||
${className}Delete (record) {
|
||||
${className}Delete(record).then((res) => {
|
||||
#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).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success('删除成功')
|
||||
this.$refs.table.refresh()
|
||||
|
@ -108,9 +293,20 @@
|
|||
}
|
||||
})
|
||||
},
|
||||
#if($queryWhetherList.size() > 2)
|
||||
toggleAdvanced () {
|
||||
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 () {
|
||||
this.$refs.table.refresh()
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue