JEECG 3.7.8版本发布

v3.8
zhangdaiscott@163.com 2018-08-06 09:44:04 +08:00
parent 1fc72e874e
commit 408d6f7275
371 changed files with 36511 additions and 81523 deletions

View File

@ -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

11156
docs/jeecg_3.7.8_mysql.sql Normal file

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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插件变量-->

View File

@ -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();
}
}
}

View File

@ -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");
}
}

View File

@ -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;
}
}

View File

@ -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();

View File

@ -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;
}
}

View File

@ -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>

View File

@ -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();
}
}
}
}

View File

@ -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) {
}

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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");

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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)
{
Boolean hasMore = false;
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>");
if(toolBar.isInGroup()){
if(!hasMore){
hasMore = true;
}
}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>");
}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("</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];

View File

@ -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;
}
}

View File

@ -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")){

View File

@ -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()+",");
}

View File

@ -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));}");

View File

@ -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)){

View File

@ -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>

View File

@ -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 {

View File

@ -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{

View File

@ -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>");

View File

@ -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");

View File

@ -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);

View File

@ -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));
}
}
}

View File

@ -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()))

View File

@ -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++) {

View File

@ -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;

View File

@ -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)) {

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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 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,"");
String typename = type.getTypename();
if(MutiLangUtil.existLangKey(typename)){
typename = MutiLangUtil.doMutiLang(typename,"");
}
typeJson.put("typename",typename );
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);
}
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");
}
}
// /**
// * 获取图片流/获取文件用于下载

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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(",");

View File

@ -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">

View File

@ -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">

View File

@ -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%'
});

View File

@ -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%'
});

View File

@ -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">

View File

@ -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">

View File

@ -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">

View File

@ -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%'
});

View File

@ -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%'
});

View File

@ -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">

View File

@ -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">

View File

@ -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%'
});

View File

@ -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%'
});

View File

@ -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");
},

View File

@ -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){

View File

@ -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%'
});

View File

@ -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%'
});

View File

@ -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){

View File

@ -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>

View File

@ -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>

View File

@ -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配置文件只加载一次 -->

View File

@ -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配置文件只加载一次 -->

View File

@ -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() {

View File

@ -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>

View File

@ -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}" >

View File

@ -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组件引用 -->

View File

@ -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

View File

@ -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 -->

View File

@ -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

View File

@ -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;}

View File

@ -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+)+.*$/,

View File

@ -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();
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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": ""
}

View File

@ -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