JEECG 3.7.8版本发布

jeecg_3.7.8
zhangdaiscott@163.com 7 years ago
parent c88ee4ee05
commit 5225739c86

@ -1,7 +1,7 @@
JEECG 微云快速开发平台
===============
当前最新版本: 3.7.7发布日期20180716
当前最新版本: 3.7.8发布日期20180806
JEECG微服务架构 [jeecg-p3 1.0版](https://gitee.com/jeecg/jeecg-p3)
@ -80,7 +80,7 @@ JEECG
* <b>技术点二十五:</b>支持二级管理员,权限细化管理</br>
* <b>技术点二十六:</b>代码生成器支持resutful接口生成</br>
* JEECG V3.7.7, 经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度</br>
* JEECG V3.7.8, 经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度</br>
* 支持多种浏览器: IE, 火狐, Google 等</br>
* 支持数据库: Mysql,Oracle,Postgre,SqlServer等</br>
* 基础权限: 用户,角色,菜单权限,按钮权限,数据权限</br>

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -5,9 +5,9 @@
1.oracle 导入命令
说明: jeecg脚本导出用户是scott
imp scott/tiger@orcl file=jeecg_3.7.7_oracle11g.dmp
imp scott/tiger@orcl file=jeecg_3.7.8_oracle11g.dmp
导入其他用户的表
imp jeecgos/jeecgos@orcl file=/opt/datatmp/jeecg_3.7.7_oracle11g.dmp fromuser=scott touser=jeecgos ignore=y commit=y buffer=300000000 feedback=10000
imp jeecgos/jeecgos@orcl file=/opt/datatmp/jeecg_3.7.8_oracle11g.dmp fromuser=scott touser=jeecgos ignore=y commit=y buffer=300000000 feedback=10000
2. oracle、SqlServer脚步索引会有部分丢失为了系统性能请自行补加索引。
@ -16,6 +16,6 @@
4.老版本数据库增量升级
执行老版本升级SQL脚本
3.7.6升级到3.7.7
docs/老版本增量升级/jeecg_mysql-3.7.6-update-3.7.7.sql
3.7.7升级到3.7.8
docs/老版本增量升级/jeecg_mysql-3.7.7-update-3.7.8.sql

@ -1,77 +0,0 @@
ALTER TABLE `t_s_log`
MODIFY COLUMN `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户账号' AFTER `userid`;
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('402881f263dd1d8f0163de06421c0067', NULL, '1', '下拉列表控件', '36', 'jeecgFormDemoController.do?dropDownDatagrid', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', '', 'admin', '管理员', 'admin', '2018-06-08 19:56:47', '2018-06-08 14:12:22', '管理员');
INSERT INTO `t_s_role_function` (`ID`, `operation`, `functionid`, `roleid`, `datarule`) VALUES ('402881f263dd1d8f0163de0660e70069', NULL, '402881f263dd1d8f0163de06421c0067', '8a8ab0b246dc81120146dc8181870050', NULL);
ALTER TABLE `t_s_function`
ADD INDEX `index_group_url_type` (`functionurl`, `functiontype`);
update cgform_head set sub_table_str = null where id = '4028b881535b12bd01535b1ae3680001';
DROP TABLE IF EXISTS `jeecg_demo_excel`;
CREATE TABLE `jeecg_demo_excel` (
`id` varchar(36) NOT NULL COMMENT 'id',
`name` varchar(100) DEFAULT NULL COMMENT '姓名',
`sex` varchar(3) DEFAULT NULL COMMENT '性别',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`depart` varchar(36) DEFAULT NULL COMMENT '关联部门',
`fd_replace` varchar(255) DEFAULT NULL COMMENT '测试替换',
`fd_convert` varchar(255) DEFAULT NULL COMMENT '测试转换',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='excel导入导出示例';
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('4028f6816402785c0164027969d20001', NULL, '1', 'excel导入导出示例', '99', 'jeecgDemoExcelController.do?list', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', '', 'admin', '管理员', NULL, NULL, '2018-06-15 16:04:28', NULL);
INSERT INTO `jeecg_demo_excel` (`id`, `name`, `sex`, `birthday`, `depart`, `fd_replace`, `fd_convert`) VALUES ('4028f6816402f8e30164032b767c0001', '威震天', '0', '2014-06-10 00:00:00', '402880e447e99cf10147e9a03b320003', '1', '200');
INSERT INTO `jeecg_demo_excel` (`id`, `name`, `sex`, `birthday`, `depart`, `fd_replace`, `fd_convert`) VALUES ('4028f6816402f8e30164032c00ab0005', '白居易', '0', '2014-06-10 00:00:00', '402880e447e9a9570147e9b677320003', '1', '600');
INSERT INTO `jeecg_demo_excel` (`id`, `name`, `sex`, `birthday`, `depart`, `fd_replace`, `fd_convert`) VALUES ('4028f6816402f8e30164032d7d010007', '刘诗诗', '1', '1993-06-01 00:00:00', '8a8ab0b246dc81120146dc8180bd0018', '0', '1000');
INSERT INTO `t_s_muti_lang`(`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('402881026416bfa8016416cb9ed60007', 'common.range1to10', 'The type in the range of 1~10 characters', 'en', '2018-06-19 14:46:41', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang`(`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('402881026416bfa8016416cb5fc20005', 'common.range1to10', '类型编码在1~10位字符', 'zh-cn', '2018-06-19 14:46:24', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang`(`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('402881026416bfa8016416c82a160003', 'common.range1to50', 'The type in the range of 1~50 characters', 'en', '2018-06-19 14:42:54', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang`(`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('402881026416bfa8016416c774de0001', 'common.range1to50', '类型范围在1~50位字符', 'zh-cn', '2018-06-19 14:42:08', 'admin', '管理员', NULL, NULL, NULL);
ALTER TABLE `t_s_type`
ADD COLUMN `order_num` int(3) NULL COMMENT '序号' AFTER `create_name`;
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028f681641bf52b01641c28c724000b', 'dict.order', 'Serial number', 'en', '2018-06-20 15:46:31', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028f681641bf52b01641c2802030009', 'dict.order', '序号', 'zh-cn', '2018-06-20 15:45:41', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('4028f681643b2e6401643b3aeba50001', NULL, '1', '按钮折叠demo', '99', 'jeecgListDemoController.do?collapseDemo', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', '', 'admin', '管理员', NULL, NULL, '2018-06-26 16:34:34', NULL);
ALTER TABLE `t_s_operation`
ADD COLUMN `processnode_id` varchar(32) NULL DEFAULT NULL COMMENT '流程节点id' AFTER `operationtype`;
UPDATE `t_s_function` SET `ID`='402881f263dd1d8f0163de06421c0067', `functioniframe`=NULL, `functionlevel`='1', `functionname`='下拉列表控件', `functionorder`='36', `functionurl`='jeecgFormDemoController.do?dropDownDatagrid', `parentfunctionid`='4028f6815af3ce54015af3d1ad610001', `iconid`='8a8ab0b246dc81120146dc8180460000', `desk_iconid`='8a8ab0b246dc81120146dc8180dd001e', `functiontype`='0', `function_icon_style`='fa-angle-down', `create_by`='admin', `create_name`='管理员', `update_by`='admin', `update_date`='2018-06-28 11:05:22', `create_date`='2018-06-08 14:12:22', `update_name`='管理员' WHERE (`ID`='402881f263dd1d8f0163de06421c0067');
UPDATE `t_s_function` SET `ID`='4028f6816402785c0164027969d20001', `functioniframe`=NULL, `functionlevel`='1', `functionname`='excel导入导出示例', `functionorder`='99', `functionurl`='jeecgDemoExcelController.do?list', `parentfunctionid`='4028f6815af3ce54015af3d1ad610001', `iconid`='8a8ab0b246dc81120146dc8180460000', `desk_iconid`='8a8ab0b246dc81120146dc8180dd001e', `functiontype`='0', `function_icon_style`='fa-arrows-v', `create_by`='admin', `create_name`='管理员', `update_by`='admin', `update_date`='2018-06-28 10:57:42', `create_date`='2018-06-15 16:04:28', `update_name`='管理员' WHERE (`ID`='4028f6816402785c0164027969d20001');
UPDATE `t_s_function` SET `ID`='4028f681643b2e6401643b3aeba50001', `functioniframe`=NULL, `functionlevel`='1', `functionname`='按钮折叠demo', `functionorder`='99', `functionurl`='jeecgListDemoController.do?collapseDemo', `parentfunctionid`='4028f6815af3ce54015af3d1ad610001', `iconid`='8a8ab0b246dc81120146dc8180460000', `desk_iconid`='8a8ab0b246dc81120146dc8180dd001e', `functiontype`='0', `function_icon_style`='fa-arrow-circle-down', `create_by`='admin', `create_name`='管理员', `update_by`='admin', `update_date`='2018-06-28 11:05:51', `create_date`='2018-06-26 16:34:34', `update_name`='管理员' WHERE (`ID`='4028f681643b2e6401643b3aeba50001');
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028918164456ce001644580c16e0007', 'common.user.interfaceUser', '接口用户不允许登录', 'zh-cn', '2018-06-28 16:27:03', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028918164456ce00164458189cf0009', 'common.user.interfaceUser', 'Interface user does not allow login', 'en', '2018-06-28 16:27:55', 'admin', '管理员', NULL, NULL, NULL);
update cgform_ftl set FTL_CONTENT = REPLACE(FTL_CONTENT, '/curdtools_zh-cn.js', '/curdtools.js');
update cgform_ftl set FTL_CONTENT = REPLACE(FTL_CONTENT, '/jquery-1.8.3.js"></script>', '/jquery-1.8.3.js"></script><script type="text/javascript" src="plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>');
ALTER TABLE `t_s_sms_template`
ADD COLUMN `template_code` varchar(32) NULL COMMENT '模板CODE' AFTER `template_type`;
ALTER TABLE `t_s_sms_template`
ADD UNIQUE INDEX `uniq_templatecode` (`template_code`);
ALTER TABLE `t_s_sms_template`
ADD COLUMN `template_test_json` varchar(1000) NULL COMMENT '模板测试json' AFTER `template_content`;
ALTER TABLE `t_s_sms`
ADD COLUMN `is_read` smallint(2) NOT NULL DEFAULT 0 COMMENT '是否已阅读' AFTER `es_status`;
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('40286081646932eb01646935152c0005', 'common.templateCode', '模板CODE', 'zh-cn', '2018-07-05 14:50:43', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('40286081646932eb01646935698d0007', 'common.templateCode', 'Template Code', 'en', '2018-07-05 14:51:05', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('402860816469f4aa01646a2da0cc0026', 'common.isRead', '状态', 'zh-cn', '2018-07-05 19:22:12', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang` (`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('402860816469f4aa01646a2dcf1c0028', 'common.isRead', 'Status', 'en', '2018-07-05 19:22:24', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_sms_template` (`id`, `template_type`, `template_code`, `template_name`, `template_content`, `template_test_json`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028608164691b000164693108140003', '3', 'SYS001', '催办:${taskName}', '${userName},您好!\r\n请前待办任务办理事项${taskName}\r\n\r\n\r\n===========================\r\n此消息由系统发出', '{\r\n\"taskName\":\"HR审批\",\r\n\"userName\":\"admin\"\r\n}', '2018-07-05 14:46:18', 'admin', '管理员', '2018-07-05 18:31:34', 'admin', '管理员');
INSERT INTO `t_s_type` (`ID`, `typecode`, `typename`, `typepid`, `typegroupid`, `create_date`, `create_name`, `order_num`) VALUES ('4028608164691b00016469289a040001', '3', '系统提醒模板', NULL, '8a71b40e4a38319b014a3858fca40018', '2018-07-05 14:37:05', '管理员', '3');
update t_s_muti_lang set lang_context = '3.7.7' where id in ('4028ef81533c078201533c08e2370003','4028ef81533c078201533c08b1ca0001');
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('40289181647d9d4a01647daaa4ce0001', NULL, '1', '表单原生组件二', '4', 'jeecgFormDemoController.do?topjuiDemo', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'fa-code', 'admin', '管理员', 'admin', '2018-07-09 14:53:08', '2018-07-09 14:11:33', '管理员');
UPDATE `t_s_function` SET `ID`='40289181647d9d4a01647daaa4ce0001', `functioniframe`=NULL, `functionlevel`='1', `functionname`='表单原生组件二', `functionorder`='4', `functionurl`='jeecgFormDemoController.do?natures', `parentfunctionid`='4028f6815af3ce54015af3d1ad610001', `iconid`='8a8ab0b246dc81120146dc8180460000', `desk_iconid`='8a8ab0b246dc81120146dc8180dd001e', `functiontype`='0', `function_icon_style`='fa-code', `create_by`='admin', `create_name`='管理员', `update_by`='admin', `update_date`='2018-07-09 18:29:31', `create_date`='2018-07-09 14:11:33', `update_name`='管理员' WHERE (`ID`='40289181647d9d4a01647daaa4ce0001');
CREATE TABLE `t_s_dict_table_config` (
`id` varchar(36) NOT NULL,
`table_name` varchar(100) default NULL COMMENT '表名',
`value_col` varchar(50) default NULL COMMENT '值字段名',
`text_col` varchar(50) default NULL COMMENT '文本字段名',
`dict_condition` varchar(255) default NULL COMMENT '字典表查询条件',
`isvalid` varchar(32) default NULL COMMENT '是否启用',
`create_name` varchar(50) default NULL COMMENT '创建人名称',
`create_by` varchar(50) default NULL COMMENT '创建人登录名称',
`create_date` datetime default NULL COMMENT '创建日期',
`update_name` varchar(50) default NULL COMMENT '更新人名称',
`update_by` varchar(50) default NULL COMMENT '更新人登录名称',
`update_date` datetime default NULL COMMENT '更新日期',
`sys_org_code` varchar(50) default NULL COMMENT '所属部门',
`sys_company_code` varchar(50) default NULL COMMENT '所属公司',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_tablename_valuecol_textcol` USING BTREE (`table_name`,`value_col`,`text_col`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典表授权配置';
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('40286081648332f8016483352acf0001', NULL, '1', '字典表授权配置', '7', 'tSDictTableConfigController.do?list', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', '', 'admin', '管理员', 'admin', '2018-07-10 16:01:17', '2018-07-10 16:00:57', '管理员');
update t_s_muti_lang set lang_context = '3.7.7' where lang_key ='system.version.number';

@ -0,0 +1,12 @@
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('402881fa64a1ca500164a1d549e40001', NULL, '1', 'Bootstrap树形列表', '5', 'jeecgFormDemoController.do?bootstrapTreeListDemo', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'fa-tree', 'admin', '管理员', 'admin', '2018-07-16 16:17:45', '2018-07-16 14:44:27', '管理员');
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('4028f68164caf6520164cb5ecade0006', NULL, '1', '检索下拉框', '100', 'jeecgListDemoController.do?suggest', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', '', 'admin', '管理员', NULL, NULL, '2018-07-24 16:19:04', NULL);
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('4028f68164caf6520164cb5d79670004', NULL, '1', 'plupload上传1', '100', 'jeecgFormDemoController.do?plupload1', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', '', 'admin', '管理员', NULL, NULL, '2018-07-24 16:17:38', NULL);
UPDATE `t_s_function` SET `function_icon_style`='fa-list-ol' WHERE (`ID`='4028f68164caf6520164cb5ecade0006');
UPDATE `t_s_function` SET `function_icon_style`='fa-upload' WHERE (`ID`='4028f68164caf6520164cb5d79670004');
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('4028f68164cfec7b0164d07373540002', NULL, '1', 'plupload上传2', '100', 'jeecgFormDemoController.do?plupload2', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'fa-upload', 'admin', '管理员', NULL, NULL, '2018-07-25 15:59:44', NULL);
INSERT INTO `t_s_function` (`ID`, `functioniframe`, `functionlevel`, `functionname`, `functionorder`, `functionurl`, `parentfunctionid`, `iconid`, `desk_iconid`, `functiontype`, `function_icon_style`, `create_by`, `create_name`, `update_by`, `update_date`, `create_date`, `update_name`) VALUES ('4028810a64e8d94d0164e9033a580005', NULL, '1', '单据打印', '10', 'jeecgFormDemoController.do?printingDemo', '4028f6815af3ce54015af3d1ad610001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'fa-print', 'admin', '管理员', 'admin', '2018-07-30 14:30:52', '2018-07-30 10:27:40', '管理员');
UPDATE `t_s_icon` SET `extend` = 'png', `iconclas` = 'deskIcon', `content` = NULL, `name` = 'Online表单开发', `path` = 'plug-in/sliding/icon/Finder.png', `type` = 3 WHERE `ID` = '8a8ab0b246dc81120146dc818102002c';
INSERT INTO `t_s_muti_lang`(`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028810264f4f97d0164f528560a0010', 'please.input.table.content', 'Please Input Table Content', 'en', '2018-08-01 19:03:39', 'admin', '管理员', NULL, NULL, NULL);
INSERT INTO `t_s_muti_lang`(`id`, `lang_key`, `lang_context`, `lang_code`, `create_date`, `create_by`, `create_name`, `update_date`, `update_by`, `update_name`) VALUES ('4028810264f4f97d0164f527c5dd000e', 'please.input.table.content', '请填写表描述!', 'zh-cn', '2018-08-01 19:03:02', 'admin', '管理员', NULL, NULL, NULL);
UPDATE `cgform_field` SET `id`='ff8080816021b031016021fced19000f', `content`='收货人', `create_by`='admin', `create_date`='2017-12-04 22:45:12', `create_name`='管理员', `dict_field`='receiver_name,receiver_mobile', `dict_table`='user_msg', `dict_text`='realname,account', `field_default`='', `field_href`='', `field_length`='120', `field_name`='receiver_name', `field_valid_type`='', `field_must_input`='N', `is_key`='N', `is_null`='Y', `is_query`='Y', `is_show`='Y', `is_show_list`='Y', `length`='56', `main_field`='', `main_table`='', `old_field_name`='receiver_name', `order_num`='11', `point_length`='0', `query_mode`='single', `show_type`='popup', `type`='string', `update_by`='admin', `update_date`='2018-08-02 20:14:54', `update_name`='管理员', `table_id`='ff8080816021b031016021fced100004', `extend_json`='', `fill_rule_code`='' WHERE (`id`='ff8080816021b031016021fced19000f');
update t_s_muti_lang set lang_context = '3.7.8' where lang_key ='system.version.number';

@ -1,527 +0,0 @@
ALTER TABLE [dbo].[t_s_log] ALTER COLUMN [username] nvarchar(50) COLLATE Chinese_PRC_CI_AS
GO
CREATE INDEX [index_group_url_type] ON [dbo].[t_s_function]
([functionurl] ASC, [functiontype] ASC)
GO
update [dbo].[cgform_head] set sub_table_str = null where id = '4028b881535b12bd01535b1ae3680001';
CREATE TABLE [dbo].[jeecg_demo_excel] (
[id] nvarchar(36) NOT NULL ,
[name] nvarchar(100) NULL ,
[sex] nvarchar(3) NULL ,
[birthday] datetime2(7) NULL ,
[depart] nvarchar(36) NULL ,
[fd_replace] nvarchar(255) NULL ,
[fd_convert] nvarchar(255) NULL
)
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
NULL, NULL)) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'excel导入导出示例'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'excel导入导出示例'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'id')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'id'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'id'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'name')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'姓名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'name'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'姓名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'name'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'sex')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'性别'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'sex'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'性别'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'sex'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'birthday')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'生日'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'birthday'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'生日'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'birthday'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'depart')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'关联部门'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'depart'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'关联部门'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'depart'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'fd_replace')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'测试替换'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'fd_replace'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'测试替换'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'fd_replace'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'jeecg_demo_excel',
'COLUMN', N'fd_convert')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'测试转换'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'fd_convert'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'测试转换'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'jeecg_demo_excel'
, @level2type = 'COLUMN', @level2name = N'fd_convert'
GO
ALTER TABLE [dbo].[jeecg_demo_excel] ADD PRIMARY KEY ([id])
GO
-- ----------------------------
-- Records of jeecg_demo_excel
-- ----------------------------
INSERT INTO [dbo].[jeecg_demo_excel] ([id], [name], [sex], [birthday], [depart], [fd_replace], [fd_convert]) VALUES (N'4028f6816402f8e30164032b767c0001', N'威震天', N'0', N'2014-06-10 00:00:00.0000000', N'402880e447e99cf10147e9a03b320003', N'1', N'200')
GO
GO
INSERT INTO [dbo].[jeecg_demo_excel] ([id], [name], [sex], [birthday], [depart], [fd_replace], [fd_convert]) VALUES (N'4028f6816402f8e30164032c00ab0005', N'白居易', N'0', N'2014-06-10 00:00:00.0000000', N'402880e447e9a9570147e9b677320003', N'1', N'600')
GO
GO
INSERT INTO [dbo].[jeecg_demo_excel] ([id], [name], [sex], [birthday], [depart], [fd_replace], [fd_convert]) VALUES (N'4028f6816402f8e30164032d7d010007', N'刘诗诗', N'1', N'1993-06-01 00:00:00.0000000', N'8a8ab0b246dc81120146dc8180bd0018', N'0', N'1000')
GO
GO
INSERT INTO [dbo].[t_s_function] ([ID], [functioniframe], [functionlevel], [functionname], [functionorder], [functionurl], [parentfunctionid], [iconid], [desk_iconid], [functiontype], [function_icon_style], [create_by], [create_name], [update_by], [update_date], [create_date], [update_name]) VALUES (N'402881f263dd1d8f0163de06421c0067', NULL, '1', N'下拉列表控件', N'36', N'jeecgFormDemoController.do?dropDownDatagrid', N'4028f6815af3ce54015af3d1ad610001', N'8a8ab0b246dc81120146dc8180460000', N'8a8ab0b246dc81120146dc8180dd001e', '0', N'fa-angle-down', N'admin', N'管理员', N'admin', '2018-06-28 11:05:22.0000000', '2018-06-08 14:12:22.0000000', N'管理员');
INSERT INTO [dbo].[t_s_function] ([ID], [functioniframe], [functionlevel], [functionname], [functionorder], [functionurl], [parentfunctionid], [iconid], [desk_iconid], [functiontype], [function_icon_style], [create_by], [create_name], [update_by], [update_date], [create_date], [update_name]) VALUES (N'4028f6816402785c0164027969d20001', NULL, '1', N'excel导入导出示例', N'99', N'jeecgDemoExcelController.do?list', N'4028f6815af3ce54015af3d1ad610001', N'8a8ab0b246dc81120146dc8180460000', N'8a8ab0b246dc81120146dc8180dd001e', '0', N'fa-arrows-v', N'admin', N'管理员', N'admin', '2018-06-28 10:57:42.0000000', '2018-06-15 16:04:28.0000000', N'管理员');
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'402881026416bfa8016416c774de0001', N'common.range1to50', N'类型范围在1~50位字符', N'zh-cn', '2018-06-19 14:42:08.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'402881026416bfa8016416c82a160003', N'common.range1to50', N'The type in the range of 1~50 characters', N'en', '2018-06-19 14:42:54.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'402881026416bfa8016416cb5fc20005', N'common.range1to10', N'类型编码在1~10位字符', N'zh-cn', '2018-06-19 14:46:24.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'402881026416bfa8016416cb9ed60007', N'common.range1to10', N'The type in the range of 1~10 characters', N'en', '2018-06-19 14:46:41.0000000', N'admin', N'管理员', NULL, NULL, NULL);
ALTER TABLE [dbo].[t_s_type]
ADD [order_num] int NULL
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_type',
'COLUMN', N'order_num')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'序号'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_type'
, @level2type = 'COLUMN', @level2name = N'order_num'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'序号'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_type'
, @level2type = 'COLUMN', @level2name = N'order_num'
GO
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'4028f681641bf52b01641c2802030009', N'dict.order', N'序号', N'zh-cn', '2018-06-20 15:45:41.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'4028f681641bf52b01641c28c724000b', N'dict.order', N'Serial number', N'en', '2018-06-20 15:46:31.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_function] ([ID], [functioniframe], [functionlevel], [functionname], [functionorder], [functionurl], [parentfunctionid], [iconid], [desk_iconid], [functiontype], [function_icon_style], [create_by], [create_name], [update_by], [update_date], [create_date], [update_name]) VALUES (N'4028f681643b2e6401643b3aeba50001', NULL, '1', N'按钮折叠demo', N'99', N'jeecgListDemoController.do?collapseDemo', N'4028f6815af3ce54015af3d1ad610001', N'8a8ab0b246dc81120146dc8180460000', N'8a8ab0b246dc81120146dc8180dd001e', '0', N'fa-arrow-circle-down', N'admin', N'管理员', N'admin', '2018-06-28 11:05:51.0000000', '2018-06-26 16:34:34.0000000', N'管理员');
ALTER TABLE [dbo].[t_s_operation]
ADD [processnode_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_operation',
'COLUMN', N'processnode_id')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'流程节点id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_operation'
, @level2type = 'COLUMN', @level2name = N'processnode_id'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'流程节点id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_operation'
, @level2type = 'COLUMN', @level2name = N'processnode_id'
GO
UPDATE TOP(1) [dbo].[t_s_function] SET [ID]=N'402881f263dd1d8f0163de06421c0067', [functioniframe]=NULL, [functionlevel]='1', [functionname]=N'下拉列表控件', [functionorder]=N'36', [functionurl]=N'jeecgFormDemoController.do?dropDownDatagrid', [parentfunctionid]=N'4028f6815af3ce54015af3d1ad610001', [iconid]=N'8a8ab0b246dc81120146dc8180460000', [desk_iconid]=N'8a8ab0b246dc81120146dc8180dd001e', [functiontype]='0', [function_icon_style]=N'fa-angle-down', [create_by]=N'admin', [create_name]=N'管理员', [update_by]=N'admin', [update_date]='2018-06-28 11:05:22.0000000', [create_date]='2018-06-08 14:12:22.0000000', [update_name]=N'管理员' WHERE ([ID]=N'402881f263dd1d8f0163de06421c0067');
UPDATE TOP(1) [dbo].[t_s_function] SET [ID]=N'4028f6816402785c0164027969d20001', [functioniframe]=NULL, [functionlevel]='1', [functionname]=N'excel导入导出示例', [functionorder]=N'99', [functionurl]=N'jeecgDemoExcelController.do?list', [parentfunctionid]=N'4028f6815af3ce54015af3d1ad610001', [iconid]=N'8a8ab0b246dc81120146dc8180460000', [desk_iconid]=N'8a8ab0b246dc81120146dc8180dd001e', [functiontype]='0', [function_icon_style]=N'fa-arrows-v', [create_by]=N'admin', [create_name]=N'管理员', [update_by]=N'admin', [update_date]='2018-06-28 10:57:42.0000000', [create_date]='2018-06-15 16:04:28.0000000', [update_name]=N'管理员' WHERE ([ID]=N'4028f6816402785c0164027969d20001');
UPDATE TOP(1) [dbo].[t_s_function] SET [ID]=N'4028f681643b2e6401643b3aeba50001', [functioniframe]=NULL, [functionlevel]='1', [functionname]=N'按钮折叠demo', [functionorder]=N'99', [functionurl]=N'jeecgListDemoController.do?collapseDemo', [parentfunctionid]=N'4028f6815af3ce54015af3d1ad610001', [iconid]=N'8a8ab0b246dc81120146dc8180460000', [desk_iconid]=N'8a8ab0b246dc81120146dc8180dd001e', [functiontype]='0', [function_icon_style]=N'fa-arrow-circle-down', [create_by]=N'admin', [create_name]=N'管理员', [update_by]=N'admin', [update_date]='2018-06-28 11:05:51.0000000', [create_date]='2018-06-26 16:34:34.0000000', [update_name]=N'管理员' WHERE ([ID]=N'4028f681643b2e6401643b3aeba50001');
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'4028918164456ce001644580c16e0007', N'common.user.interfaceUser', N'接口用户不允许登录', N'zh-cn', '2018-06-28 16:27:03.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'4028918164456ce00164458189cf0009', N'common.user.interfaceUser', N'Interface user does not allow login', N'en', '2018-06-28 16:27:55.0000000', N'admin', N'管理员', NULL, NULL, NULL);
update [dbo].[cgform_ftl] set FTL_CONTENT = REPLACE(FTL_CONTENT, '/curdtools_zh-cn.js', '/curdtools.js');
update [dbo].[cgform_ftl] set FTL_CONTENT = REPLACE(FTL_CONTENT, '/jquery-1.8.3.js"></script>', '/jquery-1.8.3.js"></script><script type="text/javascript" src="plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>');
ALTER TABLE [dbo].[t_s_sms_template]
ADD [template_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_sms_template',
'COLUMN', N'template_code')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'模板CODE'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_sms_template'
, @level2type = 'COLUMN', @level2name = N'template_code'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'模板CODE'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_sms_template'
, @level2type = 'COLUMN', @level2name = N'template_code'
GO
CREATE UNIQUE INDEX [uniq_templatecode] ON [dbo].[t_s_sms_template]
([template_code] ASC)
WITH (IGNORE_DUP_KEY = ON)
GO
ALTER TABLE [dbo].[t_s_sms_template]
ADD [template_test_json] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_sms_template',
'COLUMN', N'template_test_json')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'模板测试json'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_sms_template'
, @level2type = 'COLUMN', @level2name = N'template_test_json'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'模板测试json'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_sms_template'
, @level2type = 'COLUMN', @level2name = N'template_test_json'
GO
ALTER TABLE [dbo].[t_s_sms]
ADD [is_read] smallint NOT NULL DEFAULT 0
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_sms',
'COLUMN', N'is_read')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'是否已阅读'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_sms'
, @level2type = 'COLUMN', @level2name = N'is_read'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'是否已阅读'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_sms'
, @level2type = 'COLUMN', @level2name = N'is_read'
GO
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'40286081646932eb01646935152c0005', N'common.templateCode', N'模板CODE', N'zh-cn', '2018-07-05 14:50:43.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'40286081646932eb01646935698d0007', N'common.templateCode', N'Template Code', N'en', '2018-07-05 14:51:05.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'402860816469f4aa01646a2da0cc0026', N'common.isRead', N'状态', N'zh-cn', '2018-07-05 19:22:12.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_muti_lang] ([id], [lang_key], [lang_context], [lang_code], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'402860816469f4aa01646a2dcf1c0028', N'common.isRead', N'Status', N'en', '2018-07-05 19:22:24.0000000', N'admin', N'管理员', NULL, NULL, NULL);
INSERT INTO [dbo].[t_s_sms_template] ([id], [template_type], [template_code], [template_name], [template_content], [template_test_json], [create_date], [create_by], [create_name], [update_date], [update_by], [update_name]) VALUES (N'4028608164691b000164693108140003', N'3', N'SYS001', N'催办:${taskName}', N'${userName},您好!
${taskName}
===========================
', N'{
"taskName":"HR审批",
"userName":"admin"
}', '2018-07-05 14:46:18.0000000', N'admin', N'', '2018-07-05 18:31:34.0000000', N'admin', N'');
INSERT INTO [dbo].[t_s_type] ([ID], [typecode], [typename], [typepid], [typegroupid], [create_date], [create_name], [order_num]) VALUES (N'4028608164691b00016469289a040001', N'3', N'系统提醒模板', NULL, N'8a71b40e4a38319b014a3858fca40018', '2018-07-05 14:37:05.0000000', N'管理员', '3');
INSERT INTO [dbo].[t_s_function] ([ID], [functioniframe], [functionlevel], [functionname], [functionorder], [functionurl], [parentfunctionid], [iconid], [desk_iconid], [functiontype], [function_icon_style], [create_by], [create_name], [update_by], [update_date], [create_date], [update_name]) VALUES (N'40289181647d9d4a01647daaa4ce0001', NULL, '1', N'表单原生组件二', N'4', N'jeecgFormDemoController.do?natures', N'4028f6815af3ce54015af3d1ad610001', N'8a8ab0b246dc81120146dc8180460000', N'8a8ab0b246dc81120146dc8180dd001e', '0', N'fa-code', N'admin', N'管理员', N'admin', '2018-07-09 18:29:31.0000000', '2018-07-09 14:11:33.0000000', N'管理员');
CREATE TABLE [dbo].[t_s_dict_table_config] (
[id] nvarchar(36) NOT NULL ,
[table_name] nvarchar(100) NULL ,
[value_col] nvarchar(50) NULL ,
[text_col] nvarchar(50) NULL ,
[dict_condition] nvarchar(255) NULL ,
[isvalid] nvarchar(32) NULL ,
[create_name] nvarchar(50) NULL ,
[create_by] nvarchar(50) NULL ,
[create_date] datetime2(7) NULL ,
[update_name] nvarchar(50) NULL ,
[update_by] nvarchar(50) NULL ,
[update_date] datetime2(7) NULL ,
[sys_org_code] nvarchar(50) NULL ,
[sys_company_code] nvarchar(50) NULL
)
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
NULL, NULL)) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'字典表授权配置'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'字典表授权配置'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'table_name')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'表名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'table_name'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'表名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'table_name'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'value_col')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'值字段名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'value_col'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'值字段名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'value_col'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'text_col')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'文本字段名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'text_col'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'文本字段名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'text_col'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'dict_condition')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'字典表查询条件'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'dict_condition'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'字典表查询条件'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'dict_condition'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'isvalid')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'是否启用'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'isvalid'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'是否启用'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'isvalid'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'create_name')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'创建人名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'create_name'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'创建人名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'create_name'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'create_by')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'创建人登录名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'create_by'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'创建人登录名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'create_by'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'create_date')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'创建日期'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'create_date'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'创建日期'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'create_date'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'update_name')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'更新人名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'update_name'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'更新人名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'update_name'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'update_by')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'更新人登录名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'update_by'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'更新人登录名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'update_by'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'update_date')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'更新日期'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'update_date'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'更新日期'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'update_date'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'sys_org_code')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'所属部门'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'sys_org_code'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'所属部门'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'sys_org_code'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N't_s_dict_table_config',
'COLUMN', N'sys_company_code')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'所属公司'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'sys_company_code'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'所属公司'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N't_s_dict_table_config'
, @level2type = 'COLUMN', @level2name = N'sys_company_code'
GO
-- ----------------------------
-- Indexes structure for table t_s_dict_table_config
-- ----------------------------
CREATE UNIQUE INDEX [uniq_tablename_valuecol_textcol] ON [dbo].[t_s_dict_table_config]
([table_name] ASC, [value_col] ASC, [text_col] ASC)
WITH (IGNORE_DUP_KEY = ON, STATISTICS_NORECOMPUTE = ON)
GO
-- ----------------------------
-- Primary Key structure for table t_s_dict_table_config
-- ----------------------------
ALTER TABLE [dbo].[t_s_dict_table_config] ADD PRIMARY KEY ([id])
GO
INSERT INTO [dbo].[t_s_function] ([ID], [functioniframe], [functionlevel], [functionname], [functionorder], [functionurl], [parentfunctionid], [iconid], [desk_iconid], [functiontype], [function_icon_style], [create_by], [create_name], [update_by], [update_date], [create_date], [update_name]) VALUES (N'40286081648332f8016483352acf0001', NULL, '1', N'字典表授权配置', N'7', N'tSDictTableConfigController.do?list', N'8a8ab0b246dc81120146dc8180d2001a', N'8a8ab0b246dc81120146dc8180460000', N'8a8ab0b246dc81120146dc8180dd001e', '0', N'', N'admin', N'管理员', N'admin', '2018-07-10 16:01:17.0000000', '2018-07-10 16:00:57.0000000', N'管理员');
update [dbo].[t_s_muti_lang] set lang_context = '3.7.7' where lang_key ='system.version.number';

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jeecgframework</groupId>
<artifactId>jeecg</artifactId>
<version>3.7.7</version>
<version>3.7.8</version>
<packaging>war</packaging>
<properties>
@ -17,7 +17,7 @@
<hibernate.version>4.1.0.Final</hibernate.version>
<hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
<!-- minidao -->
<minidao.version>1.6.6</minidao.version>
<minidao.version>1.6.7</minidao.version>
<!-- 数据库连接池 -->
<commons-dbcp.version>1.4</commons-dbcp.version>
@ -70,7 +70,7 @@
<!-- pinyin4j -->
<pinyin4j.version>2.5.1</pinyin4j.version>
<!-- jeasypoi 工具类 -->
<jeasypoi.version>2.1.8</jeasypoi.version>
<jeasypoi.version>2.1.9</jeasypoi.version>
<!-- cxf webservice -->
<cxf.version>3.0.2</cxf.version>
<!-- jacob -->
@ -96,7 +96,7 @@
<!-- jeecg-p3 -->
<jeecg-p3-core.version>1.0.0</jeecg-p3-core.version>
<jeecg-p3-biz-demo.version>1.0.2</jeecg-p3-biz-demo.version>
<jeecg-p3-biz-chat.version>1.0.4</jeecg-p3-biz-chat.version>
<jeecg-p3-biz-chat.version>1.0.5</jeecg-p3-biz-chat.version>
<jeecg-p3-biz-mail.version>1.0.0</jeecg-p3-biz-mail.version>
<!--maven插件变量-->

@ -1,6 +1,7 @@
package com.jeecg.demo.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -37,6 +38,7 @@ import org.springframework.web.servlet.ModelAndView;
import com.jeecg.demo.entity.JeecgDemoExcelEntity;
import com.jeecg.demo.service.JeecgDemoExcelServiceI;
import com.jeecg.demo.util.FreemarkerUtil;
import io.swagger.annotations.Api;
@ -307,6 +309,20 @@ public class JeecgDemoExcelController extends BaseController {
}
return j;
}
@RequestMapping("/ftl2word")
public void velocity2word(JeecgDemoExcelEntity jeecgDemoExcel,HttpServletRequest request,HttpServletResponse response) throws IOException{
try {
jeecgDemoExcel = this.jeecgDemoExcelService.getEntity(JeecgDemoExcelEntity.class, jeecgDemoExcel.getId());
List<Map<String,Object>> departs = this.systemService.findForJdbc("select id,departname from t_s_depart");
String docFileName ="word-模板导出测试.doc";
Map<String,Object> rootMap = new HashMap<String,Object>();
rootMap.put("info", jeecgDemoExcel);
rootMap.put("departs", departs);
FreemarkerUtil.createFile("ftl2doc.ftl", docFileName, rootMap, request, response, FreemarkerUtil.WORD_FILE);
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -1,8 +1,10 @@
package com.jeecg.demo.controller;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@ -21,6 +23,13 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
@ -459,6 +468,32 @@ public class JeecgFormDemoController extends BaseController {
j.setMsg(message);
return j;
}
/**
*
* @author taoYan
* @since 201882
*/
@RequestMapping(params = "updateDoc")
@ResponseBody
public AjaxJson updateDoc(HttpServletRequest request) {
AjaxJson j = new AjaxJson();
try {
String id = request.getParameter("id");
String title = request.getParameter("title");
TSDocument document = systemService.getEntity(TSDocument.class,id);
document.setDocumentTitle(title);
systemService.updateEntitie(document);
j.setSuccess(true);
j.setMsg("文件标题修改成功!");
} catch (Exception e) {
j.setSuccess(false);
j.setMsg("文件标题修改失败!");
}
return j;
}
/**
*
@ -835,4 +870,146 @@ public class JeecgFormDemoController extends BaseController {
return new ModelAndView("com/jeecg/demo/dropDownDatagrid");
}
}
/**
* bootstrap
*
* @return
*/
@RequestMapping(params = "bootstrapTreeListDemo")
public ModelAndView bootstrapTreeListDemo(ModelMap model) {
return new ModelAndView("com/jeecg/demo/bootstrapTreeList");
}
/**
* bootstrap
*
* @return
*/
@RequestMapping(params = "bootstrapDemoDatagrid",method ={RequestMethod.GET, RequestMethod.POST})
public void bootstrapDemoDatagrid(HttpServletRequest request,HttpServletResponse response) {
try {
String text1="[{\"id\":1,\"pid\":0,\"status\":1,\"name\":\"系统管理\",\"permissionValue\":\"系统\"},{\"id\":2,\"pid\":0,\"status\":1,\"name\":\"字典管理\",\"permissionValue\":\"字典\"},{\"id\":20,\"pid\":1,\"status\":1,\"name\":\"新增系统\",\"permissionValue\":\"新增\"},{\"id\":21,\"pid\":1,\"status\":1,\"name\":\"编辑系统\",\"permissionValue\":\"编辑\"},{\"id\":22,\"pid\":1,\"status\":1,\"name\":\"删除系统\",\"permissionValue\":\"删除\"},{\"id\":33,\"pid\":2,\"status\":1,\"name\":\"系统环境\",\"permissionValue\":\"环境\"},{\"id\":333,\"pid\":33,\"status\":1,\"name\":\"新增环境\",\"permissionValue\":\"新增\"},{\"id\":3333,\"pid\":33,\"status\":1,\"name\":\"编辑环境\",\"permissionValue\":\"编辑\"},{\"id\":233332,\"pid\":33,\"status\":0,\"name\":\"删除环境\",\"permissionValue\":\"删除\"}]";
response.getWriter().println(text1);
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping(params = "plupload1")
public ModelAndView plupload(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/plupload/plupload1");
}
@RequestMapping(params = "plupload2")
public ModelAndView plupload3(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/plupload/plupload3");
}
@RequestMapping(params = "goPlupload")
public ModelAndView goPlupload(HttpServletRequest request) {
request.setAttribute("chunk", request.getParameter("chunk"));
return new ModelAndView("com/jeecg/demo/plupload/plupload5");
}
/**
*
* bug List<FileItem> items = upload.parseRequest(request); mvc
*
* @param request
* @param response
* @throws IOException
*/
@RequestMapping("/doupload")
public void doupload(HttpServletRequest request, HttpServletResponse response) throws IOException {
String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//demo中设置为D://upFiles,实际项目应因事制宜
String tempFileDir = ctxPath+File.separator+"temp";
response.setCharacterEncoding("UTF-8");
Integer schunk = null;//分割块数
Integer schunks = null;//总分割数
String name = null;//文件名
BufferedOutputStream outputStream=null;
if (ServletFileUpload.isMultipartContent(request)) {
try {
String bizType=request.getParameter("bizType");//上传业务名称
String bizPath=StoreUploadFilePathEnum.getPath(bizType);//根据业务名称判断上传路径
String nowday=new SimpleDateFormat("yyyyMMdd").format(new Date());
String fileDir = ctxPath+File.separator+bizPath+File.separator+nowday;
File file = new File(fileDir);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
File tempFile = new File(tempFileDir);
if (!tempFile.exists()) {
tempFile.mkdirs();// 创建文件临时目录
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024);
factory.setRepository(tempFile);//设置临时目录
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
upload.setSizeMax(5*1024*1024);//设置附近大小??
List<FileItem> items = upload.parseRequest(request);
//生成新的文件名
String newFilename = null;
for(FileItem item : items){
if(!item.isFormField()){
//如果是文件类型
name = item.getName();//获取文件名
System.out.println("name:"+name);
newFilename = UUID.randomUUID().toString().replace("-","").concat(".").concat(FilenameUtils.getExtension(name));
System.out.println("newFilename:"+newFilename);
if(name!=null){
String nFname = newFilename;
if(schunk!=null){
nFname = schunk+"_"+name;
}
File savedFile = new File(fileDir, nFname);
item.write(savedFile);
}
}else{
//判断是否带分割信息
if(item.getFieldName().equals("chunk")){
schunk = Integer.parseInt(item.getString());
}
if(item.getFieldName().equals("chunks")){
schunks = Integer.parseInt(item.getString());
}
}
}
System.out.println("chunk:"+schunk+"-"+schunks);
if(schunk!=null && schunk+1 == schunks){
outputStream = new BufferedOutputStream(new FileOutputStream(new File(fileDir,newFilename)));
for(int i=0;i<schunks;i++){
File itempFile = new File(fileDir,i+"_"+name);
byte[] bytes = FileUtils.readFileToByteArray(itempFile);
outputStream.write(bytes);
outputStream.flush();
itempFile.delete();
}
outputStream.flush();
}
response.getWriter().write("{\"status\":true,\"newName\":\""+newFilename+"\"}");
} catch (FileUploadException e) {
e.printStackTrace();
response.getWriter().write("{\"status\":false}");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("{\"status\":false}");
}finally{
try {
if(outputStream!=null)
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
*demo
*
* @return
*/
@RequestMapping(params = "printingDemo")
public ModelAndView printingDemo(ModelMap model) {
return new ModelAndView("com/jeecg/demo/printingDemo");
}
}

@ -2,6 +2,7 @@ package com.jeecg.demo.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import java.io.IOException;
import java.io.OutputStreamWriter;
@ -625,9 +626,11 @@ public class JeecgListDemoController extends BaseController {
//step.1 获取数据权限SQL片段
String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
//设置排序字段
//step.2 将权限SQL片段注入到业务SQL中
MiniDaoPage<JeecgDemoEntity> list = jeecgMinidaoDao.getAllEntities(jeecgDemo, dataGrid.getPage(), dataGrid.getRows(),authSql);
MiniDaoPage<JeecgDemoEntity> list = jeecgMinidaoDao.getAllEntities(jeecgDemo, dataGrid.getPage(), dataGrid.getRows(),dataGrid.getSort(),dataGrid.getOrder(),authSql);
dataGrid.setTotal(list.getTotal());
dataGrid.setResults(list.getResults());
@ -1395,4 +1398,33 @@ public class JeecgListDemoController extends BaseController {
public ModelAndView collapseDemo() {
return new ModelAndView("com/jeecg/demo/jeecgDemoList-collapse");
}
/**
* bootstrap-suggest-plugin demo
* @param request
* @return
*/
@RequestMapping(params = "suggest")
public ModelAndView suggest(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/suggest");
}
@RequestMapping(value = "loadSuggestData")
@ResponseBody
public Object loadSuggestData(String keyword,HttpServletRequest request) {
String sql = "select a.username,a.realname,IFNULL(c.departname,'火星人') as depart from t_s_base_user a left join t_s_user_org b on b.user_id = a.ID left join t_s_depart c on c.id = b.org_id "
+ "";//TODO keyword 没用到
JSONObject object = new JSONObject();
object.put("message", "");
try {
List<Map<String,Object>> data = this.systemService.findForJdbc(sql);
net.sf.json.JSONArray array = net.sf.json.JSONArray.fromObject(data);
object.put("value", array);
object.put("code", 200);
} catch (Exception e) {
e.printStackTrace();
}
object.put("redirect", "");
return object;
}
}

@ -23,7 +23,7 @@ public interface JeecgMinidaoDao {
List<Map<String, String>> getAllRegions();
@ResultType(JeecgDemoEntity.class)
public MiniDaoPage<JeecgDemoEntity> getAllEntities(@Param("jeecgDemo") JeecgDemoEntity jeecgDemo, @Param("page") int page, @Param("rows") int rows,@Param("authSql") String authSql);
public MiniDaoPage<JeecgDemoEntity> getAllEntities(@Param("jeecgDemo") JeecgDemoEntity jeecgDemo, @Param("page") int page, @Param("rows") int rows,@Param("sort")String sort, @Param("order")String order,@Param("authSql") String authSql);
@Sql("select count(*) from jeecg_demo")
Integer getCount();

@ -75,8 +75,6 @@ public class JeecgDemoEntity implements java.io.Serializable {
private java.lang.String touxiang;
private java.lang.String fujian;
/**
*: java.lang.String
*@return: java.lang.String id
@ -389,6 +387,4 @@ public class JeecgDemoEntity implements java.io.Serializable {
public void setFujian(java.lang.String fujian) {
this.fujian = fujian;
}
}

@ -26,3 +26,7 @@ SELECT * FROM jeecg_demo WHERE 1=1
<#if authSql ?exists && authSql ?length gt 0>
${authSql}
</#if>
<#if sort ?exists && sort ?length gt 0>
ORDER BY ${sort} ${order}
</#if>

@ -0,0 +1,99 @@
package com.jeecg.demo.util;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FreemarkerUtil {
private static final Object LOCK = new Object();
/**
* word
*/
public static final int WORD_FILE = 1;
/**
* excel
*/
public static final int EXCEL_FILE = 2;
private static Configuration cfg;
private static FreemarkerUtil ftl ;
private FreemarkerUtil(String templateFolder) throws IOException {
cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File(templateFolder));
cfg.setObjectWrapper(new DefaultObjectWrapper());
}
private static void check(HttpServletRequest request) {
if (ftl == null) {
synchronized (LOCK) {
try {
ftl = new FreemarkerUtil(request.getServletContext().getRealPath("/")+"export/template");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* word
* response
* @throws IOException
*/
public static void createFile(String templateName,String docFileName, Map<String,Object> rootMap,HttpServletRequest request, HttpServletResponse response,int fileType) throws IOException {
// response.resetBuffer();
//设置导出
response.addHeader("Cache-Control","no-cache");
response.setCharacterEncoding("UTF-8");
if( WORD_FILE == fileType){
response.setContentType("application/vnd.ms-word;charset=UTF-8");
}else if(EXCEL_FILE == fileType){
response.setContentType("application/octet-stream;charset=UTF-8");
}else{
response.setContentType("application/octet-stream");
}
String ua = request.getHeader("user-agent");
ua = ua == null ? null : ua.toLowerCase();
if(ua != null && (ua.indexOf("firefox") > 0 || ua.indexOf("safari")>0)){
try {
docFileName = new String(docFileName.getBytes(),"ISO8859-1");
response.addHeader("Content-Disposition","attachment;filename=" + docFileName);
} catch (Exception e) {
}
}else{
try {
docFileName = URLEncoder.encode(docFileName, "utf-8");
response.addHeader("Content-Disposition","attachment;filename=" + docFileName);
} catch (Exception e) {
}
}
check(request);
//解析模版
Template temp = cfg.getTemplate(templateName, "UTF-8");
PrintWriter write = response.getWriter();
try {
temp.process(rootMap, write);
} catch (TemplateException e) {
e.printStackTrace();
}finally {
if(write != null){
write.flush();
write.close();
}
}
}
}

@ -256,12 +256,16 @@ public class CommonDao extends GenericBaseCommonDao implements ICommonDao, IGene
// SwfToolsUtil.convert2SWF(savePath);
// }
// FileCopyUtils.copy(mf.getBytes(), savefile);
if (uploadFile.getSwfpath() != null) {
//默认上传文件是否转换为swf实现在线预览功能开关
String globalSwfTransformFlag = ResourceUtil.getConfigByName("swf.transform.flag");
if ( "true".equals(globalSwfTransformFlag) && uploadFile.getSwfpath() != null) {
// 转SWF
reflectHelper.setMethodValue(uploadFile.getSwfpath(), path + FileUtils.getFilePrefix(myfilename) + ".swf");
SwfToolsUtil.convert2SWF(savePath);
}
}
} catch (Exception e1) {
}

@ -698,7 +698,16 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
CriteriaImpl impl = (CriteriaImpl) criteria;
// 先把Projection和OrderBy条件取出来,清空两者来执行Count操作
Projection projection = impl.getProjection();
final int allCounts = ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
// final int allCounts = ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
Object allCountsObj = criteria.setProjection(Projections.rowCount()).uniqueResult();
final int allCounts;
if(allCountsObj==null){
allCounts = 0;
}else{
allCounts = ((Long) allCountsObj).intValue();
}
criteria.setProjection(projection);
if (projection == null) {
criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);

@ -15,6 +15,7 @@ import org.hibernate.transform.Transformers;
import org.hibernate.type.Type;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.oConvertUtils;
import org.jeecgframework.tag.vo.datatable.DataTables;
import org.jeecgframework.tag.vo.datatable.SortDirection;
import org.jeecgframework.tag.vo.datatable.SortInfo;
@ -596,11 +597,11 @@ public class CriteriaQuery {
public void between(String keyname, Object keyvalue1, Object keyvalue2) {
Criterion c = null;// 写入between查询条件
if (!keyvalue1.equals(null) && !keyvalue2.equals(null)) {
if (oConvertUtils.isNotEmpty(keyvalue1) && oConvertUtils.isNotEmpty(keyvalue2)) {
c = Restrictions.between(keyname, keyvalue1, keyvalue2);
} else if (!keyvalue1.equals(null)) {
} else if (oConvertUtils.isNotEmpty(keyvalue1)) {
c = Restrictions.ge(keyname, keyvalue1);
} else if (!keyvalue2.equals(null)) {
} else if (oConvertUtils.isNotEmpty(keyvalue2)) {
c = Restrictions.le(keyname, keyvalue2);
}
criterionList.add(c);

@ -127,13 +127,13 @@ public class TreeGrid implements java.io.Serializable {
}
private String assembleFieldsJson() {
String fieldsJson = ", 'fieldMap':" + fieldMap;
String fieldsJson = ", 'fieldMap':" + JSON.toJSON(fieldMap);
if (fieldMap != null && fieldMap.size() > 0) {
Map<String, Object> resultMap = new HashMap<String, Object>();
for (Map.Entry<String, Object> entry : fieldMap.entrySet()) {
resultMap.put("fieldMap." + entry.getKey(), entry.getValue());
}
fieldsJson = ", " + JSON.toJSON(resultMap).toString().replace("{", "").replace("}", "");
fieldsJson += ", " + JSON.toJSON(resultMap).toString().replace("{", "").replace("}", "");
}
return fieldsJson;
}

@ -5,9 +5,11 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;
/**
*
@ -194,4 +196,70 @@ public class FileUtils {
}
return returnFileName;
}
/**
* SWF
* @author taoYan
* @since 2018726
*/
public static String getSwfPath(String path){
String leftSlash = "/";
if(!File.separator.equals(leftSlash)){
path = path.replace(File.separator,leftSlash);
}
String fileDir = path.substring(0,path.lastIndexOf(leftSlash)+1);//文件目录带/
int pointPosition = path.lastIndexOf(".");
String fileName = path.substring(path.lastIndexOf(leftSlash)+1,pointPosition);//文件名不带后缀
String swfName = PinyinUtil.getPinYinHeadChar(fileName);// 取文件名首字母作为SWF文件名
return fileDir+swfName+".swf";
}
/**
* txt
* @author taoYan
* @since 2018726
*/
public static void uploadTxtFile(MultipartFile mf,String savePath) throws IOException{
//利用utf-8字符集的固定首行隐藏编码原理
//Unicode:FF FE UTF-8:EF BB
byte[] allbytes = mf.getBytes();
try{
String head1 = toHexString(allbytes[0]);
//System.out.println(head1);
String head2 = toHexString(allbytes[1]);
//System.out.println(head2);
if("ef".equals(head1) && "bb".equals(head2)){
//UTF-8
String contents = new String(mf.getBytes(),"UTF-8");
if(StringUtils.isNotBlank(contents)){
OutputStream out = new FileOutputStream(savePath);
out.write(contents.getBytes());
out.close();
}
} else {
//GBK
String contents = new String(mf.getBytes(),"GBK");
OutputStream out = new FileOutputStream(savePath);
out.write(contents.getBytes());
out.close();
}
} catch(Exception e){
String contents = new String(mf.getBytes(),"UTF-8");
if(StringUtils.isNotBlank(contents)){
OutputStream out = new FileOutputStream(savePath);
out.write(contents.getBytes());
out.close();
}
}
}
public static String toHexString(int index){
String hexString = Integer.toHexString(index);
// 1个byte变成16进制的只需要2位就可以表示了取后面两位去掉前面的符号填充
hexString = hexString.substring(hexString.length() -2);
return hexString;
}
}

@ -312,7 +312,7 @@ public class LdapUtil {
try {
NamingEnumeration<?> answer = dc.search(searchBase, searchFilter, searchCtls);
if (answer == null || answer.equals(null)) {
if (oConvertUtils.isEmpty(answer)) {
LogUtil.info("answer is null");
} else {
LogUtil.info("answer not null");

@ -10,6 +10,8 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import javax.persistence.Transient;
import org.apache.log4j.Logger;
/**
@ -238,4 +240,21 @@ public class ReflectHelper {
return value;
}
/**
* get@Transient
* @author taoYan
* @since 2018726
* @return get*trueget@Transientfalse
*/
public boolean isIgore(String property) {
Method m = getMethods.get(property.toLowerCase());
if (m != null) {
Object o = m.getAnnotation(Transient.class);
if(o==null){
return false;
}
}
return true;
}
}

@ -179,7 +179,8 @@ public class BaseTag extends JeecgTag {
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/themes/bootstrap-ext/js/common.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/tools/dataformat.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/lhgDialog/lhgdialog.min.js?skin=metrole\"></script>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/themes/bootstrap-ext/js/bootstrap-lhgdialog-curdtools_zh-cn.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/themes/bootstrap-ext/js/bootstrap-lhgdialog-curdtools.js\"></script>");
sb.append("<link rel=\"stylesheet\" href=\""+basePath+"/plug-in/ace/css/common.css\" type=\"text/css\"></link>");
sb.append("<link rel=\"stylesheet\" href=\""+basePath+"/plug-in/ace/css/font-awesome.css\" type=\"text/css\"></link>");
@ -219,8 +220,10 @@ public class BaseTag extends JeecgTag {
if (oConvertUtils.isIn("bootstrap-form", types)) {
sb.append("<link rel=\"stylesheet\" href=\""+basePath+"/plug-in/themes/bootstrap-ext/css/validform-ext.css\" type=\"text/css\"></link>");
//icheck组件引用
sb.append("<link rel=\"stylesheet\" href=\""+basePath+"/plug-in/icheck-1.x/skins/square/_all.css\" type=\"text/css\"></link>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/icheck-1.x/icheck.js\"></script>");
sb.append("<link rel=\"stylesheet\" href=\""+basePath+"/plug-in/hplus/css/plugins/iCheck/custom.css\" type=\"text/css\"></link>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/hplus/js/plugins/iCheck/icheck.min.js\"></script>");
//通用组件引用
sb.append("<link rel=\"stylesheet\" href=\""+basePath+"/plug-in/bootstrap3.3.5/css/default.css\" type=\"text/css\"></link>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/themes/bootstrap-ext/js/common.js\"></script>");
@ -238,6 +241,11 @@ public class BaseTag extends JeecgTag {
types = null;
this.putTagCache(sb);
if(sb.indexOf("plug-in/tools/curdtools.js")!=-1 && sb.indexOf("/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js")==-1){
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js\"></script>");
}
return sb;
}

@ -20,6 +20,7 @@ import org.jeecgframework.core.util.UUIDGenerator;
* @version 1.0
*/
public class ChooseTag extends TagSupport {
private static final long serialVersionUID = 1L;
protected String hiddenName;
protected String textname;//显示文本框字段
protected String icon;

@ -386,12 +386,14 @@ public class DataGridTag extends TagSupport {
* @param width2
* @param id
*/
public void setToolbar(String url, String title, String icon, String exp,String onclick, String funname,String operationCode, String width2, String height2, String id) {
public void setToolbar(String url, String title, String icon, String exp,String onclick, String funname,String operationCode, String width2, String height2, String id,boolean inGroup) {
DataGridUrl dataGridUrl = new DataGridUrl();
dataGridUrl.setTitle(title);
dataGridUrl.setUrl(url);
dataGridUrl.setType(OptTypeDirection.ToolBar);
dataGridUrl.setInGroup(inGroup);
if(!checkBrowerIsNotIE()){
//IE浏览器
if(!icon.startsWith("icon")){
@ -1809,93 +1811,31 @@ public class DataGridTag extends TagSupport {
sb.append("<span style=\"float:left;\" >");
if(toolBarList.size()>0)
{
for (DataGridUrl toolBar : toolBarList) {
if (btnCls != null && !btnCls.equals("easyui")) {//自定以样式 bootstrap按钮样式
if(btnCls.indexOf("bootstrap")==0){
if (btnCls.replace("bootstrap", "").trim().length() > 0) {
sb.append("<button class=\""+btnCls.replace("bootstrap", "").trim()+"\" ");
}else{
sb.append("<button class=\"btn btn-default btn-xs\" ");
}
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick()))
{
sb.append("onclick="+toolBar.getOnclick()+"");
}
else {
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit"))
{
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}
sb.append("><i class=\"" + toolBar.getIcon() + "\"></i><span class=\"bigger-110 no-text-shadow\">"+toolBar.getTitle()+"</span></button>");
}else{
sb.append("<a href=\"#\" class=\""+btnCls+" " + toolBar.getIcon()+"\" ");
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick()))
{
sb.append("onclick="+toolBar.getOnclick()+"");
}
else {
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit"))
{
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}
sb.append(">"+toolBar.getTitle()+"</a>");
}
}else if(btnCls == null || btnCls.equals("easyui")){//easyUI按钮样式
sb.append("<a href=\"#\" class=\"easyui-linkbutton\" plain=\"true\" icon=\""+toolBar.getIcon()+"\" ");
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick()))
{
sb.append("onclick="+toolBar.getOnclick()+"");
Boolean hasMore = false;
for (DataGridUrl toolBar : toolBarList) {
if(toolBar.isInGroup()){
if(!hasMore){
hasMore = true;
}
else {
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit"))
{
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}else{
loadToolbar(toolBar, sb);
}
}
if(hasMore){
loadToolbarMoreBtn(sb,true,null);
sb.append("<div class='toolbar-more-container'><ul class='toolbar-more-list'>");
for (DataGridUrl toolBar : toolBarList) {
if(toolBar.isInGroup()){
sb.append("<li>");
loadToolbarMoreBtn(sb,false,toolBar);
sb.append("</li>");
}
sb.append(">"+toolBar.getTitle()+"</a>");
}
sb.append("</ul></div>");
//sb.append("<div class='btn-group'><button data-toggle='dropdown' class='btn btn-default dropdown-toggle'>操作<span class='caret'></span> </button><ul class='dropdown-menu'><li><a href='buttons.html#'>置顶</a></li><li><a href='buttons.html#' class='font-bold'>修改</a></li><li><a href='buttons.html#'>禁用</a></li><li class='divider'></li> <li><a href='buttons.html#'>删除</a></li> </ul> </div>");
}
}
}
sb.append("</span>");
@ -1995,6 +1935,145 @@ public class DataGridTag extends TagSupport {
return sb;
}
/**
*
* @param sb
* @param false
* @param toolBar
*/
private void loadToolbarMoreBtn(StringBuffer sb,boolean isShow,DataGridUrl toolBar){
if(isShow){
if (btnCls != null && !btnCls.equals("easyui")) {
if(btnCls.indexOf("bootstrap")==0){
if (btnCls.replace("bootstrap", "").trim().length() > 0) {
sb.append("<button class=\""+btnCls.replace("bootstrap", "").trim()+"\" ");
}else{
sb.append("<button class=\"btn btn-default btn-xs\" ");
}
sb.append("onclick='toggleMoreToolbars(this)'");
sb.append("><i class=\"fa fa-caret-down\"></i><span class=\"bigger-110 no-text-shadow\">更多操作</span></button>");
}else{
sb.append("<a href=\"javascript:void(0)\" onclick='toggleMoreToolbars(this)' class=\""+btnCls+" " + toolBar.getIcon()+"\" >更多操作</a>");
}
}else if(btnCls == null || btnCls.equals("easyui")){
sb.append("<a href=\"javascript:void(0)\" onclick='toggleMoreToolbars(this)' class=\"easyui-linkbutton\" plain=\"true\" icon=\"icon-caret-down\">更多操作</a> ");
}
}else{
sb.append("<a href='javascript:void(0)' ");
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick())){
sb.append("onclick="+toolBar.getOnclick()+"");
}else{
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit")){
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}
if(btnCls == null || btnCls.equals("easyui")){
sb.append("><span class=\"easyui-mycon "+toolBar.getIcon()+"\"></span> "+toolBar.getTitle());
}else{
sb.append("><i class=\""+toolBar.getIcon()+"\"></i> "+toolBar.getTitle());
}
sb.append("</a>");
}
}
private void loadToolbar(DataGridUrl toolBar,StringBuffer sb){
if (btnCls != null && !btnCls.equals("easyui")) {//自定以样式 bootstrap按钮样式
if(btnCls.indexOf("bootstrap")==0){
if (btnCls.replace("bootstrap", "").trim().length() > 0) {
sb.append("<button class=\""+btnCls.replace("bootstrap", "").trim()+"\" ");
}else{
sb.append("<button class=\"btn btn-default btn-xs\" ");
}
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick()))
{
sb.append("onclick="+toolBar.getOnclick()+"");
}
else {
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit"))
{
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}
sb.append("><i class=\"" + toolBar.getIcon() + "\"></i><span class=\"bigger-110 no-text-shadow\">"+toolBar.getTitle()+"</span></button>");
}else{
sb.append("<a href=\"#\" class=\""+btnCls+" " + toolBar.getIcon()+"\" ");
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick()))
{
sb.append("onclick="+toolBar.getOnclick()+"");
}
else {
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit"))
{
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}
sb.append(">"+toolBar.getTitle()+"</a>");
}
}else if(btnCls == null || btnCls.equals("easyui")){//easyUI按钮样式
sb.append("<a href=\"#\" class=\"easyui-linkbutton\" plain=\"true\" icon=\""+toolBar.getIcon()+"\" ");
if(StringUtil.isNotEmpty(toolBar.getId())){
sb.append(" id=\"");
sb.append(toolBar.getId());
sb.append("\" ");
}
if(StringUtil.isNotEmpty(toolBar.getOnclick()))
{
sb.append("onclick="+toolBar.getOnclick()+"");
}
else {
sb.append("onclick=\""+toolBar.getFunname()+"(");
if(!toolBar.getFunname().equals("doSubmit"))
{
sb.append("\'"+toolBar.getTitle()+"\',");
}
String width = toolBar.getWidth().contains("%")?"'"+toolBar.getWidth()+"'":toolBar.getWidth();
String height = toolBar.getHeight().contains("%")?"'"+toolBar.getHeight()+"'":toolBar.getHeight();
sb.append("\'"+toolBar.getUrl()+"\',\'"+name+"\',"+width+","+height+")\"");
}
sb.append(">"+toolBar.getTitle()+"</a>");
}
}
private void loadSubData(String id){
CgFormFieldServiceI cgFormFieldService = (CgFormFieldServiceI)ApplicationContextUtil.getContext().getBean("cgFormFieldService");
String tableName = id;
@ -2451,9 +2530,6 @@ public class DataGridTag extends TagSupport {
sb.append("if(!rec.id){return '';}");
sb.append("var href='';");
List<DataGridUrl> list = urlList;
if(hasGroup()){
getGroupUrl(sb);
}
for (DataGridUrl dataGridUrl : list) {
if(!dataGridUrl.isInGroup()){
String url = dataGridUrl.getUrl();
@ -2593,6 +2669,11 @@ public class DataGridTag extends TagSupport {
}
}
}
if(hasGroup()){
getGroupUrl(sb);
}
sb.append("return href;");
}
@ -2604,8 +2685,10 @@ public class DataGridTag extends TagSupport {
protected void getGroupUrl(StringBuffer sb) {
//注:操作列表会带入合计列中去,故加此判断
List<DataGridUrl> list = urlList;
//<i class='fa fa-angle-double-right'></i>更多
sb.append("href+=\"<a href='javascript:void(0)' class='opts-menu-triangle btnmy'> <span class='opts-menu-temp icon-triangle'></span>更多</a>\";");
/* sb.append("href+=\"<div class='opts-menu-triangle icon-triangle' title='更多操作'></div>\";");*/
sb.append("href+=\"<div class='opts-menu-container location-left'>\";");
sb.append("href+=\"<div class='opts-menu-triangle icon-triangle' href='javascript:void(0);' title='更多操作'></div><div style='clear: both;'></div>\";");
sb.append("href+=\"<div class='opts-menu-parent'>\";");
sb.append("href+=\"<div class='opts-menu-box'>\";");
for (DataGridUrl dataGridUrl : list) {
@ -2665,11 +2748,12 @@ public class DataGridTag extends TagSupport {
}
StringBuffer urlclass = new StringBuffer();
if(!StringUtil.isEmpty(dataGridUrl.getUrlclass())){
urlclass.append(" class=\'btn btn-default fa fa-edit ops-more ");
urlclass.append(dataGridUrl.getUrlclass());
urlclass.append("\'");
if(StringUtil.isEmpty(dataGridUrl.getUrlclass())){
dataGridUrl.setUrlclass("btn btn-default ops-more");
}
urlclass.append(" class=\'"+dataGridUrl.getUrlclass()+"\'");
StringBuffer urlfont = new StringBuffer();
if(!StringUtil.isEmpty(dataGridUrl.getUrlfont())){
urlfont.append(" <i class=\' fa ");
@ -2891,8 +2975,11 @@ public class DataGridTag extends TagSupport {
if(column.getDictionary().contains(",")){
if(column.isPopup()){
//TODO popup值转换处理此处暂不处理
}else{
if(column.getIsAjaxDict()){
//TODO ajax值转换处理此处暂不处理
}else{
String[] dic = column.getDictionary().split(",");
String sql = "select " + dic[1] + " as field," + dic[2]+ " as text from " + dic[0];

@ -24,6 +24,8 @@ public class DataGridToolBarTag extends TagSupport {
private String id;//控件ID
private boolean inGroup = false;//是否是 更多操作按钮组下面的
public int doStartTag() throws JspTagException {
return EVAL_PAGE;
@ -33,7 +35,7 @@ public class DataGridToolBarTag extends TagSupport {
Tag t = findAncestorWithClass(this, DataGridTag.class);
DataGridTag parent = (DataGridTag) t;
parent.setToolbar(url, title, icon, exp,onclick, funname,operationCode,width,height,id);
parent.setToolbar(url, title, icon, exp,onclick, funname,operationCode,width,height,id,inGroup);
return EVAL_PAGE;
}
@ -79,5 +81,10 @@ public class DataGridToolBarTag extends TagSupport {
public void setId(String id) {
this.id = id;
}
public boolean isInGroup() {
return inGroup;
}
public void setInGroup(boolean inGroup) {
this.inGroup = inGroup;
}
}

@ -204,6 +204,7 @@ public class DictSelectTag extends TagSupport {
Gson gson = new Gson();
Map<String, String> mp = gson.fromJson(extendJson, Map.class);
StringBuffer sb=new StringBuffer();
sb.append(" ");
for(Map.Entry<String, String> entry: mp.entrySet()) {
//判断select标签中是否含有style属性
if(entry.getKey().equals("style")){

@ -108,7 +108,9 @@ public class FormValidationTag extends TagSupport {
if(cssTheme==null||"default".equals(cssTheme))cssTheme="";*/
if ("div".equals(layout)) {
sb.append("<div id=\"content\">");
sb.append("<div id=\"wrapper\">");
sb.append("<div id=\"wrapper\" style=\"border-left:1px solid #ddd;\">");
sb.append("<div id=\"steps\">");
}
sb.append("<form id=\"" + formid + "\" " );
@ -184,7 +186,12 @@ public class FormValidationTag extends TagSupport {
sb.append(StringUtil.replace("<script type=\"text/javascript\" src=\"plug-in/Validform/js/Validform_v5.3.1_min_{0}.js\"></script>", "{0}", lang));
sb.append(StringUtil.replace("<script type=\"text/javascript\" src=\"plug-in/Validform/js/Validform_Datatype_{0}.js\"></script>", "{0}", lang));
sb.append(StringUtil.replace("<script type=\"text/javascript\" src=\"plug-in/Validform/js/datatype_{0}.js\"></script>", "{0}", lang));
if("6".equals(tiptype)){
sb.append("<link rel=\"stylesheet\" href=\"plug-in/Validform/css/tiptype.css\" type=\"text/css\"/>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/Validform/js/tiptype.js\"></script>");
}
if (usePlugin != null) {
if (usePlugin.indexOf("jqtransform") >= 0) {
sb.append("<SCRIPT type=\"text/javascript\" src=\"plug-in/Validform/plugin/jqtransform/jquery.jqtransform.js\"></SCRIPT>");
@ -219,6 +226,16 @@ public class FormValidationTag extends TagSupport {
sb.append("})");
sb.append("}},");
}else if("6".equals(tiptype)){
sb.append("tiptype:function(msg,o,cssctl){");
sb.append("if(o.type==3){");
sb.append(" ValidationMessage(o.obj,msg);");
sb.append("}else{");
sb.append("removeMessage(o.obj);");
sb.append("}");
sb.append("},");
}else{
sb.append("tiptype:"+this.getTiptype()+",");
}

@ -228,7 +228,9 @@ public class TreeSelectTag extends TagSupport {
resultSb.append("function " + field + "OnCheck(e, treeId, treeNode) {");
resultSb.append(" var myTree = $.fn.zTree.getZTreeObj(\"show"+StringUtil.firstUpperCase(field)+"Tree\"); ");
resultSb.append("var nodes = myTree.getCheckedNodes(true);var tempId='',tempText='';");
resultSb.append("if(nodes && nodes.length>0){for(var a in nodes){tempId+=nodes[a].id+',';tempText+=nodes[a].text+',';}}");
resultSb.append("if(nodes && nodes.length>0){for(var i = 0;i<nodes.length;i++){tempId+=nodes[i].id+',';tempText+=nodes[i].text+',';}}");
resultSb.append("if(tempId ==''){");
if(StringUtil.isEmpty(id)){
resultSb.append("$('#"+field+"').val(''); }else{$('#"+field+"').val(tempId.substring(0,tempId.length - 1));}");

@ -39,6 +39,7 @@ public class WebUploaderTag extends TagSupport {
private String bizType;//业务类型,根据该类型确定上传路径
private boolean displayTxt=true;//是否显示上传列表[默认显示]true显示false隐藏
private boolean outJs = false;//是否在外部引入了js和css
private boolean swfTransform = false;//是否转换成swf文件文件预览使用
//private static String imgexts="gif,jpg,jpeg,bmp,png";
public int doStartTag() throws JspTagException {
return EVAL_PAGE;
@ -99,6 +100,14 @@ public class WebUploaderTag extends TagSupport {
}else{
sb.append("<div id='"+showthelist+"' class='uploader-list'></div>");
}
//进度条html添加
sb.append("<div id='"+name+"_progress_bar' class='progress-bar-ty '");
if("image".equals(type)){
sb.append(" style='display:none'");
}
sb.append("><div class='progress-ty'>");
sb.append("<span class='upload-label-ty' style='display:none;'>正在加载...<b class='value'>79%</b></span></div></div>");
sb.append("<div class='btns'><div id='"+name+"picker'>"+getButtonText()+"</div></div></div>");
if("image".equals(type)&&oConvertUtils.isEmpty(showImgDiv)){
showImgDiv="tempdiv_"+name;
@ -120,9 +129,9 @@ public class WebUploaderTag extends TagSupport {
sb.append(",accept:{extensions:'"+extensions+"'}");
}
if(oConvertUtils.isEmpty(extendParams)){
sb.append(",formData:{isup:'1',bizType:'"+bizType+"'}});");
sb.append(",formData:{isup:'1',swfTransform:'"+swfTransform+"',bizType:'"+bizType+"'}});");
}else{
sb.append(",formData:{isup:'1',bizType:'"+bizType+"',"+extendParams+"}});");
sb.append(",formData:{isup:'1',swfTransform:'"+swfTransform+"',bizType:'"+bizType+"',"+extendParams+"}});");
}
if(!auto){
sb.append("\r\nvar upbtnrdo4=\"<div id='"+name+"ctlBtn' class='upbtn btn-blue "+btnCss+"'>开始上传</div>\";$('#"+name+"picker').find('div:eq(0)').after(upbtnrdo4);upbtnrdo4='';\r\n");
@ -139,6 +148,10 @@ public class WebUploaderTag extends TagSupport {
//sb.append("$('#"+name+"picker').find('div:eq(0)').unbind(\"mouseenter\").unbind(\"mouseleave\");");
sb.append("$('#"+showImgDiv+"').addClass('tempIMGdiv').append('<ul></ul>');\r\n");
sb.append("$list.append('<table class=\"temptable\"></table>');\r\n");
//增加进度条方法
//进度条加载延迟duration设置太小则出现大文件则会瞬间达到一个值然后卡在那个点上,效果太假
sb.append("var showUploadProgress = function(progress,mycallback,obj){if(!obj){obj = $('#"+name+"_progress_bar').find('.progress-ty');}if(!$('#"+name+"_progress_bar').hasClass('active')){$('#"+name+"_progress_bar').addClass('active');}obj.animate({width:progress+'%'},{duration:100,easing:'swing',complete:function(scope,i,elem){if(!!mycallback){mycallback();}}})};");
//判断是否支持base64
sb.append(" var isSupportBase64 = function() {var data = new Image();var support = true;data.onload = data.onerror = function() {if( this.width != 1 || this.height != 1 ){support = false;}}//data['src'] = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';\r\nreturn support;};");
//缩略图大小暂时写死,也可以修改css
@ -162,7 +175,13 @@ public class WebUploaderTag extends TagSupport {
if("true".equals(readOnly)||"readOnly".equals(readOnly)){
sb.append("trhtml+=' style=\"display:none;\"';");
}
sb.append("trhtml+=' class=\"del icon-cha\" style=\"overflow:hidden;\">'+delflag+'</span></td><td></td></tr>';$list.children('table').append(trhtml);}");
sb.append("trhtml+=' class=\"del icon-cha\" style=\"overflow:hidden;\">'+delflag+'</span></td>';");
//如果是文件配置swf转换参数则支持文件预览
if("file".equals(type) && swfTransform){
sb.append("if(downsrc==0){trhtml+='<td class=\"viewtd\"><span class=\"view\" style=\"overflow:hidden;\"></span></td>';}");
sb.append("else{ var aaaaa =\"systemController.do?openViewFile&path=\"+downsrc;var viewclick =\"openwindow(\'预览\',\'\"+aaaaa+\"\',\'tempty\',700,500)\";trhtml+='<td class=\\'icontd\\'><span class=\\'view icon-view\\' onclick=\"'+viewclick+'\"></span></td>';}\r\n");
}
sb.append("trhtml+='<td></td></tr>';$list.children('table').append(trhtml);}");
//如果dataType有值
if(oConvertUtils.isNotEmpty(datatype)){
sb.append("\r\n$('#"+name+"uploader').find('div.btns').append('<input nullMsg=\""+getNullMsg()+"\" datatype=\"*\" type=\"hidden\" id= \""+name+"dataTypeInp\" />');");
@ -178,7 +197,7 @@ public class WebUploaderTag extends TagSupport {
}
}
//删除请求
sb.append("\r\nvar imgDelReq=function(delpath,spanobj){$.post('"+url+"',{path:delpath,isdel:\"1\"},function(aj){var data=JSON.parse(aj);if(data.success){reset_"+name+"_dataTypeInpVal(0);exsitPathArr_"+name+".removeItem(delpath);$list.children('.fordel').children('input').val(exsitPathArr_"+name+".join(','));var myimgli=$(spanobj).closest('li');myimgli.off().find('.hidetitle').off().end().remove();}});}\r\n");
sb.append("\r\nvar imgDelReq=function(delpath,spanobj){$.post('"+url+"',{path:delpath,swfTransform:'"+swfTransform+"',isdel:\"1\"},function(aj){var data=JSON.parse(aj);if(data.success){reset_"+name+"_dataTypeInpVal(0);exsitPathArr_"+name+".removeItem(delpath);$list.children('.fordel').children('input').val(exsitPathArr_"+name+".join(','));var myimgli=$(spanobj).closest('li');myimgli.off().find('.hidetitle').off().end().remove();}});}\r\n");
sb.append("var "+name+"addFile=function(file,filepath){\r\nuploader.makeThumb(file, function(error,src) {\r\nif(error){return false;}\r\nif(isSupportBase64()){if(filepath==''){"+name+"addImgli(src,file.id,0,0);}\r\n}else if(filepath!=''){\r\nvar actSrc=\""+showAndDownUrl+"\"+filepath;\r\n"+name+"addImgli(actSrc,file.id,0,0);}}, thumbnailWidth, thumbnailHeight );}");
sb.append("\r\nvar updatetdState=function(id,content){$list.children('table').find('#"+name+"'+id).find('.state').text('--'+content+'--');}\r\n");
@ -212,10 +231,16 @@ public class WebUploaderTag extends TagSupport {
+"});");
//上传过程中触发,携带上传进度。
sb.append(" uploader.on( 'uploadProgress', function( file, percentage ) {var $li = $('#"+name+"'+file.id+' td:last'),$percent = $li.find('.progress .progress-bar');if ( !$percent.length ) {$percent = $('<div class=\"progress progress-striped active\"><div class=\"progress-bar\" role=\"progressbar\" style=\"width: 0%\"></div></div>').appendTo($li).find('.progress-bar');}updatetdState(file.id,'上传中');$percent.css( 'width', percentage * 100 + '%' );});");
//上传开始事件 加载进度条
sb.append("uploader.on('uploadStart',function(file){$('#"+name+"_progress_bar').find('.progress-ty').css('width','1%');var temprd=Math.floor(Math.random()*7+1);if(temprd<4){temprd=Number(temprd)+3}temprd=Number(temprd)*10;showUploadProgress(temprd,function(){showUploadProgress(Number(temprd)+15);})});");
//当文件上传成功时触发会给表单增加一个input赋值 filePath
sb.append("uploader.on( 'uploadSuccess', function(file,response) {if(response.success){updatetdState(file.id,'上传成功');reset_"+name+"_dataTypeInpVal(1);"
sb.append("uploader.on( 'uploadSuccess', function(file,response) {showUploadProgress(100,function(){if(response.success){$('#"+name+"_progress_bar').removeClass('active');updatetdState(file.id,'上传成功');reset_"+name+"_dataTypeInpVal(1);"
+"var filepath=response['"+name+"']||response.obj;$('#"+name+"'+file.id+' td:first').append('<input type=\"hidden\" name=\""+nameWithspchar+"\" value=\"'+filepath+'\" />');"+name+"addFile(file, filepath);");
//如果是文件配置swf转换参数则支持文件预览
if("file".equals(type) && swfTransform){
sb.append("$('#"+name+"'+file.id+' td.viewtd').removeClass('viewtd').addClass('icontd').find('span').addClass('icon-view').attr('onclick',\"openwindow('预览','systemController.do?openViewFile&path=\"+filepath+\"','tempty',700,500)\");");
}
if(fileNumLimit==1){
if(auto){
//上传完成 限制放开
@ -228,7 +253,8 @@ public class WebUploaderTag extends TagSupport {
sb.append("$('#"+showthelist+">table').find('tr.wait-remove').find('.del').click()");
}
}
sb.append("}else{updatetdState(file.id,'上传出错'+response.msg);}});\r\n");
//TODO 上传出错颜色需改变。
sb.append("}else{$('#"+name+"_progress_bar').removeClass('active');updatetdState(file.id,'上传出错'+response.msg);}});});\r\n");
//上传失败
@ -255,7 +281,7 @@ public class WebUploaderTag extends TagSupport {
//删除
sb.append("$list.on(\"click\", \".del\", function () {var delspantext=$(this).text();var itemObj=$(this).closest(\".item\");var id=itemObj.attr(\"id\").substring("+name.length()+");var delpath=itemObj.find(\"input[name='"+nameWithspchar+"']\").val();if(undefined==delpath||null==delpath){delpath=delspantext;if(delspantext==0){itemObj.remove();uploader.removeFile(id);var myimgli=$('#"+showImgDiv+"').find(\"img[name='\"+id+\"img']\").closest('li');myimgli.off().find('.hidetitle').off().end().remove();\r\nreturn false;}}");
//sb.append("$list.on(\"click\", \".del\", function () {var delspantext=$(this).text();var itemObj=$(this).closest(\".item\");var id=itemObj.attr(\"id\").substring("+name.length()+");var delpath=itemObj.find(\"input[name='"+name+"']\").val();if((undefined==delpath||null==delpath) && delspantext==1){itemObj.remove();var fordelInput=$list.children('.fordel').children('input');if($(this).text()==0){uploader.removeFile(id);var myimgli=$('#"+showImgDiv+"').find(\"img[name='\"+id+\"img']\").closest('li');myimgli.off().find('.hidetitle').off().end().remove();}\r\nif(fordelInput.length>0){fordelInput.val(exsitPathArr_"+name+".join(','));}return false;}");
sb.append("$.post('"+url+"',{path:delpath,isdel:\"1\"},function(aj){var data=JSON.parse(aj);if(data.success){reset_"+name+"_dataTypeInpVal(0);var fordelInput = $list.children('.fordel').children('input');itemObj.remove();if(delspantext==0){uploader.removeFile(id);var myimgli=$('#"+showImgDiv+"').find(\"img[name='\"+id+\"img']\").closest('li');\r\nmyimgli.off().find('.hidetitle').off().end().remove();}else if(fordelInput.length > 0) {exsitPathArr_"+name+".removeItem(delpath);fordelInput.val(exsitPathArr_"+name+".join(','));\r\n}\r\n}\r\n});\r\n});");
sb.append("$.post('"+url+"',{path:delpath,swfTransform:'"+swfTransform+"',isdel:\"1\"},function(aj){var data=JSON.parse(aj);if(data.success){reset_"+name+"_dataTypeInpVal(0);var fordelInput = $list.children('.fordel').children('input');itemObj.remove();if(delspantext==0){uploader.removeFile(id);var myimgli=$('#"+showImgDiv+"').find(\"img[name='\"+id+\"img']\").closest('li');\r\nmyimgli.off().find('.hidetitle').off().end().remove();}else if(fordelInput.length > 0) {exsitPathArr_"+name+".removeItem(delpath);fordelInput.val(exsitPathArr_"+name+".join(','));\r\n}\r\n}\r\n});\r\n});");
sb.append("if(location.href.indexOf('load=detail')!=-1){$('#"+name+"uploader').find('.btns').addClass('virtual-hidden').css('visibility','hidden');$list.find('span.del').css('display','none');");
if("image".equals(type)){
sb.append("$('#"+showImgDiv+"').find('.titledel').css('display','none');");
@ -422,6 +448,12 @@ public class WebUploaderTag extends TagSupport {
public void setOutJs(boolean outJs) {
this.outJs = outJs;
}
public boolean isSwfTransform() {
return swfTransform;
}
public void setSwfTransform(boolean swfTransform) {
this.swfTransform = swfTransform;
}
//根据上传文件的后缀重置type
/*private void typeResetByext(String ext){
if(null!=ext&&!"".equals(ext)){

@ -18,7 +18,10 @@
<div class="col-xs-12 col-sm-6 col-md-4">
<label for="${po.field}">${po.title}</label>
<div class="input-group" style="width:100%">
<input type="text" class="form-control input-sm" id="${po.field}" name="${po.field}">
<#-- update-begin-Author:LiShaoQing date:20180802 for:TASK #3017 【Tag-bootstrap】查询区域字段popup未实现 -->
<#assign columnArray = '${po.dictionary}'?split(",")>
<input type="text" class="form-control input-sm" id="${po.field}" name="${po.field}" onclick="popupClick(this,'${columnArray[2]?replace('@',',')}','${columnArray[1]?replace('@',',')}','${columnArray[0]}')">
<#-- update-end-Author:LiShaoQing date:20180802 for:TASK #3017 【Tag-bootstrap】查询区域字段popup未实现 -->
</div>
</div>
<#elseif po.dictionary?index_of(",")!=-1&&!po.popup>

@ -207,7 +207,9 @@
splitArr = dictionary.split(",");
var spanVal = $(field).closest("#dsUL>li").find("span.conVal");
//splitArr=dictionary 0为表编码,1为查询字段,2为返回字段
spanVal.html("<input name=\"cons["+index+"].val\" type=\"text\" class=\"searchbox-inputtext\" onclick=\"popupClick(this,'"+splitArr[1]+"','val','"+splitArr[0]+"')\"/>");
//update-begin-author:taoyan date:20180802 for:TASK #3044 【jeecg测试问题-周俊峰】测试问题
spanVal.html("<input name=\"cons["+index+"].val\" type=\"text\" class=\"searchbox-inputtext\" onclick=\"popupClick(this,'"+splitArr[2]+"','val','"+splitArr[0]+"')\"/>");
//update-end-author:taoyan date:20180802 for:TASK #3044 【jeecg测试问题-周俊峰】测试问题
$("input[name='cons["+index+"].val']").css({"background":"url(\"plug-in/diy/icons/search.png\") no-repeat 105px","width":"130px"});
}
<#--update-end--Author:LiShaoQing Date:20180110 for[#2452]【新功能】高级查询支持popup功能 -->
@ -523,7 +525,9 @@
var splitArr = new Array();
splitArr = dictionary.split(",");
//splitArr=dictionary 0为表编码,1为查询字段,2为返回字段
spanHtml+="<input name=\"cons["+i+"].val\" value='"+v+"' type=\"text\" class=\"searchbox-inputtext\" onclick=\"popupClick(this,'"+splitArr[1]+"','val','"+splitArr[0]+"')\"/>";
//update-begin-author:taoyan date:20180802 for:TASK #3044 【jeecg测试问题-周俊峰】测试问题
spanHtml+="<input name=\"cons["+i+"].val\" value='"+v+"' type=\"text\" class=\"searchbox-inputtext\" onclick=\"popupClick(this,'"+splitArr[2]+"','val','"+splitArr[0]+"')\"/>";
//update-end-author:taoyan date:20180802 for:TASK #3044 【jeecg测试问题-周俊峰】测试问题
spanVal.html(spanHtml);
$("input[name='cons["+i+"].val']").css({"background":"url(\"plug-in/diy/icons/search.png\") no-repeat 105px","width":"130px"});
} else {

@ -1,9 +1,9 @@
package org.jeecgframework.web.cgform.common;
import org.apache.commons.lang.StringUtils;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.oConvertUtils;
import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity;
import org.jeecgframework.web.cgform.service.impl.config.util.ExtendJsonConvert;
/**
* @author
* @date 2013-08-11 09:47:30
@ -57,23 +57,36 @@ public class FormHtmlUtil {
private static String getTextAreaFormHtml(
CgFormFieldEntity cgFormFieldEntity) {
StringBuilder html = new StringBuilder("");
html.append("<textarea rows=\"6\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
if(cgFormFieldEntity.getFieldValidType()!=null&&cgFormFieldEntity.getFieldValidType().length()>0){
html.append("datatype=\"").append(cgFormFieldEntity.getFieldValidType()).append("\" ");
}else{
html.append("datatype=\"*\" ");
}
html.append("\\>");
html.append("\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}</textarea> ");
return html.toString();
// html.append("\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}</textarea> ");
html.append("\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}</textarea> ");
return html.toString();
}
/**
@ -85,13 +98,26 @@ public class FormHtmlUtil {
html.append("<input type=\"text\" ");
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}
// html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
html.append("value=\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
if(cgFormFieldEntity.getFieldValidType()!=null&&cgFormFieldEntity.getFieldValidType().length()>0){
html.append("datatype=\"").append(cgFormFieldEntity.getFieldValidType()).append("\" ");
}else{
@ -116,15 +142,26 @@ public class FormHtmlUtil {
html.append("<input type=\"text\" ");
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
// html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
html.append("value=\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
html.append("validtype=\"").append(tableName).append(",").append(cgFormFieldEntity.getFieldName()).append(",id\" ");
html.append("datatype=\"*\" ");
html.append("\\/>");
@ -140,13 +177,26 @@ public class FormHtmlUtil {
html.append("<input type=\"password\" ");
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}
// html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
html.append("value=\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
if(cgFormFieldEntity.getFieldValidType()!=null&&cgFormFieldEntity.getFieldValidType().length()>0){
html.append("datatype=\"").append(cgFormFieldEntity.getFieldValidType()).append("\" ");
}else{
@ -174,7 +224,10 @@ public class FormHtmlUtil {
html.append(" var=\"dictDataList\">");
html.append("<#list dictDataList as dictdata>");
html.append(" <input type=\"radio\" value=\"\\${dictdata.typecode?if_exists?html}\" name=\""+cgFormFieldEntity.getFieldName()+"\" ");
html.append("<#if dictdata.typecode=='\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}'>");
// html.append("<#if dictdata.typecode=='\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}'>");
html.append("<#if dictdata.typecode==\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\">");
html.append(" checked=\"true\" ");
html.append("</#if> ");
html.append(">");
@ -197,7 +250,8 @@ public class FormHtmlUtil {
StringBuilder html = new StringBuilder("");
html.append("<#assign checkboxstr>\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}</#assign>");
// html.append("<#assign checkboxstr>\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}</#assign>");
html.append("<#assign checkboxstr>\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}</#assign>");
html.append("<#assign checkboxlist=checkboxstr?split(\",\")> ");
html.append("<@DictData name=\""+cgFormFieldEntity.getDictField()+"\"");
@ -241,8 +295,10 @@ public class FormHtmlUtil {
html.append("<select name=\""+cgFormFieldEntity.getFieldName()+"\" id=\""+cgFormFieldEntity.getFieldName()+"\"> ");
html.append("<#list dictDataList as dictdata>");
html.append(" <option value=\"\\${dictdata.typecode?if_exists?html}\" ");
html.append("<#if dictdata.typecode=='\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}'>");
html.append(" selected=\"selected\" ");
// html.append("<#if dictdata.typecode=='\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}'>");
html.append("<#if dictdata.typecode==\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\">");
html.append("</#if> ");
html.append(">");
html.append("\\${dictdata.typename?if_exists?html}");
@ -264,15 +320,28 @@ public class FormHtmlUtil {
html.append("<input type=\"text\" ");
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
html.append("class=\"Wdate\" ");
html.append("onClick=\"WdatePicker()\" ");
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}
// html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
html.append("value=\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
if(cgFormFieldEntity.getFieldValidType()!=null&&cgFormFieldEntity.getFieldValidType().length()>0){
html.append("datatype=\"").append(cgFormFieldEntity.getFieldValidType()).append("\" ");
}else{
@ -291,15 +360,28 @@ public class FormHtmlUtil {
html.append("<input type=\"text\" ");
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
html.append("class=\"Wdate\" ");
html.append("onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})\" ");
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}
// html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
html.append("value=\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\" ");
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
if(cgFormFieldEntity.getFieldValidType()!=null&&cgFormFieldEntity.getFieldValidType().length()>0){
html.append("datatype=\"").append(cgFormFieldEntity.getFieldValidType()).append("\" ");
}else{
@ -370,16 +452,29 @@ public class FormHtmlUtil {
html.append("<input type=\"text\" readonly=\"readonly\" class=\"searchbox-inputtext\" ");
html.append("id=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
html.append("name=\"").append(cgFormFieldEntity.getFieldName()).append("\" ");
if(StringUtils.isNotEmpty(cgFormFieldEntity.getExtendJson())){
html.append(" "+ExtendJsonConvert.json2Html(cgFormFieldEntity.getExtendJson())+" ");;
}
if(cgFormFieldEntity.getFieldLength()!=null&&cgFormFieldEntity.getFieldLength()>0){
html.append("style=\"width:").append(cgFormFieldEntity.getFieldLength()).append("px\" ");
}
html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
// html.append("value=\"\\${").append(cgFormFieldEntity.getFieldName()).append("?if_exists?html}\" ");
html.append("value=\"\\${data\\['"+cgFormFieldEntity.getTable().getTableName()+"'\\]\\['").append(cgFormFieldEntity.getFieldName()).append("'\\]?if_exists?html}\" ");
html.append("onclick=\"popupClick(this,'"+cgFormFieldEntity.getDictText()+"','"+cgFormFieldEntity.getDictField()+"','"+cgFormFieldEntity.getDictTable()+"');\" ");
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}
if("Y".equals(cgFormFieldEntity.getFieldMustInput())){
//校验必填
html.append("ignore=\"checked\" ");
}else{
if("Y".equals(cgFormFieldEntity.getIsNull())){
html.append("ignore=\"ignore\" ");
}else{
html.append("ignore=\"checked\" ");
}
}
if(cgFormFieldEntity.getFieldValidType()!=null&&cgFormFieldEntity.getFieldValidType().length()>0){
html.append("datatype=\"").append(cgFormFieldEntity.getFieldValidType()).append("\" ");
}else{

@ -337,8 +337,7 @@ public class CgFormBuildController extends BaseController {
pushImages(data, id);
//增加basePath
//String basePath = request.getContextPath();
String basePath = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
String basePath = request.getScheme()+"://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
data.put(CgAutoListConstant.BASEPATH, basePath);
data.put("brower_type", ContextHolderUtils.getSession().getAttribute("brower_type"));
@ -433,8 +432,7 @@ public class CgFormBuildController extends BaseController {
}
StringBuilder sb= new StringBuilder("");
SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme(request);
//String basePath = request.getContextPath();
String basePath = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
String basePath = request.getScheme()+"://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/jquery/jquery-1.8.3.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\""+basePath+"/plug-in/tools/dataformat.js\"></script>");

@ -254,7 +254,11 @@ public class CgformSqlController extends BaseController {
for (PropertyDescriptor pd : pds) {
if(null == reflectHelper.getMethodValue(pd.getName())){
ignores.add(pd.getName());
}else if(reflectHelper.isIgore(pd.getName())){
ignores.add(pd.getName());
}
}
if(t instanceof CgFormHeadPojo){
reflectHelper.setMethodValue("isDbsynch", "N");

@ -1161,8 +1161,16 @@ public class CgFormHeadController extends BaseController {
public void configDatagrid(CgFormHeadEntity cgFormHead,String id,
HttpServletRequest request, HttpServletResponse response,
DataGrid dataGrid) {
String hql = "from CgFormHeadEntity c where c.physiceId = ? order by c.tableVersion asc";
List<CgFormHeadEntity> findHql = systemService.findHql(hql, id);
List<CgFormHeadEntity> findHql = null;
if(oConvertUtils.isNotEmpty(cgFormHead.getTableName())) {
String hql = "from CgFormHeadEntity c where c.physiceId = ? AND c.tableName = ? order by c.tableVersion asc";
findHql = systemService.findHql(hql, id, cgFormHead.getTableName());
} else {
String hql = "from CgFormHeadEntity c where c.physiceId = ? order by c.tableVersion asc";
findHql = systemService.findHql(hql, id);
}
dataGrid.setResults(findHql);
dataGrid.setTotal(findHql.size());
TagUtil.datagrid(response, dataGrid);

@ -251,7 +251,9 @@ public class ExcelTempletController extends BaseController {
}
}
resultMap.put(b.getFieldName(), sb.toString().substring(0, sb.toString().length() - 1));
if(oConvertUtils.isNotEmpty(sb.toString())){
resultMap.put(b.getFieldName(), sb.toString().substring(0, sb.toString().length() - 1));
}
}
}

@ -149,6 +149,9 @@ public class CgformTransController {
logger.info(" columnt : "+ columnt.toString());
String fieldName = columnt.getFieldDbName();
CgFormFieldEntity cgFormField = new CgFormFieldEntity();
cgFormField.setOldFieldName(columnt.getFieldDbName().toLowerCase());
cgFormField.setFieldName(columnt.getFieldDbName()
.toLowerCase());
if (StringUtil.isNotEmpty(columnt.getFiledComment()))

@ -237,7 +237,9 @@ public class CategoryController extends BaseController {
ComboTree tree = new ComboTree();
tree.setId(entity.getCode());
tree.setText(entity.getName());
tree.setIconCls(entity.getIcon().getIconClas());
if(entity.getIcon()!=null){
tree.setIconCls(entity.getIcon().getIconClas());
}
if (entity.getList() != null && entity.getList().size() > 0) {
List<ComboTree> comboTrees = new ArrayList<ComboTree>();
for (int i = 0; i < entity.getList().size(); i++) {

@ -362,16 +362,20 @@ public class CommonController extends BaseController {
public AjaxJson getDictInfo(String dictionary,String dictCondition,Boolean popup,String value, HttpServletRequest request) {
String message = null;
AjaxJson j = new AjaxJson();
Object text = value;
Object text = "--";
if(popup){
//TODO popup处理 (暂不做处理)
text="-- popup暂不支持ajax --";
}else{
boolean flag = tSDictTableConfigService.checkDictAuth(dictionary, dictCondition);
if(flag){
text = tSDictTableConfigService.getDictText(dictionary, dictCondition, value);
}else{
text="-- 字典配置需要授权 --";
}
}
j.setObj(text);
j.setMsg(message);
return j;

@ -288,7 +288,11 @@ public class InterroleController extends BaseController {
if (roleInterfaceList.size() > 0) {
for (InterroleInterfaceEntity roleInterface : roleInterfaceList) {
TSInterfaceEntity inter = (TSInterfaceEntity) roleInterface.getInterfaceEntity();
loginActionlist.add(inter);
if(inter!=null){
loginActionlist.add(inter);
}
}
}
roleInterfaceList.clear();
@ -427,7 +431,11 @@ public class InterroleController extends BaseController {
.findByProperty(InterroleInterfaceEntity.class, "interroleEntity.id", role.getId());
Map<String, InterroleInterfaceEntity> map = new HashMap<String, InterroleInterfaceEntity>();
for (InterroleInterfaceEntity interfaceOfRole : roleInterfaceList) {
map.put(interfaceOfRole.getInterfaceEntity().getId(), interfaceOfRole);
if(interfaceOfRole.getInterfaceEntity()!=null){
map.put(interfaceOfRole.getInterfaceEntity().getId(), interfaceOfRole);
}
}
Set<String> set = new HashSet<String>();
if (StringUtil.isNotEmpty(roleinterface)) {

@ -129,7 +129,9 @@ public class LoginController extends BaseController{
TSUser u = userService.checkUserExits(user);
if (u == null) {
u = userService.findUniqueByProperty(TSUser.class, "email", user.getUserName());
if(u == null || u.getPassword().equals(PasswordUtil.encrypt(u.getUserName(), u.getPassword(), PasswordUtil.getStaticSalt()))){
if(u == null || !u.getPassword().equals(PasswordUtil.encrypt(u.getUserName(),user.getPassword(), PasswordUtil.getStaticSalt()))){
j.setMsg(mutiLangService.getLang("common.username.or.password.error"));
j.setSuccess(false);
return j;

@ -79,17 +79,17 @@ public class NoticeController extends BaseController{
AjaxJson j = new AjaxJson();
try {
TSUser user = ResourceUtil.getSessionUser();
String sql = "SELECT notice.*,noticeRead.is_read as is_read FROM t_s_notice notice "
+ "LEFT JOIN t_s_notice_read_user noticeRead ON notice.id = noticeRead.notice_id "
+ "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = '"+user.getId()+"' ";
if(isRead != null && (isRead == 1 || isRead == 0 )){
sql += " and noticeRead.is_read = " + isRead.intValue();
}else{
sql += " and noticeRead.is_read = 0 ";
+ "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = ? ";
sql += " and noticeRead.is_read = ? ";
sql += " ORDER BY noticeRead.create_time DESC ";
if(isRead==null || !(isRead==1 || isRead ==0)){
isRead = 0;
}
sql += " ORDER BY noticeRead.create_time DESC ";
List<Map<String, Object>> noticeList = systemService.findForJdbc(sql,1,10);
List<Map<String, Object>> noticeList = systemService.findForJdbcParam(sql,1,10,user.getId(),isRead.intValue());
//将List转换成JSON存储
JSONArray result = new JSONArray();
if(noticeList!=null && noticeList.size()>0){
@ -109,13 +109,14 @@ public class NoticeController extends BaseController{
String seeAll = MutiLangUtil.getLang("notice.seeAll");
attrs.put("seeAll", seeAll);
j.setAttributes(attrs);
//获取通知公告总数
String sql2 ="SELECT count(notice.id) FROM t_s_notice notice "
+ "LEFT JOIN t_s_notice_read_user noticeRead ON notice.id = noticeRead.notice_id "
+ "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = '"+user.getId()+"' "
+ "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = ? "
+ "and noticeRead.is_read = 0";
List<Map<String, Object>> resultList2 = systemService.findForJdbc(sql2);
List<Map<String, Object>> resultList2 = systemService.findForJdbc(sql2,user.getId());
Object count = resultList2.get(0).get("count");
j.setObj(count);
} catch (Exception e) {
@ -173,14 +174,15 @@ public class NoticeController extends BaseController{
// //查询条件组装器
// org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, notice, request.getParameterMap());
// this.noticeService.getDataGridReturn(cq, true);
TSUser user = ResourceUtil.getSessionUser();
String sql = "SELECT notice.*,noticeRead.is_read as is_read FROM t_s_notice notice "
+ " LEFT JOIN t_s_notice_read_user noticeRead ON notice.id = noticeRead.notice_id "
+ " WHERE noticeRead.del_flag = 0 and noticeRead.user_id = '"+user.getId()+"' "
+ " WHERE noticeRead.del_flag = 0 and noticeRead.user_id = ? "
+ " ORDER BY noticeRead.is_read asc,noticeRead.create_time DESC ";
List<Map<String, Object>> resultList = systemService.findForJdbc(sql,dataGrid.getPage(),dataGrid.getRows());
List<Map<String, Object>> resultList = systemService.findForJdbcParam(sql,dataGrid.getPage(),dataGrid.getRows(),user.getId());
//将List转换成JSON存储
List<Map<String, Object>> noticeList = new ArrayList<Map<String, Object>>();
if(resultList!=null && resultList.size()>0){
@ -197,9 +199,11 @@ public class NoticeController extends BaseController{
}
dataGrid.setResults(noticeList);
String getCountSql ="SELECT count(notice.id) as count FROM t_s_notice notice LEFT JOIN t_s_notice_read_user noticeRead ON notice.id = noticeRead.notice_id "
+ "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = '"+user.getId()+"' and noticeRead.is_read = 0";
List<Map<String, Object>> resultList2 = systemService.findForJdbc(getCountSql);
+ "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = ? and noticeRead.is_read = 0";
List<Map<String, Object>> resultList2 = systemService.findForJdbc(getCountSql, user.getId());
Object count = resultList2.get(0).get("count");
dataGrid.setTotal(Integer.valueOf(count.toString()));
TagUtil.datagrid(response, dataGrid);

@ -960,8 +960,11 @@ public class RoleController extends BaseController {
subCq.eq("TSRole.id", roleId);
subCq.add();
cq.add(Property.forName("id").notIn(subCq.getDetachedCriteria()));
cq.eq("deleteFlag", new Short("0"));//删除状态,不删除
cq.eq("userType","1");//系统用户
cq.add();
this.systemService.getDataGridReturn(cq, true);

@ -41,6 +41,8 @@ import org.jeecgframework.core.enums.StoreUploadFilePathEnum;
import org.jeecgframework.core.extend.hqlsearch.parse.ObjectParseUtil;
import org.jeecgframework.core.extend.hqlsearch.parse.PageValueConvertRuleEnum;
import org.jeecgframework.core.extend.hqlsearch.parse.vo.HqlRuleEnum;
import org.jeecgframework.core.extend.swftools.SwfToolsUtil;
import org.jeecgframework.core.util.FileUtils;
import org.jeecgframework.core.util.JSONHelper;
import org.jeecgframework.core.util.ListUtils;
import org.jeecgframework.core.util.MutiLangSqlCriteriaUtil;
@ -60,6 +62,7 @@ import org.jeecgframework.web.system.manager.ClientManager;
import org.jeecgframework.web.system.manager.ClientSort;
import org.jeecgframework.web.system.pojo.base.Client;
import org.jeecgframework.web.system.pojo.base.DataLogDiff;
import org.jeecgframework.web.system.pojo.base.DictEntity;
import org.jeecgframework.web.system.pojo.base.TSDatalogEntity;
import org.jeecgframework.web.system.pojo.base.TSDepart;
import org.jeecgframework.web.system.pojo.base.TSFunction;
@ -127,27 +130,45 @@ public class SystemController extends BaseController {
@RequestMapping(params = "typeListJson")
@ResponseBody
public AjaxJson typeListJson(@RequestParam(required=true)String typeGroupName) {
public AjaxJson typeListJson(@RequestParam(required=true)String typeGroupName,HttpServletRequest request) {
AjaxJson ajaxJson = new AjaxJson();
JSONArray typeArray = new JSONArray();
try {
List<TSType> typeList = ResourceUtil.getCacheTypes(typeGroupName.toLowerCase());
JSONArray typeArray = new JSONArray();
JSONObject headJson = new JSONObject();
headJson.put("typecode", "");
headJson.put("typename", "");
typeArray.add(headJson);
if(typeList != null && !typeList.isEmpty()){
for (TSType type : typeList) {
JSONObject typeJson = new JSONObject();
typeJson.put("typecode", type.getTypecode());
String typename = type.getTypename();
if(MutiLangUtil.existLangKey(typename)){
typename = MutiLangUtil.doMutiLang(typename,"");
}
typeJson.put("typename",typename );
String dicTable = request.getParameter("dicTable");
if(oConvertUtils.isEmpty(dicTable)){
List<TSType> typeList = ResourceUtil.getCacheTypes(typeGroupName.toLowerCase());
JSONObject headJson = new JSONObject();
headJson.put("typecode", "");
headJson.put("typename", "");
typeArray.add(headJson);
if(typeList != null && !typeList.isEmpty()){
for (TSType type : typeList) {
JSONObject typeJson = new JSONObject();
typeJson.put("typecode", type.getTypecode());
String typename = type.getTypename();
if(MutiLangUtil.existLangKey(typename)){
typename = MutiLangUtil.doMutiLang(typename,"");
}
typeJson.put("typename",typename );
typeArray.add(typeJson);
typeArray.add(typeJson);
}
}
}else{
String dicText = request.getParameter("dicText");
List<DictEntity> list = systemService.queryDict(dicTable, typeGroupName, dicText);
if(list!=null && list.size()>0){
for (DictEntity type : list) {
JSONObject typeJson = new JSONObject();
typeJson.put("typecode", type.getTypecode());
String typename = type.getTypename();
if(MutiLangUtil.existLangKey(typename)){
typename = MutiLangUtil.doMutiLang(typename,"");
}
typeJson.put("typename",typename );
typeArray.add(typeJson);
}
}
}
ajaxJson.setObj(typeArray);
@ -1531,7 +1552,6 @@ public class SystemController extends BaseController {
return success;
}
/**
* WebUploader
* /
@ -1543,8 +1563,14 @@ public class SystemController extends BaseController {
String msg="啥都没干-没传参数吧!";
String upFlag=request.getParameter("isup");
String delFlag=request.getParameter("isdel");
String swfTransform=request.getParameter("swfTransform");//是否将文件转换成swf
//String ctxPath = request.getSession().getServletContext().getRealPath("");
String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//demo中设置为D://upFiles,实际项目应因事制宜
//默认上传文件是否转换为swf实现在线预览功能开关
String globalSwfTransformFlag = ResourceUtil.getConfigByName("swf.transform.flag");
logger.debug("----ctxPath-----"+ctxPath);
try {
//如果是上传操作
@ -1566,16 +1592,28 @@ public class SystemController extends BaseController {
fileName = orgName.substring(0,orgName.lastIndexOf("."))+"_"+System.currentTimeMillis()+orgName.substring(orgName.indexOf("."));
String savePath = file.getPath() + File.separator + fileName;
File savefile = new File(savePath);
FileCopyUtils.copy(mf.getBytes(), savefile);
String fileExt = FileUtils.getExtend(fileName);
if("txt".equals(fileExt)){
FileUtils.uploadTxtFile(mf, savePath);
}else{
File savefile = new File(savePath);
FileCopyUtils.copy(mf.getBytes(), savefile);
}
msg="上传成功";
j.setMsg(msg);
String dbpath=bizPath+File.separator+nowday+File.separator+fileName;
logger.debug("---dbpath----"+dbpath);
if(dbpath.contains("\\")){
dbpath = dbpath.replace("\\","/");
}
j.setObj(dbpath);
//1、将文件路径赋值给obj,前台可获取之,随表单提交,然后数据库中存储该路径
//2、demo这里用的是AjaxJson对象,开发者可自定义返回对象,但是用t标签的时候路径属性名需为 obj或 filePath 或自己在标签内指定若在标签内指定则action返回路径的名称应保持一致
//如果是删除操作
if("true".equals(globalSwfTransformFlag) && "true".equals(swfTransform)){
//转换swf
SwfToolsUtil.convert2SWF(savePath);
}
//如果是删除操作
}else if("1".equals(delFlag)){
String path=request.getParameter("path");
String delpath=ctxPath+File.separator+path;
@ -1588,6 +1626,21 @@ public class SystemController extends BaseController {
if(fileDelete.delete()){
msg="--------成功删除文件---------"+delpath;
logger.info(msg);
//删除swf/pdf文件
if("true".equals(globalSwfTransformFlag) && "true".equals(swfTransform)){
try {
String swfPath = FileUtils.getSwfPath(delpath);
new File(swfPath).delete();
logger.info("--------成功删除swf文件---------"+swfPath);
if(!delpath.endsWith("pdf")){
String pdfPath = delpath.substring(0, delpath.lastIndexOf(".")+1)+"pdf";
new File(pdfPath).delete();
logger.info("--------成功删除pdf文件---------"+pdfPath);
}
} catch (Exception e) {
logger.info("swf文件ORpdf文件未删除成功");
}
}
}else{
j.setSuccess(false);
msg="没删除成功--jdk的问题还是你文件的问题请重新试试";
@ -1608,6 +1661,25 @@ public class SystemController extends BaseController {
j.setMsg(msg);
return j;
}
/**
* /word/excel/PDF
* @author taoYan
* @since 2018726
*/
@RequestMapping(params = "openViewFile")
public ModelAndView openViewFile(HttpServletRequest request) {
String inputFile = request.getParameter("path");
String extend=FileUtils.getExtend(inputFile);
if (FileUtils.isPicture(extend)) {
request.setAttribute("realpath", "img/server/"+inputFile);
return new ModelAndView("common/upload/imageView");
}else{
String swfPath = FileUtils.getSwfPath(inputFile);
request.setAttribute("swfpath", "img/server/"+swfPath+"?down=true");
return new ModelAndView("common/upload/swfView");
}
}
// /**
// * 获取图片流/获取文件用于下载

@ -10,6 +10,8 @@ import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
/**
* @Title: Entity
@ -58,6 +60,9 @@ public class InterroleInterfaceEntity implements java.io.Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "interface_id")
@NotFound(action=NotFoundAction.IGNORE)
public TSInterfaceEntity getInterfaceEntity() {
return this.interfaceEntity;
}

@ -10,6 +10,8 @@ import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
@ -108,6 +110,9 @@ public class TSDepartAuthgFunctionRelEntity implements java.io.Serializable {
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "auth_id")
@NotFound(action=NotFoundAction.IGNORE)
public TSFunction getTsFunction() {
return tsFunction;
}

@ -72,7 +72,9 @@ public class TSDictTableConfigServiceImpl extends CommonServiceImpl implements T
@Override
public Object getDictText(String dictionary, String dictCondition,String value) {
Object text = value;
Object text = "--";
try {
//自定义字典处理
String[] dic = dictionary.split(",");

@ -27,6 +27,9 @@
</#if>
</#list>
<t:base type="bootstrap,layer,validform,<#if uploadFlag==1>webuploader,</#if>bootstrap-form"></t:base>
<script src="${'$'}{webRoot}/plug-in/lhgDialog/lhgdialog.min.js"></script>
<script src="${'$'}{webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>
<script src="${'$'}{webRoot}/plug-in/tools/curdtools.js"></script>
</head>
<body>
<div class="container" style="width:100%;overflow-x:hidden">
@ -251,8 +254,8 @@ function formControlInit(){
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});
}
@ -286,6 +289,10 @@ function resetTrNum(tableId) {
if (onclick_str.indexOf("#index#") >= 0){
$this.attr("onclick",onclick_str.replace(/#index#/g,i));
}else{
var s = onclick_str.indexOf("[");
var e = onclick_str.indexOf("]");
var new_onclick_str = onclick_str.substring(s+1,e);
$this.attr("onclick",onclick_str.replace(new_onclick_str,i));
}
}
if(validtype_str!=null){
@ -315,6 +322,31 @@ function deleteSelectRows(tableId){
<#-- update--end--author:jiaqiankun date:20180710 forTASK #2933 【严重bug 代码生成器】一对多table风格默认编辑数据点击任意一条明细数据删除会把所有的明细删掉 -->
resetTrNum(tableId);
}
<#-- update--begin--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
//通用弹出式文件上传
function onetomanyUpload(inputName){
$.dialog({
content: "url:${'$'}{webRoot}/systemController.do?commonWebUpload",
lock : true,
title:"文件上传",
zIndex:getzIndex(),
width:700,
height: 200,
parent:windowapi,
cache:false,
ok: function(){
var iframe = this.iframe.contentWindow;
var url = iframe.uploadCallback();
$("input[name='"+inputName+"']").val(url);
$("input[name='"+inputName+"']").next("a").attr("href","img/server/"+url+"?down=true").html("下载");
return true;
},
cancelVal: '关闭',
cancel: function(){
}
});
}
<#-- update--end--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
</script>
<#if (cgformConfig.formJs.cgJsStr)?? && cgformConfig.formJs.cgJsStr!="">
<script type="text/javascript">

@ -27,6 +27,9 @@
</#if>
</#list>
<t:base type="bootstrap,layer,validform,<#if uploadFlag==1>webuploader,</#if>bootstrap-form"></t:base>
<script src="${'$'}{webRoot}/plug-in/lhgDialog/lhgdialog.min.js"></script>
<script src="${'$'}{webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>
<script src="${'$'}{webRoot}/plug-in/tools/curdtools.js"></script>
</head>
<body>
<div class="container" style="width:100%;overflow-x:hidden">
@ -284,8 +287,8 @@ function formControlInit(){
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});
}
@ -319,6 +322,10 @@ function resetTrNum(tableId) {
if (onclick_str.indexOf("#index#") >= 0){
$this.attr("onclick",onclick_str.replace(/#index#/g,i));
}else{
var s = onclick_str.indexOf("[");
var e = onclick_str.indexOf("]");
var new_onclick_str = onclick_str.substring(s+1,e);
$this.attr("onclick",onclick_str.replace(new_onclick_str,i));
}
}
if(validtype_str!=null){
@ -348,6 +355,29 @@ function deleteSelectRows(tableId){
<#-- update--end--author:jiaqiankun date:20180710 forTASK #2933 【严重bug 代码生成器】一对多table风格默认编辑数据点击任意一条明细数据删除会把所有的明细删掉 -->
resetTrNum(tableId);
}
//通用弹出式文件上传
function onetomanyUpload(inputName){
$.dialog({
content: "url:${'$'}{webRoot}/systemController.do?commonWebUpload",
lock : true,
title:"文件上传",
zIndex:getzIndex(),
width:700,
height: 200,
parent:windowapi,
cache:false,
ok: function(){
var iframe = this.iframe.contentWindow;
var url = iframe.uploadCallback();
$("input[name='"+inputName+"']").val(url);
$("input[name='"+inputName+"']").next("a").attr("href","img/server/"+url+"?down=true").html("下载");
return true;
},
cancelVal: '关闭',
cancel: function(){
}
});
}
</script>
<#if (cgformConfig.formJs.cgJsStr)?? && cgformConfig.formJs.cgJsStr!="">
<script type="text/javascript">

@ -194,8 +194,8 @@ $(document).ready(function() {
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -45,7 +45,7 @@
</div>
<div class="col-md-9 col-sm-9 col-xs-9 bt-content">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" class="form-control" rows="6" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType=='text'>
<input name="${po.fieldName}" type="text" class="form-control" maxlength="${po.length?c}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" tableName="${po.table.tableName}" fieldName="${po.oldFieldName}"/> />
<#elseif po.showType=='password'>
@ -82,7 +82,7 @@
</div>
<div class="col-md-9 col-sm-9 col-xs-9 bt-content">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<#assign ue_widget_count = ue_widget_count + 1>
@ -91,7 +91,7 @@
<script type="text/javascript" charset="utf-8" src="plug-in/ueditor/ueditor.all.min.js"></script>
</#if>
<#-- update--end--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<textarea name="${po.fieldName}" id="${po.fieldName}" style="width: 650px;height:300px">${'$'}{${entityName?uncap_first}.${po.fieldName} }</textarea>
<textarea name="${po.fieldName}" id="${po.fieldName}" style="width: 650px;height:300px">${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<script type="text/javascript">
<#-- update--begin--author:zhangjiaqiang date:20170522 for:editor编辑器变量唯一 -->
var ${po.fieldName}_editor = UE.getEditor('${po.fieldName}');
@ -143,7 +143,7 @@
<div class="col-sm-7">
<div class="input-group" style="width:100%">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<#assign ue_widget_count = ue_widget_count + 1>
@ -201,8 +201,8 @@ $(document).ready(function() {
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -27,6 +27,9 @@
</#if>
</#list>
<t:base type="bootstrap,layer,validform,<#if uploadFlag==1>webuploader,</#if>bootstrap-form"></t:base>
<script src="${'$'}{webRoot}/plug-in/lhgDialog/lhgdialog.min.js"></script>
<script src="${'$'}{webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>
<script src="${'$'}{webRoot}/plug-in/tools/curdtools.js"></script>
</head>
<body>
<div class="container" style="width:100%;overflow-x:hidden">
@ -251,8 +254,8 @@ function formControlInit(){
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});
}
@ -286,6 +289,10 @@ function resetTrNum(tableId) {
if (onclick_str.indexOf("#index#") >= 0){
$this.attr("onclick",onclick_str.replace(/#index#/g,i));
}else{
var s = onclick_str.indexOf("[");
var e = onclick_str.indexOf("]");
var new_onclick_str = onclick_str.substring(s+1,e);
$this.attr("onclick",onclick_str.replace(new_onclick_str,i));
}
}
if(validtype_str!=null){
@ -315,6 +322,31 @@ function deleteSelectRows(tableId){
<#-- update--end--author:jiaqiankun date:20180710 forTASK #2933 【严重bug 代码生成器】一对多table风格默认编辑数据点击任意一条明细数据删除会把所有的明细删掉 -->
resetTrNum(tableId);
}
<#-- update--end--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
//通用弹出式文件上传
function onetomanyUpload(inputName){
$.dialog({
content: "url:${'$'}{webRoot}/systemController.do?commonWebUpload",
lock : true,
title:"文件上传",
zIndex:getzIndex(),
width:700,
height: 200,
parent:windowapi,
cache:false,
ok: function(){
var iframe = this.iframe.contentWindow;
var url = iframe.uploadCallback();
$("input[name='"+inputName+"']").val(url);
$("input[name='"+inputName+"']").next("a").attr("href","img/server/"+url+"?down=true").html("下载");
return true;
},
cancelVal: '关闭',
cancel: function(){
}
});
}
<#-- update--end--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造) -->
</script>
<#if (cgformConfig.formJs.cgJsStr)?? && cgformConfig.formJs.cgJsStr!="">
<script type="text/javascript">

@ -27,6 +27,9 @@
</#if>
</#list>
<t:base type="bootstrap,layer,validform,<#if uploadFlag==1>webuploader,</#if>bootstrap-form"></t:base>
<script src="${'$'}{webRoot}/plug-in/lhgDialog/lhgdialog.min.js"></script>
<script src="${'$'}{webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>
<script src="${'$'}{webRoot}/plug-in/tools/curdtools.js"></script>
</head>
<body>
<div class="container" style="width:100%;overflow-x:hidden">
@ -284,8 +287,8 @@ function formControlInit(){
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});
}
@ -319,6 +322,10 @@ function resetTrNum(tableId) {
if (onclick_str.indexOf("#index#") >= 0){
$this.attr("onclick",onclick_str.replace(/#index#/g,i));
}else{
var s = onclick_str.indexOf("[");
var e = onclick_str.indexOf("]");
var new_onclick_str = onclick_str.substring(s+1,e);
$this.attr("onclick",onclick_str.replace(new_onclick_str,i));
}
}
if(validtype_str!=null){
@ -348,6 +355,31 @@ function deleteSelectRows(tableId){
<#-- update--end--author:jiaqiankun date:20180710 forTASK #2933 【严重bug 代码生成器】一对多table风格默认编辑数据点击任意一条明细数据删除会把所有的明细删掉 -->
resetTrNum(tableId);
}
<#-- update--begin--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
//通用弹出式文件上传
function onetomanyUpload(inputName){
$.dialog({
content: "url:${'$'}{webRoot}/systemController.do?commonWebUpload",
lock : true,
title:"文件上传",
zIndex:getzIndex(),
width:700,
height: 200,
parent:windowapi,
cache:false,
ok: function(){
var iframe = this.iframe.contentWindow;
var url = iframe.uploadCallback();
$("input[name='"+inputName+"']").val(url);
$("input[name='"+inputName+"']").next("a").attr("href","img/server/"+url+"?down=true").html("下载");
return true;
},
cancelVal: '关闭',
cancel: function(){
}
});
}
<#-- update--end--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
</script>
<#if (cgformConfig.formJs.cgJsStr)?? && cgformConfig.formJs.cgJsStr!="">
<script type="text/javascript">

@ -141,10 +141,10 @@
<div class="panel-body" style="padding-top: 0px; padding-bottom: 0px;">
<!-- toolbar -->
<div id="toolbar">
<button onclick="add('录入','${entityName?uncap_first}Controller.do?goAdd','${entityName?uncap_first}List',600,400)" id="btn_add" class="btn btn-primary btn-sm">
<button onclick="add('录入','${entityName?uncap_first}Controller.do?goAdd','${entityName?uncap_first}List',1000,600)" id="btn_add" class="btn btn-primary btn-sm">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> 录入
</button>
<button onclick="update('编辑','${entityName?uncap_first}Controller.do?goUpdate','${entityName?uncap_first}List',600,400)" id="btn_edit" class="btn btn-success btn-sm">
<button onclick="update('编辑','${entityName?uncap_first}Controller.do?goUpdate','${entityName?uncap_first}List',1000,600)" id="btn_edit" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> 编辑
</button>
<button onclick="deleteALLSelect('批量删除','${entityName?uncap_first}Controller.do?doBatchDel','${entityName?uncap_first}List',600,400)" id="btn_delete" class="btn btn-danger btn-sm">

@ -192,8 +192,8 @@ $(document).ready(function() {
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -45,7 +45,7 @@
</div>
<div class="col-md-9 col-sm-9 col-xs-9 bt-content">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" class="form-control" rows="6" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType=='text'>
<input name="${po.fieldName}" type="text" class="form-control" maxlength="${po.length?c}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" tableName="${po.table.tableName}" fieldName="${po.oldFieldName}"/> />
<#elseif po.showType=='password'>
@ -82,7 +82,7 @@
</div>
<div class="col-md-9 col-sm-9 col-xs-9 bt-content">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<#assign ue_widget_count = ue_widget_count + 1>
@ -143,7 +143,7 @@
<div class="col-sm-7">
<div class="input-group" style="width:100%">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<#assign ue_widget_count = ue_widget_count + 1>
@ -201,8 +201,8 @@ $(document).ready(function() {
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -27,6 +27,9 @@
</#if>
</#list>
<t:base type="bootstrap,layer,validform,<#if uploadFlag==1>webuploader,</#if>bootstrap-form"></t:base>
<script src="${'$'}{webRoot}/plug-in/lhgDialog/lhgdialog.min.js"></script>
<script src="${'$'}{webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>
<script src="${'$'}{webRoot}/plug-in/tools/curdtools.js"></script>
</head>
<body>
<div class="container" style="width:100%;overflow-x:hidden">
@ -251,8 +254,8 @@ function formControlInit(){
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});
}
@ -286,6 +289,10 @@ function resetTrNum(tableId) {
if (onclick_str.indexOf("#index#") >= 0){
$this.attr("onclick",onclick_str.replace(/#index#/g,i));
}else{
var s = onclick_str.indexOf("[");
var e = onclick_str.indexOf("]");
var new_onclick_str = onclick_str.substring(s+1,e);
$this.attr("onclick",onclick_str.replace(new_onclick_str,i));
}
}
if(validtype_str!=null){
@ -315,6 +322,31 @@ function deleteSelectRows(tableId){
<#-- update--end--author:jiaqiankun date:20180710 forTASK #2933 【严重bug 代码生成器】一对多table风格默认编辑数据点击任意一条明细数据删除会把所有的明细删掉 -->
resetTrNum(tableId);
}
<#-- update--begin--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
//通用弹出式文件上传
function onetomanyUpload(inputName){
$.dialog({
content: "url:${'$'}{webRoot}/systemController.do?commonWebUpload",
lock : true,
title:"文件上传",
zIndex:getzIndex(),
width:700,
height: 200,
parent:windowapi,
cache:false,
ok: function(){
var iframe = this.iframe.contentWindow;
var url = iframe.uploadCallback();
$("input[name='"+inputName+"']").val(url);
$("input[name='"+inputName+"']").next("a").attr("href","img/server/"+url+"?down=true").html("下载");
return true;
},
cancelVal: '关闭',
cancel: function(){
}
});
}
<#-- update--end--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
</script>
<#if (cgformConfig.formJs.cgJsStr)?? && cgformConfig.formJs.cgJsStr!="">
<script type="text/javascript">

@ -27,6 +27,9 @@
</#if>
</#list>
<t:base type="bootstrap,layer,validform,<#if uploadFlag==1>webuploader,</#if>bootstrap-form"></t:base>
<script src="${'$'}{webRoot}/plug-in/lhgDialog/lhgdialog.min.js"></script>
<script src="${'$'}{webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script>
<script src="${'$'}{webRoot}/plug-in/tools/curdtools.js"></script>
</head>
<body>
<div class="container" style="width:100%;overflow-x:hidden">
@ -284,8 +287,8 @@ function formControlInit(){
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});
}
@ -348,6 +351,31 @@ function deleteSelectRows(tableId){
<#-- update--end--author:jiaqiankun date:20180710 forTASK #2933 【严重bug 代码生成器】一对多table风格默认编辑数据点击任意一条明细数据删除会把所有的明细删掉 -->
resetTrNum(tableId);
}
<#-- update--begin--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
//通用弹出式文件上传
function onetomanyUpload(inputName){
$.dialog({
content: "url:${'$'}{webRoot}/systemController.do?commonWebUpload",
lock : true,
title:"文件上传",
zIndex:getzIndex(),
width:700,
height: 200,
parent:windowapi,
cache:false,
ok: function(){
var iframe = this.iframe.contentWindow;
var url = iframe.uploadCallback();
$("input[name='"+inputName+"']").val(url);
$("input[name='"+inputName+"']").next("a").attr("href","img/server/"+url+"?down=true").html("下载");
return true;
},
cancelVal: '关闭',
cancel: function(){
}
});
}
<#-- update--end--author:liushaoqian date:20180720 forTASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造)-->
</script>
<#if (cgformConfig.formJs.cgJsStr)?? && cgformConfig.formJs.cgJsStr!="">
<script type="text/javascript">

@ -192,8 +192,8 @@ $(document).ready(function() {
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -45,7 +45,7 @@
</div>
<div class="col-md-9 col-sm-9 col-xs-9 bt-content">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" class="form-control" rows="6" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType=='text'>
<input name="${po.fieldName}" type="text" class="form-control" maxlength="${po.length?c}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" tableName="${po.table.tableName}" fieldName="${po.oldFieldName}"/> />
<#elseif po.showType=='password'>
@ -82,7 +82,7 @@
</div>
<div class="col-md-9 col-sm-9 col-xs-9 bt-content">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<#assign ue_widget_count = ue_widget_count + 1>
@ -143,7 +143,7 @@
<div class="col-sm-7">
<div class="input-group" style="width:100%">
<#if po.showType=='textarea'>
<textarea name="${po.fieldName}" value = "${'$'}{${entityName?uncap_first}.${po.fieldName}}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>></textarea>
<textarea name="${po.fieldName}" class="form-control input-sm" rows="6" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}"/>>${'$'}{${entityName?uncap_first}.${po.fieldName}}</textarea>
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->
<#assign ue_widget_count = ue_widget_count + 1>
@ -201,8 +201,8 @@ $(document).ready(function() {
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -41,8 +41,8 @@
<form class = "page-query">
<#list columns as po1>
<#if po1.isQuery =='Y'>
<#-- update--begin--author:liushaoqian date:20180713 for:TASK #2965 【代码生成器--刘少谦】一对多代码生成器模板测试 -->
<#if po1.showType?index_of("datetime")!=-1>
<#-- update--begin--author:liushaoqian date:20180720 for:TASK #2965 【代码生成器--刘少谦】一对多代码生成器模板测试 -->
<#if po1.showType?index_of("datetime")!=-1 || po1.showType?index_of("date")!=-1 || po1.showType?index_of("timestamp")!=-1>
<#if po1.queryMode =='group'>
<span class="query-item" style="max-width: 83%;display: inline-block;display:-moz-inline-box;">
<span style="display:-moz-inline-box;display:inline-block;margin-bottom:2px;text-align:justify;">
@ -61,32 +61,59 @@
${po1.content}
</span>
<input type="text" class="form-control input-sm Wdate" onclick="WdatePicker()" id="${tableName}.${fieldMeta[po1.fieldName]}" name="${tableName}.${fieldMeta[po1.fieldName]}"/>
</#if>
<#else>
<span class="query-item" style="max-width: 83%;display: inline-block;display:-moz-inline-box;">
</span>
</span>
</#if>
<#else>
<span class="query-item" style="max-width: 83%;display: inline-block;display:-moz-inline-box;">
<span style="display:-moz-inline-box;display:inline-block;margin-bottom:2px;text-align:justify;">
<span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 90px;text-align:right;text-overflow:ellipsis;-o-text-overflow:ellipsis; overflow: hidden;white-space:nowrap;" >
${po1.content}
</span>
<input type="text" name="${tableName}.${fieldMeta[po1.fieldName]}" style="width: 120px" class="inuptxt">
<input type="text" name="${tableName}.${fieldMeta[po1.fieldName]}" style="width: 120px" class="inuptxt"/>
</span>
</span>
</#if>
<#-- update--end--author:liushaoqian date:20180713 for:TASK #2965 【代码生成器--刘少谦】一对多代码生成器模板测试 -->
<#-- update--end--author:liushaoqian date:20180720 for:TASK #2965 【代码生成器--刘少谦】一对多代码生成器模板测试 -->
</#if>
</#list>
<#list subtables as tb>
<#list subColumnsMap['${tb}'] as po2>
<#if po2.isQuery =='Y'>
<#-- update--begin--author:liushaoqian date:20180713 for:TASK #2965 【代码生成器--刘少谦】一对多代码生成器模板测试 -->
<#if po2.showType?index_of("datetime")!=-1 || po2.showType?index_of("date")!=-1||po2.showType?index_of("timestamp")!=-1>
<#if po2.queryMode =='group'>
<span class="query-item" style="max-width: 83%;display: inline-block;display:-moz-inline-box;">
<span style="display:-moz-inline-box;display:inline-block;margin-bottom:2px;text-align:justify;">
<span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 90px;text-align:right;text-overflow:ellipsis;-o-text-overflow:ellipsis; overflow: hidden;white-space:nowrap;" >
${po2.content}
</span>
<input type="text" name="${tb}.${subFieldMeta[po2.fieldName]}" style="width: 120px" class="inuptxt">
<input type="text" class="form-control input-sm Wdate" onclick="WdatePicker()" id="${tb}.${subFieldMeta[po2.fieldName]}_begin" name="${tb}.${subFieldMeta[po2.fieldName]}_begin"/>
<span class="input-group-addon input-sm">~</span>
<input type="text" class="form-control input-sm Wdate" onclick="WdatePicker()" id="${tb}.${subFieldMeta[po2.fieldName]}_end" name="${tb}.${subFieldMeta[po2.fieldName]}_end"/>
</span>
</span>
<#else>
<span class="query-item" style="max-width: 83%;display: inline-block;display:-moz-inline-box;">
<span style="display:-moz-inline-box;display:inline-block;margin-bottom:2px;text-align:justify;">
<span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 90px;text-align:right;text-overflow:ellipsis;-o-text-overflow:ellipsis; overflow: hidden;white-space:nowrap;" >
${po2.content}
</span>
<input type="text" class="form-control input-sm Wdate" onclick="WdatePicker()" id="${tb}.${subFieldMeta[po2.fieldName]}" name="${tb}.${subFieldMeta[po2.fieldName]}"/>
</span>
</span>
</#if>
<#else>
<span class="query-item" style="max-width: 83%;display: inline-block;display:-moz-inline-box;">
<span style="display:-moz-inline-box;display:inline-block;margin-bottom:2px;text-align:justify;">
<span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 90px;text-align:right;text-overflow:ellipsis;-o-text-overflow:ellipsis; overflow: hidden;white-space:nowrap;" >
${po2.content}
</span>
<input type="text" name="${tb}.${subFieldMeta[po2.fieldName]}" style="width: 120px" class="inuptxt"/>
</span>
</span>
</#if>
</#if>
</#list>
</#list>
@ -180,7 +207,14 @@ $(function(){
}
});
var lenOffset = getQueryareaRow();
var menu_top1 = (78+lenOffset*30)+"px",menu_top2 = '30px';
$('#accDiv').accordion({
firstbuybuy:true,
secondbuybuy:function(go){
var state = go=="collapse"?true:false;
toggleMainMenusTop(menu_top1,menu_top2,state);
},
onSelect:function(title,index){
$('#tab-menus-main').find('.table-menu-'+index).addClass("active");
},

@ -123,15 +123,21 @@ $(function(){
<#if po.showType=='checkbox' || po.showType=='radio' || po.showType=='select' || po.showType=='list'>
<#if optionCodes?index_of(po.dictField) lt 0>
<#assign optionCodes=optionCodes+","+po.dictField >
promiseArr.push(new Promise(function(resolve, reject) {
initDictByCode(${entityName?uncap_first}ListdictsData,"${po.dictField}",resolve);
}));
<#if po.dictTable?if_exists?html!="">
<#if po.showType=='popup'><#rt/>
<#else><#rt/>
initDictByCode(${entityName?uncap_first}ListdictsData,"${po.dictField}",promiseArr,"${po.dictTable}","${po.dictText}");
</#if><#rt/>
<#else><#rt/>
<#if po.dictTable?if_exists?html=="" && po.dictField?if_exists?html!=""><#rt/>
initDictByCode(${entityName?uncap_first}ListdictsData,"${po.dictField}",promiseArr,"","");
</#if><#rt/>
</#if><#rt/>
</#if>
</#if>
</#list>
Promise.all(promiseArr).then(function(results) {
initDatagrid();
$.when.apply(null,promiseArr).done(function(){
initDatagrid();
$('#${entityName?uncap_first}List').datagrid('getPager').pagination({
beforePageText: '',
afterPageText: '/{pages}',
@ -145,20 +151,18 @@ $(function(){
$(this).pagination('loaded');
}
});
<#list columns as po>
<#if po.isQuery =='Y'>
<#if po.showType=='checkbox'||po.showType=='radio'>
loadSearchFormDicts($("#${entityName?uncap_first}Form").find(".${po.fieldName}-search"),${entityName?uncap_first}ListdictsData.${po.dictField},"${po.showType}","${po.fieldName}");
loadSearchFormDicts($("#${entityName?uncap_first}Form").find(".${po.fieldName}-search"),"${po.dictTable}","${po.dictField}","${po.showType}","${po.fieldName}");
<#elseif po.showType=='select' || po.showType=='list'>
loadSearchFormDicts($("#${entityName?uncap_first}Form").find("select[name='${po.fieldName}']"),${entityName?uncap_first}ListdictsData.${po.dictField},"select");
loadSearchFormDicts($("#${entityName?uncap_first}Form").find("select[name='${po.fieldName}']"),"${po.dictTable}","${po.dictField}","select","${po.content}");
</#if>
</#if>
</#list>
}).catch(function(err) {
console.log('Catch: ', err);
}).fail(function(){
console.log("i'm sorry!it's unkown error that i can't resolve as yet");
});
});
//easyui-datagrid实例化
@ -209,7 +213,7 @@ function initDatagrid(){
}
<#elseif po.showType=='checkbox' || po.showType=='radio' || po.showType=='select' || po.showType=='list'>
formatter : function(value, rec, index) {
return listDictFormat(value,${entityName?uncap_first}ListdictsData.${po.dictField});
return listDictFormat(value,"${po.dictField}","${po.dictTable}");
}
<#elseif po.showType=='image' ||po.showType=='file'>
formatter:function(value,rec,index){
@ -301,35 +305,50 @@ function resetSearch(){
}
//加载字典数据
function initDictByCode(dictObj,code,callback){
if(!dictObj[code]){
jQuery.ajax({
url: "systemController.do?typeListJson&typeGroupName="+code,
function initDictByCode(dictObj,code,promiseArr,table,text){
var dictKey = code;
if(code=="id"){
//如果当前dictcode为id那么此处的字典对象对应的key为"表名+id"
dictKey = table+code;
}
if(!dictObj[dictKey]){
var url = "systemController.do?typeListJson&typeGroupName="+code;
if(table){
url += "&dicTable="+table+"&dicText="+text;
}
var dictAjax = jQuery.ajax({
url:url,
type:"GET",
dataType:"JSON",
success: function (back) {
if(back.success){
dictObj[code]= back.obj;
dictObj[dictKey]= back.obj;
}
callback();
}
});
promiseArr.push(dictAjax);
}
}
//加载form查询数据字典项
function loadSearchFormDicts(obj,arr,type,name){
function loadSearchFormDicts(obj,table,code,type,name){
var html = "";
var dictKey = code;
if(code=="id"){
dictKey = table+code;
}
var arr = ${entityName?uncap_first}ListdictsData[dictKey];
for(var a = 0;a < arr.length;a++){
if("select"== type){
if(a==0){
html+="<option value = '' style='display: none'> 请选择"+name+"</option>";
}
html+="<option value = '"+arr[a].typecode+"'>"+arr[a].typename+"</option>";
}else{
if(!arr[a].typecode){
}else{
html+="<input name = '"+name+"' type='"+type+"' value = '"+arr[a].typecode+"'>"+arr[a].typename +"&nbsp;&nbsp;";
}
}
}
obj.html(html);
@ -353,10 +372,15 @@ function getRadioVal(name){
return v;
}
//列表数据字典项格式化
function listDictFormat(value,dicts){
function listDictFormat(value,code,table){
if (!value) return '';
var dictKey = code;
if(code=="id"){
dictKey = table+code;
}
var dicts = ${entityName?uncap_first}ListdictsData[dictKey];
var valArray = value.split(',');
var showVal = '';
var showVal = value;
if (valArray.length > 1) {
for (var k = 0; k < valArray.length; k++) {
if(dicts && dicts.length>0){

@ -83,8 +83,8 @@
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -92,8 +92,8 @@
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
checkboxClass : 'icheckbox_square-green',
radioClass : 'iradio_square-green',
increaseArea : '20%'
});

@ -125,14 +125,20 @@ $(function(){
<#if po.showType=='checkbox' || po.showType=='radio' || po.showType=='select' || po.showType=='list'>
<#if optionCodes?index_of(po.dictField) lt 0>
<#assign optionCodes=optionCodes+","+po.dictField >
promiseArr.push(new Promise(function(resolve, reject) {
initDictByCode(${entityName?uncap_first}ListdictsData,"${po.dictField}",resolve);
}));
<#if po.dictTable?if_exists?html!="">
<#if po.showType=='popup'><#rt/>
<#else><#rt/>
initDictByCode(${entityName?uncap_first}ListdictsData,"${po.dictField}",promiseArr,"${po.dictTable}","${po.dictText}");
</#if><#rt/>
<#else><#rt/>
<#if po.dictTable?if_exists?html=="" && po.dictField?if_exists?html!=""><#rt/>
initDictByCode(${entityName?uncap_first}ListdictsData,"${po.dictField}",promiseArr,"","");
</#if><#rt/>
</#if><#rt/>
</#if>
</#if>
</#list>
Promise.all(promiseArr).then(function(results) {
$.when.apply(null,promiseArr).done(function(){
initDatagrid();
$('#${entityName?uncap_first}List').datagrid('getPager').pagination({
beforePageText: '',
@ -150,17 +156,15 @@ $(function(){
<#list columns as po>
<#if po.isQuery =='Y'>
<#if po.showType=='checkbox'||po.showType=='radio'>
loadSearchFormDicts($("#${entityName?uncap_first}Form").find(".${po.fieldName}-search"),${entityName?uncap_first}ListdictsData.${po.dictField},"${po.showType}","${po.fieldName}");
loadSearchFormDicts($("#${entityName?uncap_first}Form").find(".${po.fieldName}-search"),"${po.dictTable}","${po.dictField}","${po.showType}","${po.fieldName}");
<#elseif po.showType=='select' || po.showType=='list'>
loadSearchFormDicts($("#${entityName?uncap_first}Form").find("select[name='${po.fieldName}']"),${entityName?uncap_first}ListdictsData.${po.dictField},"select");
loadSearchFormDicts($("#${entityName?uncap_first}Form").find("select[name='${po.fieldName}']"),"${po.dictTable}","${po.dictField}","select","${po.content}");
</#if>
</#if>
</#list>
}).catch(function(err) {
console.log('Catch: ', err);
}).fail(function(){
console.log("i'm sorry!it's unkown error that i can't resolve as yet");
});
});
//easyui-datagrid实例化
@ -211,7 +215,7 @@ function initDatagrid(){
}
<#elseif po.showType=='checkbox' || po.showType=='radio' || po.showType=='select' || po.showType=='list'>
formatter : function(value, rec, index) {
return listDictFormat(value,${entityName?uncap_first}ListdictsData.${po.dictField});
return listDictFormat(value,"${po.dictField}","${po.dictTable}");
}
<#elseif po.showType=='image' ||po.showType=='file'>
formatter:function(value,rec,index){
@ -300,34 +304,49 @@ function resetSearch(){
}
//加载字典数据
function initDictByCode(dictObj,code,callback){
if(!dictObj[code]){
jQuery.ajax({
url: "systemController.do?typeListJson&typeGroupName="+code,
function initDictByCode(dictObj,code,promiseArr,table,text){
var dictKey = code;
if(code=="id"){
//如果当前dictcode为id那么此处的字典对象对应的key为"表名+id"
dictKey = table+code;
}
if(!dictObj[dictKey]){
var url = "systemController.do?typeListJson&typeGroupName="+code;
if(table){
url += "&dicTable="+table+"&dicText="+text;
}
var dictAjax = jQuery.ajax({
url:url,
type:"GET",
dataType:"JSON",
success: function (back) {
if(back.success){
dictObj[code]= back.obj;
dictObj[dictKey]= back.obj;
}
callback();
}
});
promiseArr.push(dictAjax);
}
}
//加载form查询数据字典项
function loadSearchFormDicts(obj,arr,type,name){
function loadSearchFormDicts(obj,table,code,type,name){
var html = "";
var dictKey = code;
if(code=="id"){
dictKey = table+code;
}
var arr = ${entityName?uncap_first}ListdictsData[dictKey];
for(var a = 0;a < arr.length;a++){
if("select"== type){
if(a==0){
html+="<option value = '' style='display: none'> 请选择"+name+"</option>";
}
html+="<option value = '"+arr[a].typecode+"'>"+arr[a].typename+"</option>";
}else{
if(!arr[a].typecode){
}else{
html+="<input name = '"+name+"' type='"+type+"' value = '"+arr[a].typecode+"'>"+arr[a].typename +"&nbsp;&nbsp;";
}
}
}
obj.html(html);
@ -351,10 +370,15 @@ function getRadioVal(name){
return v;
}
//列表数据字典项格式化
function listDictFormat(value,dicts){
function listDictFormat(value,code,table){
if (!value) return '';
var dictKey = code;
if(code=="id"){
dictKey = table+code;
}
var dicts = ${entityName?uncap_first}ListdictsData[dictKey];
var valArray = value.split(',');
var showVal = '';
var showVal = value;
if (valArray.length > 1) {
for (var k = 0; k < valArray.length; k++) {
if(dicts && dicts.length>0){

@ -34,8 +34,25 @@
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
</#if>
<#elseif tablestyle != "1" && (po.showType=='file' || po.showType=='image')>
<@webuploadtag po = po defval="${'$'}{${valuepre}${po.fieldName}}"/>
<#-- update--begin--author:liushaoqian Date:20180720 for:TASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造) -->
<#elseif po.showType=='file' || po.showType=='image'>
<#if tablestyle != "1">
<@webuploadtag po = po defval="${'$'}{${valuepre}${po.fieldName}}"/>
<#else>
<input onclick="onetomanyUpload('${namepre}${po.fieldName}')" class="btn btn-default" type="button" value="上传附件" />
<input type="hidden" name="${namepre}${po.fieldName}" <#if valuepre != "">value = "${'$'}{${valuepre}${po.fieldName}}"</#if>/>
<#if valuepre != "">
<a target="_blank" class=".btn-default"<#rt/>
<c:if test="${'$'}{not empty ${valuepre}${po.fieldName}}"><#rt/>
href="img/server/${'$'}{${valuepre}${po.fieldName}}?down=true">下载<#rt/>
</c:if><#rt/>
<c:if test="${'$'}{empty ${valuepre}${po.fieldName}}">></c:if><#rt/>
</a><#rt/>
<#else>
<a target="_blank" class="btn btn-link"></a>
</#if>
</#if>
<#-- update--end--author:liushaoqian Date:20180720 for:TASK #2959 【代码生成器模板】新模板Bootstrap 版本等模板,明细不支持上传附件 (统一改造) -->
<#else>
<input name="${namepre}${po.fieldName}" <#if valuepre != "">value = "${'$'}{${valuepre}${po.fieldName}}"</#if> type="text" class="form-control input-sm" maxlength="${po.length?c}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" tableName="${po.table.tableName}" fieldName="${po.oldFieldName}"/> />
</#if>

@ -3,42 +3,45 @@
<#list columns as po><#rt/>
<t:dgCol title="${po.content}" <#rt/>
field="${po.fieldName}" <#rt/>
<#if po.showType?index_of("datetime")!=-1><#rt/>
<#if po.showType?index_of("datetime")!=-1><#rt/>
formatter="yyyy-MM-dd hh:mm:ss" <#rt/>
<#else><#rt/>
<#if po.showType?index_of("date")!=-1><#rt/>
<#else><#rt/>
<#if po.showType?index_of("date")!=-1><#rt/>
formatter="yyyy-MM-dd" <#rt/>
</#if><#rt/>
</#if><#rt/>
<#if po.isShowList?if_exists?html =='N'><#rt/>
</#if><#rt/>
</#if><#rt/>
<#if po.isShowList?if_exists?html =='N'><#rt/>
hidden="true" <#rt/>
<#else><#rt/>
</#if><#rt/>
<#if po.dictTable?if_exists?html!=""><#rt/>
<#else><#rt/>
</#if><#rt/>
<#if po.dictTable?if_exists?html!=""><#rt/>
dictionary="${po.dictTable},${po.dictField?replace(',', '@')},${po.dictText?replace(',', '@')}" <#rt/>
<#if po.showType=='popup'> popup="true" extendParams="editor:'text'"<#else> extendParams="editor:'combobox'"</#if><#rt/>
<#else><#rt/>
<#if po.dictTable?if_exists?html=="" && po.dictField?if_exists?html!=""><#rt/>
<#if po.showType=='popup'> popup="true" extendParams="editor:'text'"<#else> extendParams="editor:'combobox'"</#if><#rt/>
<#else><#rt/>
<#if po.dictTable?if_exists?html=="" && po.dictField?if_exists?html!=""><#rt/>
dictionary="${po.dictField}" filterType="combobox" extendParams="editor:'combobox'"<#rt/>
<#else>
<#if po.type?if_exists?html =='java.util.Date'><#rt/>
<#else>
<#if po.type?if_exists?html =='java.util.Date'><#rt/>
filterType="datebox" extendParams="editor:{type:'datebox',options:{onShowPanel:initDateboxformat}}"<#rt/>
<#elseif po.type?if_exists?html =='java.lang.Integer'><#rt/>
<#elseif po.type?if_exists?html =='java.lang.Integer'><#rt/>
filterType="numberbox" extendParams="editor:'numberbox'"<#rt/>
<#elseif po.type?if_exists?html =='java.math.BigDecimal'><#rt/>
<#elseif po.type?if_exists?html =='java.math.BigDecimal'><#rt/>
filterType="numberbox" extendParams="editor:{type:'validatebox',options:{validType:'decimalTwo'}}"<#rt/>
<#elseif po.type?if_exists?html =='java.lang.Double'><#rt/>
<#elseif po.type?if_exists?html =='java.lang.Double'><#rt/>
filterType="numberbox" extendParams="editor:{type:'validatebox',options:{validType:'decimalTwo'}}"<#rt/>
<#else>
<#else>
<#if po.showType?index_of("image") != -1 || po.showType?index_of("file") != -1><#rt/>
<#else>
extendParams="editor:'text'"<#rt/>
</#if><#rt/>
</#if><#rt/>
</#if><#rt/>
<#if po.showType?index_of("image") != -1><#rt/>
image="true" imageSize="50,50" formatterjs="formatterImg"<#rt/>
<#elseif po.showType?index_of("file") != -1><#rt/>
downloadName="附件下载" formatterjs="formatterFile"<#rt/>
<#elseif po.showType?index_of("tree") != -1><#rt/>
</#if>
</#if><#rt/>
</#if><#rt/>
</#if><#rt/>
<#if po.showType?index_of("image") != -1><#rt/>
image="true" imageSize="50,50" formatterjs="formatterImg" extendParams="editor:{type:'filecontrol',options:{btnclass:'ace_button'}}"<#rt/>
<#elseif po.showType?index_of("file") != -1><#rt/>
downloadName="附件下载" formatterjs="formatterFile" extendParams="editor:{type:'filecontrol',options:{btnclass:'ace_button'}}"<#rt/>
<#elseif po.showType?index_of("tree") != -1><#rt/>
formatterjs="treeFormater"<#rt/>
</#if><#rt/>
width="${po.fieldLength}"></t:dgCol>

@ -157,7 +157,7 @@
<#-- update--end--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<#elseif po.showType=='textarea'>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<textarea style="width:600px;" class="inputxt" rows="6" id="${po.fieldName}" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />></textarea>
<textarea style="height:auto;width:95%" class="inputxt" rows="6" id="${po.fieldName}" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />></textarea>
<#-- update--end--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<#elseif po.showType=='password'>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
@ -240,7 +240,7 @@
<td class="value" <#if (pageColumns?size>10)> colspan="3" </#if>>
<#if po.showType=='textarea'>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<textarea style="width:600px;" class="inputxt" rows="6" id="${po.fieldName}" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />></textarea>
<textarea style="height:auto;width:95%" class="inputxt" rows="6" id="${po.fieldName}" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />></textarea>
<#-- update--end--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->

@ -159,7 +159,7 @@
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<#elseif po.showType=='textarea'>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<textarea id="${po.fieldName}" style="width:600px;" class="inputxt" rows="6" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />>${'$'}{${entityName?uncap_first}Page.${po.fieldName}}</textarea>
<textarea id="${po.fieldName}" style="height:auto;width:95%;" class="inputxt" rows="6" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />>${'$'}{${entityName?uncap_first}Page.${po.fieldName}}</textarea>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<#elseif po.showType=='password'>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
@ -248,7 +248,7 @@
<td class="value" <#if (pageColumns?size>10)> colspan="3" </#if>>
<#if po.showType=='textarea'>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<textarea id="${po.fieldName}" style="width:600px;" class="inputxt" rows="6" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />>${'$'}{${entityName?uncap_first}Page.${po.fieldName}}</textarea>
<textarea id="${po.fieldName}" style="height:auto;width:95%;" class="inputxt" rows="6" name="${po.fieldName}" <@datatype validType="${po.fieldValidType!''}" isNull="${po.isNull}" type="${po.type}" mustInput="${po.fieldMustInput!''}" />>${'$'}{${entityName?uncap_first}Page.${po.fieldName}}</textarea>
<#-- update--begin--author:zhangjiaqiangDate:20170509 for:修订生成代码不美观 -->
<#elseif po.showType='umeditor'>
<#-- update--begin--author:zhangjiaqiang date:20170522 for:ueditor配置文件只加载一次 -->

@ -114,14 +114,11 @@
}
});
});
//单选框/多选框初始化
$('.i-checks').iCheck({
labelHover : false,
cursor : true,
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
increaseArea : '20%'
});
//自定义checkbox、radio 样式
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green'
});
}
function upload() {

@ -14,7 +14,7 @@
//-->
</script>
</head>
<body style="overflow-y: hidden; overflow-x: hidden;" scroll="no">
<body>
<form id="formobj" action="${basePath}/cgFormBuildController.do?saveOrUpdate" name="formobj" method="post">
<input type="hidden" id="btn_sub" class="btn_sub"/>
<input type="hidden" name="tableName" value="${tableName?if_exists?html}" >
@ -32,24 +32,24 @@
<td align="right" height="40" width="10%">
<span class="filedzt">* 客户编号</span>
</td>
<td class="value" width="20%">
<td class="value" width="25%">
<input name="custom_id" id="custom_id" datatype="*" class="inputxt" value="${data['${tableName}']['custom_id']?if_exists?html}" >
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">客户编号</label>
</td>
<td align="right" height="40" width="10%">
<td align="right" height="40" width="5%">
<span class="filedzt">负责人</span>
</td>
<td class="value" width="20%">
<td class="value" width="25%">
<input name="header" id="header" datatype="*" class="inputxt" value="${data['${tableName}']['header']?if_exists?html}" >
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">负责人</label>
</td>
<td align="right" height="40" width="10%">
<td align="right" height="40" width="5%">
<span class="filedzt">成立日期</span>
</td>
<td class="value" width="30%">
<input name="establish_date" id="establish_date" datatype="*" class="Wdate" onClick="WdatePicker()" value="${data['${tableName}']['establish_date']?if_exists?html}" >
<td class="value" width="25%">
<input name="establish_date" id="establish_date" datatype="*" class="inputxt Wdate" onClick="WdatePicker()" value="${data['${tableName}']['establish_date']?if_exists?html}" >
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">成立日期</label>
</td>

@ -6,7 +6,7 @@
<title></title>
${config_iframe}
</head>
<body style="overflow-y: hidden; overflow-x: hidden;" scroll="no">
<body>
<form id="formobj" action="${basePath}/cgFormBuildController.do?saveOrUpdate" name="formobj" method="post">
<input type="hidden" id="btn_sub" class="btn_sub"/>
<input type="hidden" name="tableName" value="${tableName?if_exists?html}" >

@ -11,8 +11,8 @@
<link rel="stylesheet" href="${webRootf!''}plug-in/bootstrap3.3.5/css/bootstrap.min.css">
<script type="text/javascript" src="${webRootf!''}plug-in/bootstrap3.3.5/js/bootstrap.min.js"></script>
<!-- icheck组件引用 -->
<link href="${webRootf!''}plug-in/icheck-1.x/skins/square/_all.css" rel="stylesheet">
<script type="text/javascript" src="${webRootf!''}plug-in/icheck-1.x/icheck.js"></script>
<link href="${webRootf!''}plug-in/hplus/css/plugins/iCheck/custom.css" rel="stylesheet">
<script type="text/javascript" src="${webRootf!''}plug-in/hplus/js/plugins/iCheck/icheck.min.js"></script>
<!-- Validform扩展样式 -->
<link rel="stylesheet" href="plug-in/themes/bootstrap-ext/css/validform-ext.css" />
<!-- Layer组件引用 -->

@ -2,19 +2,20 @@
sessionVersion=sessionVersion
#
templatepath=docTemp
#
#UploadTag\u6807\u7b7e\u4e0a\u4f20\u6587\u4ef6\u8def\u5f84\uff08\u76f8\u5bf9\u8def\u5f84\uff09
uploadpath=upload
#WebUploaderTag\u6807\u7b7e\u4e0a\u4f20\u6587\u4ef6\u8def\u5f84(\u7edd\u5bf9\u8def\u5f84)
webUploadpath=D://upFiles
#\u65b9\u5f0f\u4e00\uff1a\u6ca1\u6709\u5355\u72ec\u56fe\u7247\u670d\u52a1\u5668\uff0c\u901a\u8fc7\u672c\u5730\u670d\u52a1\u5316\u7c7b\u5b9e\u73b0\u6d41\u65b9\u5f0f\u4e0b\u8f7d,\u6b64\u4e3a\u9ed8\u8ba4\u914d\u7f6e\u4e0d\u9700\u8981\u66f4\u6539
#WebUploaderTag\u4e0a\u4f20\u7684\u56fe\u7247\u9884\u89c8\u65b9\u5f0f
#\u9884\u89c8\u65b9\u5f0f\u4e00\uff1a\u6ca1\u6709\u5355\u72ec\u56fe\u7247\u670d\u52a1\u5668\uff0c\u901a\u8fc7\u672c\u5730\u670d\u52a1\u5316\u7c7b\u5b9e\u73b0\u6d41\u65b9\u5f0f\u4e0b\u8f7d,\u6b64\u4e3a\u9ed8\u8ba4\u914d\u7f6e\u4e0d\u9700\u8981\u66f4\u6539
showAndDownUrl=img/server/
#\u65b9\u5f0f\u4e8c\uff1a\u5355\u72ec\u56fe\u7247\u670d\u52a1\u5668\uff0c\u9700\u8981\u914d\u7f6e\u56fe\u7247\u670d\u52a1\u5668\u57df\u540d\u6839\u76ee\u5f55\u5730\u5740
#\u9884\u89c8\u65b9\u5f0f\u4e8c\uff1a\u5355\u72ec\u56fe\u7247\u670d\u52a1\u5668\uff0c\u9700\u8981\u914d\u7f6e\u56fe\u7247\u670d\u52a1\u5668\u57df\u540d\u6839\u76ee\u5f55\u5730\u5740
#showAndDownUrl=http://www.img.com/
#\u65b9\u5f0f\u4e09\uff1aftp downPath
#\u9884\u89c8\u65b9\u5f0f\u4e09\uff1aftp downPath
#showAndDownUrl=systemController/showOrDownByurlFTP.do?dbPath=
office_home=D://Program Files//OpenOffice
#ftpclient
ftp.url=192.168.1.132
@ -23,6 +24,12 @@ ftp.userName=13552579746@163.com
ftp.passWord=yandong123
#\u3010\u5728\u7ebf\u6587\u6863\u9884\u89c8\u529f\u80fd\u3011OpenOffice\u672c\u5730\u5b89\u88c5\u76ee\u5f55
office_home=D://Program Files//OpenOffice
#\u3010\u5728\u7ebf\u6587\u6863\u9884\u89c8\u529f\u80fd\u3011\u5168\u5c40\u5f00\u5173\uff0c\u662f\u5426\u9ed8\u8ba4\u5f00\u542fswf\u5728\u7ebf\u6587\u6863\u9884\u89c8\u8f6c\u6362\u529f\u80fd
swf.transform.flag=true
#DEV(\u5f00\u53d1\u6a21\u5f0f)/PUB(\u751f\u4ea7\u6a21\u5f0f)
sqlReadMode=DEV
@ -48,6 +55,7 @@ orgCodeLengthType=2
categoryCodeLengthType=2
#\u7cfb\u7edf\u53d1\u9001\u90ae\u4ef6\u914d\u7f6e
mail.smtpHost=smtp.126.com
mail.sender=anchaodaren@126.com
mail.user=anchaodaren

@ -562,7 +562,7 @@
<attribute>
<name>inGroup</name>
<rtexprvalue>true</rtexprvalue>
<description>操作菜单,一开始是否隐藏</description>
<description>操作菜单,一开始是否隐藏true/false</description>
</attribute>
<!-- update-end-author:jiaqiankun date:20180713 forTASK #2872 【新功能】列表按钮改造成配置,支持折叠模式,增加一个参数 -->
</tag>
@ -613,7 +613,7 @@
<attribute>
<name>inGroup</name>
<rtexprvalue>true</rtexprvalue>
<description>操作菜单,一开始是否隐藏</description>
<description>操作菜单,一开始是否隐藏true/false</description>
</attribute>
<!-- update-end-author:jiaqiankun date:20180713 forTASK #2872 【新功能】列表按钮改造成配置,支持折叠模式,增加一个参数 -->
</tag>
@ -679,7 +679,7 @@
<attribute>
<name>inGroup</name>
<rtexprvalue>true</rtexprvalue>
<description>操作菜单,一开始是否隐藏</description>
<description>操作菜单,一开始是否隐藏true/false</description>
</attribute>
<!-- update-end-author:taoYan date:20180524 for:操作菜单扩展 -->
</tag>
@ -738,7 +738,7 @@
<attribute>
<name>inGroup</name>
<rtexprvalue>true</rtexprvalue>
<description>操作菜单,一开始是否隐藏</description>
<description>操作菜单,一开始是否隐藏true/false</description>
</attribute>
<!-- update-end-author:taoYan date:2018524 for:操作菜单扩展 -->
</tag>
@ -803,6 +803,13 @@
<rtexprvalue>true</rtexprvalue>
<description>按钮操作Code</description>
</attribute>
<!-- update-begin-author:taoyan date:20180717 for:TASK #2873 【新功能】按钮折叠功能 -->
<attribute>
<name>inGroup</name>
<rtexprvalue>true</rtexprvalue>
<description>是否在更多操作按钮组中显示,若为true则该按钮一开始为隐藏,点击更多操作按钮才会显示</description>
</attribute>
<!-- update-end-author:taoyan date:20180717 for:TASK #2873 【新功能】按钮折叠功能 -->
</tag>
<tag>
<name>dgConfOpt</name>
@ -857,7 +864,7 @@
<attribute>
<name>inGroup</name>
<rtexprvalue>true</rtexprvalue>
<description>操作菜单,一开始是否隐藏</description>
<description>操作菜单,一开始是否隐藏true/false</description>
</attribute>
<!-- update-end-author:jiaqiankun date:20180713 forTASK #2872 【新功能】列表按钮改造成配置,支持折叠模式,增加一个参数 -->
</tag>
@ -2026,6 +2033,14 @@
<description>是否在外部引入js-css</description>
</attribute>
<!-- update-end- Author:taoyan Date:20180519 for文件上传增加属性是否在外部引入js-css -->
<!-- update-begin- Author:taoyan Date:20180725 forTASK #3007 【新功能】陶炎的上传,不支持文档 swf转换 -->
<attribute>
<name>swfTransform</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>是否支持需要将此文件转换成swf文件,true/false</description>
</attribute>
<!-- update-end- Author:taoyan Date:20180725 forTASK #3007 【新功能】陶炎的上传,不支持文档 swf转换 -->
</tag>
<!-- add-end- Author:taoyan Date:20170327 for文件上传标签 -->
<!-- add-begin-author:zhangjiaqiang Date:20170913 for:treeSelectTag -->

@ -6,7 +6,7 @@
<display-name>Jeecg 微云快速开发平台</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>jeecg-3.7.7</param-value>
<param-value>jeecg-3.7.8</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,20 @@
/* * css: {validform验证效果扩展} * ----------*/
.poptip{z-index:1000;position: absolute;top: 20px;left:20px;padding: 6px 10px 6px;*padding: 7px 10px 5px;line-height: 16px;color: #fff;font-size: 12px;background-color: #B94A48;border: solid 1px #B94A48;border-radius: 2px;box-shadow: 0 0 3px #ddd;}
.poptip-arrow{position: absolute;overflow: hidden;font-style: normal;font-family: simsun;text-shadow:0 0 2px #ccc;}
.poptip-arrow em,.poptip-arrow i{position: absolute;left:0;top:0;font-style: normal;}
.poptip-arrow em{color: #B94A48;}
.poptip-arrow i{color: #B94A48;text-shadow:none;}
.poptip-arrow-top,.poptip-arrow-bottom{height: 6px;width: 12px;left:12px;margin-left:-6px;}
.poptip-arrow-left,.poptip-arrow-right{height: 12px;width: 6px;top: 12px;margin-top:-6px;}
.poptip-arrow-top{top: -6px;}
.poptip-arrow-top em{top: -1px;}
.poptip-arrow-top i{top: 0px;}
.poptip-arrow-bottom{bottom: -6px;}
.poptip-arrow-bottom em{top: -8px;}
.poptip-arrow-bottom i{top: -9px;}
.poptip-arrow-left{left:-6px;}
.poptip-arrow-left em{left:1px;}
.poptip-arrow-left i{left:2px;}
.poptip-arrow-right{right:-6px;}
.poptip-arrow-right em{left:-6px;}
.poptip-arrow-right i{left:-7px;}

@ -92,7 +92,7 @@
"s6-18" : /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/,
"p" : /^[0-9]{6}$/,
/*update-begin--Author:dangzhenghui Date:20170627 for手机支持170号段*/
"m":/^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|17[0-9]{9}$|18[0-9]{9}$/,
"m":/^1[3|4|5|7|8][0-9]\d{8}$/,
/*update-end--Author:dangzhenghui Date:20170627 for手机支持170号段*/
"e" : /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
"url" : /^(\w+:\/\/)?\w+(\.\w+)+.*$/,

@ -0,0 +1,39 @@
/* * js: {validform验证效果扩展} * ----------*/
//提示信息
function ValidationMessage(obj, Validatemsg) {
try {
removeMessage(obj);
//obj.focus();
var $poptip_error = $('<div class="poptip"><span class="poptip-arrow poptip-arrow-top"><em>◆</em></span>' + Validatemsg + '</div>').css("left", obj.offset().left + 'px').css("top", obj.offset().top + obj.parent().height() + 5 + 'px')
$('body').append($poptip_error);
if (obj.hasClass('form-control') || obj.hasClass('ui-select')) {
obj.parent().addClass('has-error');
}
if (obj.hasClass('ui-select')) {
$('.input-error').remove();
}
obj.change(function () {
if (obj.val()) {
removeMessage(obj);
}
});
if (obj.hasClass('ui-select')) {
$(document).click(function (e) {
if (obj.attr('data-value')) {
removeMessage(obj);
}
e.stopPropagation();
});
}
return false;
} catch (e) {
alert(e)
}
}
//移除提示
function removeMessage(obj) {
obj.parent().removeClass('has-error');
$('.poptip').remove();
$('.input-error').remove();
}

@ -42,4 +42,49 @@ form[name="searchColumsForm"]{
/*border-top: 1px solid #dddddd;*/
height:27px ;
}
/*update-end--Author:xuelin Date:20171221 for[#2456]【样式bug】shortcut下online功能测试的列表有问题-------------------- */
/*update-end--Author:xuelin Date:20171221 for[#2456]【样式bug】shortcut下online功能测试的列表有问题-------------------- */
/*update-begin-author:taoYan date:20180717 for:TASK #2873 【新功能】按钮折叠功能*/
.toolbar-more-container{position:relative;display: inline-block;}
.toolbar-more-list{
border: medium none;
display: none;
float: left;
font-size: 12px;
left: 0;
list-style: none outside none;
padding: 0;
position: absolute;
text-shadow: none;
top: 100%;
z-index: 1000;
border-radius: 0;
box-shadow: 0 0 3px rgba(86, 96, 117, 0.3);
min-width: 120px;
background-color: #fff;
margin: 0;
}
.toolbar-more-list.active{display:block;left: auto;right: 0;}
.toolbar-more-list>li>a{
display: block;
padding: 2px 20px 2px 8px;
clear: both;
border-radius: 3px;
color: inherit;
line-height: 25px;
margin: 2px;
text-align: left;
font-weight: normal;
cursor: pointer;
text-decoration: none;
white-space: nowrap;
}
.toolbar-more-list>li>a:focus,.toolbar-more-list>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}
.toolbar-more-list .easyui-mycon{
display:inline-block;width:16px;height:16px;position:relative;top:2px;
}
/* .toolbar-more{display:none;border-radius:5px;position:absolute;z-index:100;background-color:rgb(238, 238, 238)}
.toolbar-more.active{display:block}
.toolbar-more-list{margin:8px 0;padding:0}
.toolbar-more-list li{margin: 5px 2px;list-style-type:none;} */
/*update-end-author:taoYan date:20180717 for:TASK #2873 【新功能】按钮折叠功能*/

File diff suppressed because it is too large Load Diff

@ -0,0 +1,95 @@
/**
* @author: YL
* @version: v1.0.0
*/
!function ($) {
'use strict';
$.extend($.fn.bootstrapTable.defaults, {
treeShowField: null,
idField: 'id',
parentIdField: 'pid',
onGetNodes: function (row, data) {
var that = this;
var nodes = [];
$.each(data, function (i, item) {
if (row[that.options.idField] === item[that.options.parentIdField]) {
nodes.push(item);
}
});
return nodes;
},
onCheckRoot: function (row, data) {
var that = this;
return !row[that.options.parentIdField];
}
});
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_initRow = BootstrapTable.prototype.initRow,
_initHeader = BootstrapTable.prototype.initHeader;
// td
BootstrapTable.prototype.initHeader = function () {
var that = this;
_initHeader.apply(that, Array.prototype.slice.apply(arguments));
var treeShowField = that.options.treeShowField;
if (treeShowField) {
$.each(this.header.fields, function (i, field) {
if (treeShowField === field) {
that.treeEnable = true;
return false;
}
});
}
};
var initTr = function (item, idx, data, parentDom) {
var that = this;
var nodes = that.options.onGetNodes.apply(that, [item, data]);
item._nodes = nodes;
parentDom.append(_initRow.apply(that, [item, idx, data, parentDom]));
// init sub node
var len = nodes.length - 1;
for (var i = 0; i <= len; i++) {
var node = nodes[i];
node._level = item._level + 1;
node._parent = item;
if (i === len)
node._last = 1;
// jquery.treegrid.js
that.options.rowStyle = function (item, idx) {
var id = item[that.options.idField] ? item[that.options.idField] : 0;
var pid = item[that.options.parentIdField] ? item[that.options.parentIdField] : 0;
return {
classes: 'treegrid-' + id + ' treegrid-parent-' + pid
};
};
initTr.apply(that, [node, $.inArray(node, data), data, parentDom]);
}
};
// tr
BootstrapTable.prototype.initRow = function (item, idx, data, parentDom) {
var that = this;
if (that.treeEnable) {
// init root node
if (that.options.onCheckRoot.apply(that, [item, data])) {
if (item._level === undefined) {
item._level = 0;
}
// jquery.treegrid.js
that.options.rowStyle = function (item, idx) {
var x = item[that.options.idField] ? item[that.options.idField] : 0;
return {
classes: 'treegrid-' + x
};
};
initTr.apply(that, [item, idx, data, parentDom]);
return true;
}
return false;
}
return _initRow.apply(that, Array.prototype.slice.apply(arguments));
};
}(jQuery);

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

@ -83,3 +83,6 @@
width:64px;height:64px;
background:url('icons/ok64.png') no-repeat center center;
}
.icon-caret-down{
background:url('icons/fa-caret-down.png') no-repeat center center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -104,4 +104,8 @@
.icon-chart-organisation {
background:url('icons/chart_organisation.png') no-repeat center center;
}
/*update-end-Author:LiShaoQing date:20180103 for:组织机构添加职务信息图标 */
/*update-end-Author:LiShaoQing date:20180103 for:组织机构添加职务信息图标 */
.icon-caret-down{
background:url('icons/fa-caret-down.png') no-repeat center center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

@ -0,0 +1,11 @@
/*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
(function(f){function A(a,b,d){var c=a[0],g=/er/.test(d)?_indeterminate:/bl/.test(d)?n:k,e=d==_update?{checked:c[k],disabled:c[n],indeterminate:"true"==a.attr(_indeterminate)||"false"==a.attr(_determinate)}:c[g];if(/^(ch|di|in)/.test(d)&&!e)x(a,g);else if(/^(un|en|de)/.test(d)&&e)q(a,g);else if(d==_update)for(var f in e)e[f]?x(a,f,!0):q(a,f,!0);else if(!b||"toggle"==d){if(!b)a[_callback]("ifClicked");e?c[_type]!==r&&q(a,g):x(a,g)}}function x(a,b,d){var c=a[0],g=a.parent(),e=b==k,u=b==_indeterminate,
v=b==n,s=u?_determinate:e?y:"enabled",F=l(a,s+t(c[_type])),B=l(a,b+t(c[_type]));if(!0!==c[b]){if(!d&&b==k&&c[_type]==r&&c.name){var w=a.closest("form"),p='input[name="'+c.name+'"]',p=w.length?w.find(p):f(p);p.each(function(){this!==c&&f(this).data(m)&&q(f(this),b)})}u?(c[b]=!0,c[k]&&q(a,k,"force")):(d||(c[b]=!0),e&&c[_indeterminate]&&q(a,_indeterminate,!1));D(a,e,b,d)}c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"default");g[_add](B||l(a,b)||"");g.attr("role")&&!u&&g.attr("aria-"+(v?n:k),"true");
g[_remove](F||l(a,s)||"")}function q(a,b,d){var c=a[0],g=a.parent(),e=b==k,f=b==_indeterminate,m=b==n,s=f?_determinate:e?y:"enabled",q=l(a,s+t(c[_type])),r=l(a,b+t(c[_type]));if(!1!==c[b]){if(f||!d||"force"==d)c[b]=!1;D(a,e,s,d)}!c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"pointer");g[_remove](r||l(a,b)||"");g.attr("role")&&!f&&g.attr("aria-"+(m?n:k),"false");g[_add](q||l(a,s)||"")}function E(a,b){if(a.data(m)){a.parent().html(a.attr("style",a.data(m).s||""));if(b)a[_callback](b);a.off(".i").unwrap();
f(_label+'[for="'+a[0].id+'"]').add(a.closest(_label)).off(".i")}}function l(a,b,f){if(a.data(m))return a.data(m).o[b+(f?"":"Class")]}function t(a){return a.charAt(0).toUpperCase()+a.slice(1)}function D(a,b,f,c){if(!c){if(b)a[_callback]("ifToggled");a[_callback]("ifChanged")[_callback]("if"+t(f))}}var m="iCheck",C=m+"-helper",r="radio",k="checked",y="un"+k,n="disabled";_determinate="determinate";_indeterminate="in"+_determinate;_update="update";_type="type";_click="click";_touch="touchbegin.i touchend.i";
_add="addClass";_remove="removeClass";_callback="trigger";_label="label";_cursor="cursor";_mobile=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);f.fn[m]=function(a,b){var d='input[type="checkbox"], input[type="'+r+'"]',c=f(),g=function(a){a.each(function(){var a=f(this);c=a.is(d)?c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),g(this),c.each(function(){var c=
f(this);"destroy"==a?E(c,"ifDestroyed"):A(c,!0,a);f.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var e=f.extend({checkedClass:k,disabledClass:n,indeterminateClass:_indeterminate,labelHover:!0},a),l=e.handle,v=e.hoverClass||"hover",s=e.focusClass||"focus",t=e.activeClass||"active",B=!!e.labelHover,w=e.labelHoverClass||"hover",p=(""+e.increaseArea).replace("%","")|0;if("checkbox"==l||l==r)d='input[type="'+l+'"]';-50>p&&(p=-50);g(this);return c.each(function(){var a=f(this);E(a);var c=this,
b=c.id,g=-p+"%",d=100+2*p+"%",d={position:"absolute",top:g,left:g,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},g=_mobile?{position:"absolute",visibility:"hidden"}:p?d:{position:"absolute",opacity:0},l="checkbox"==c[_type]?e.checkboxClass||"icheckbox":e.radioClass||"i"+r,z=f(_label+'[for="'+b+'"]').add(a.closest(_label)),u=!!e.aria,y=m+"-"+Math.random().toString(36).substr(2,6),h='<div class="'+l+'" '+(u?'role="'+c[_type]+'" ':"");u&&z.each(function(){h+=
'aria-labelledby="';this.id?h+=this.id:(this.id=y,h+=y);h+='"'});h=a.wrap(h+"/>")[_callback]("ifCreated").parent().append(e.insert);d=f('<ins class="'+C+'"/>').css(d).appendTo(h);a.data(m,{o:e,s:a.attr("style")}).css(g);e.inheritClass&&h[_add](c.className||"");e.inheritID&&b&&h.attr("id",m+"-"+b);"static"==h.css("position")&&h.css("position","relative");A(a,!0,_update);if(z.length)z.on(_click+".i mouseover.i mouseout.i "+_touch,function(b){var d=b[_type],e=f(this);if(!c[n]){if(d==_click){if(f(b.target).is("a"))return;
A(a,!1,!0)}else B&&(/ut|nd/.test(d)?(h[_remove](v),e[_remove](w)):(h[_add](v),e[_add](w)));if(_mobile)b.stopPropagation();else return!1}});a.on(_click+".i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[_type];b=b.keyCode;if(d==_click)return!1;if("keydown"==d&&32==b)return c[_type]==r&&c[k]||(c[k]?q(a,k):x(a,k)),!1;if("keyup"==d&&c[_type]==r)!c[k]&&x(a,k);else if(/us|ur/.test(d))h["blur"==d?_remove:_add](s)});d.on(_click+" mousedown mouseup mouseover mouseout "+_touch,function(b){var d=
b[_type],e=/wn|up/.test(d)?t:v;if(!c[n]){if(d==_click)A(a,!1,!0);else{if(/wn|er|in/.test(d))h[_add](e);else h[_remove](e+" "+t);if(z.length&&B&&e==v)z[/ut|nd/.test(d)?_remove:_add](w)}if(_mobile)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto);

File diff suppressed because one or more lines are too long

@ -0,0 +1,64 @@
{
"message": "",
"value": [
{
"userName": "淳芸",
"shortAccount": "chunyun",
"userId": 20001
}, {
"userName": "orion-01",
"shortAccount": "chunyun",
"userId": 20000
}, {
"userName": "穆晓晨",
"shortAccount": "chunyun",
"userId": 20002
}, {
"userName": "张欢引",
"shortAccount": "chunyun",
"userId": 20003
}, {
"userName": "吴琼",
"shortAccount": "wuqiong",
"userId": 20004
}, {
"userName": "吴东鹏",
"shortAccount": "wudongpeng",
"userId": 20005
}, {
"userName": "黄少铅",
"shortAccount": "huangshaoqian",
"userId": 20006
}, {
"userName": "胡运燕",
"shortAccount": "yunyan",
"userId": 20007
}, {
"userName": "刘幸",
"shortAccount": "liuxing",
"userId": 20008
}, {
"userName": "陈媛媛",
"shortAccount": "chenyuanyuan",
"userId": 20009
}, {
"userName": "旷东林",
"shortAccount": "chunyun",
"userId": 20010
}, {
"userName": "唐宏禹",
"shortAccount": "chunyun",
"userId": 20011
}, {
"userName": "旷东林",
"shortAccount": "kuangdonglin",
"userId": 20010
}, {
"userName": "唐宏禹",
"shortAccount": "tanghongyu",
"userId": 20011
}
],
"code": 200,
"redirect": ""
}

@ -1,42 +0,0 @@
{
"name": "iCheck",
"version": "1.0.2",
"description": "Highly customizable checkboxes and radio buttons (jQuery & Zepto)",
"keywords": [
"icheck",
"checkbox",
"radio",
"input",
"field",
"form",
"custom",
"replacement",
"accessibility",
"skins",
"ui",
"checked",
"disabled",
"indeterminate"
],
"main": [
"./icheck.min.js"
],
"dependencies": {
"jquery": ">=1.7"
},
"ignore": [
".gitignore",
"CHANGELOG.md",
"README.md",
"demo/"
],
"license": "MIT",
"authors": [
{
"name": "Damir Sultanov",
"email": "info@fronteed.com",
"homepage": "http://fronteed.com/"
}
],
"homepage": "http://fronteed.com/iCheck/"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save