From 6c1dba1ea8bf3ff08dc6942400ad3e4f79bf8635 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Mon, 18 Jul 2016 18:06:49 +0800 Subject: [PATCH] =?UTF-8?q?jeecg=203.6.5=20=E7=89=88=E6=9C=AC=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- ....6.4.sql => jeecg3.6.5-mysql-20160718.sql} | 924 +-- docs/db/jeecg3.6.5-oracle11g-20160718.dmp | Bin 0 -> 2111488 bytes pom.xml | 25 +- .../core/enums/OnlineGenerateEnum.java | 98 + .../extend/hqlsearch/HqlGenerateUtil.java | 4 - .../hqlsearch/SysContextSqlConvert.java | 1 - .../core/interceptors/AuthInterceptor.java | 1 - .../core/util/DynamicDBUtil.java | 6 +- .../core/util/PasswordUtil.java | 7 +- .../core/util/ResourceUtil.java | 2 - .../tag/core/easyui/BaseTag.java | 1 + .../tag/core/easyui/ChooseTag.java | 1 - .../tag/core/easyui/DataGridColumnTag.java | 15 +- .../tag/core/easyui/DataGridTag.java | 27 +- .../tag/vo/easyui/DataGridColumn.java | 12 + .../web/cgform/common/spring-mvc-cgform.xml | 2 - .../autoform/AutoFormController.java | 3 - .../autolist/CgAutoListController.java | 1 - .../autolist/CgAutoListRestController.java | 1 - .../generate/GenerateController.java | 81 +- .../entity/generate/GenerateEntity.java | 15 +- .../cgform/service/build/DataBaseService.java | 3 + .../impl/build/DataBaseServiceImpl.java | 8 + .../controller/OnlineDocController.java | 345 - .../web/onlinedoc/entity/OnlineDocEntity.java | 293 - .../onlinedoc/service/OnlineDocServiceI.java | 33 - .../service/impl/OnlineDocServiceImpl.java | 84 - .../controller/OnlineDocSortController.java | 366 - .../entity/OnlineDocSortEntity.java | 249 - .../service/OnlineDocSortServiceI.java | 33 - .../impl/OnlineDocSortServiceImpl.java | 81 - .../controller/TSTeamPersonController.java | 422 -- .../web/rank/entity/TSTeamPersonEntity.java | 279 - .../rank/service/TSTeamPersonServiceI.java | 33 - .../service/impl/TSTeamPersonServiceImpl.java | 81 - .../web/sms/util/task/SmsSendTaskJob.java | 5 - .../controller/core/DepartController.java | 5 + .../core/DynamicDataSourceController.java | 19 + .../core/JformInnerMailController.java | 501 -- .../controller/core/LoginController.java | 4 +- .../controller/core/UserController.java | 1 - .../pojo/base/JformInnerMailAttach.java | 35 - .../pojo/base/JformInnerMailEntity.java | 212 - .../base/JformInnerMailReceiverEntity.java | 131 - .../service/JformInnerMailServiceI.java | 43 - .../impl/JformInnerMailServiceImpl.java | 104 - .../sms/controller/TSSmsController.java | 6 +- .../sms/controller/TSSmsSqlController.java | 6 +- .../controller/TSSmsTemplateController.java | 6 +- .../TSSmsTemplateSqlController.java | 8 +- .../{ => system}/sms/entity/TSSmsEntity.java | 2 +- .../sms/entity/TSSmsSqlEntity.java | 2 +- .../sms/entity/TSSmsTemplateEntity.java | 2 +- .../sms/entity/TSSmsTemplateSqlEntity.java | 2 +- .../sms/service/TSSmsServiceI.java | 4 +- .../sms/service/TSSmsSqlServiceI.java | 4 +- .../sms/service/TSSmsTemplateServiceI.java | 4 +- .../sms/service/TSSmsTemplateSqlServiceI.java | 4 +- .../sms/service/impl/TSSmsServiceImpl.java | 12 +- .../sms/service/impl/TSSmsSqlServiceImpl.java | 6 +- .../impl/TSSmsTemplateServiceImpl.java | 6 +- .../impl/TSSmsTemplateSqlServiceImpl.java | 6 +- .../{ => system}/sms/util/CMPPSenderUtil.java | 4 +- .../web/{ => system}/sms/util/Constants.java | 2 +- .../web/{ => system}/sms/util/MailUtil.java | 2 +- .../{ => system}/sms/util/TuiSongMsgUtil.java | 18 +- .../web/{ => system}/sms/util/XmlResolve.java | 2 +- .../util/msg/domain/MsgActiveTestResp.java | 2 +- .../sms/util/msg/domain/MsgCommand.java | 2 +- .../sms/util/msg/domain/MsgConnect.java | 4 +- .../sms/util/msg/domain/MsgConnectResp.java | 2 +- .../sms/util/msg/domain/MsgDeliver.java | 2 +- .../sms/util/msg/domain/MsgDeliverResp.java | 2 +- .../sms/util/msg/domain/MsgHead.java | 2 +- .../sms/util/msg/domain/MsgSubmit.java | 4 +- .../sms/util/msg/domain/MsgSubmitResp.java | 2 +- .../sms/util/msg/util/CmppSender.java | 16 +- .../sms/util/msg/util/MsgActivityTimer.java | 2 +- .../sms/util/msg/util/MsgConfig.java | 2 +- .../sms/util/msg/util/MsgContainer.java | 10 +- .../sms/util/msg/util/MsgUtils.java | 2 +- .../sms/util/task/SmsSendTask.java | 4 +- .../system/sms/util/task/SmsSendTaskJob.java | 5 + .../sms/util/webservice/XmlConstant.java | 2 +- .../css/bootstrap-extends.css-osf_6.0.4.css | 402 - .../cms/rank/css/bootstrap.css-osf_6.0.4.css | 6538 ----------------- .../cms/rank/css/common.css-osf_6.0.4.css | 1910 ----- .../cms/rank/css/es-icon.css-osf_6.0.4.css | 131 - .../css/font-awesome.min.css-osf_6.0.4.css | 5 - .../clzcontext/template/cms/rank/css/main.css | 646 -- .../cms/rank/css/main.css-osf_6.0.4.css | 6434 ---------------- .../cms/rank/css/member.css-osf_6.0.4.css | 36 - .../template/cms/rank/css/teacher.css | 110 - .../cms/rank/css/web.css-osf_6.0.4.css | 5578 -------------- .../template/cms/rank/html/introduce.ftl | 164 - .../template/cms/rank/html/teacher.ftl | 79 - .../template/cms/rank/html/teachers.ftl | 117 - src/main/resources/dbconfig.properties | 4 +- .../onetomany/cgform_controllerTemplate.ftl | 597 ++ .../onetomany/cgform_entityTemplate.ftl | 109 + .../onetomany/cgform_jsEnhanceTemplate.ftl} | 49 +- .../cgform_jsListEnhanceTemplate.ftl | 1 + .../onetomany/cgform_jspListTemplate.ftl | 71 + .../onetomany/cgform_jspSubTemplate.ftl | 5 + .../cgform_jspSubTemplate_one2many.ftl | 168 + .../cgform_jspSubTemplate_one2one.ftl | 158 + .../onetomany/cgform_jspTemplate_add.ftl | 274 + .../onetomany/cgform_jspTemplate_update.ftl | 302 + .../default/onetomany/cgform_pageTemplate.ftl | 78 + .../onetomany/cgform_serviceITemplate.ftl | 64 + .../onetomany/cgform_serviceImplTemplate.ftl | 224 + .../single/cgform_controllerTemplate.ftl | 527 ++ .../default/single/cgform_entityTemplate.ftl | 87 + .../single/cgform_jsEnhanceTemplate.ftl} | 2 +- .../single/cgform_jsListEnhanceTemplate.ftl | 1 + .../default/single/cgform_jspListTemplate.ftl | 106 + .../default/single/cgform_jspTemplate_add.ftl | 250 + .../single/cgform_jspTemplate_update.ftl | 243 + .../single/cgform_serviceITemplate.ftl | 30 + .../single/cgform_serviceImplTemplate.ftl | 161 + .../single/cgform_controllerTemplate.ftl | 527 ++ .../nopop/single/cgform_entityTemplate.ftl | 87 + .../single/cgform_jsEnhanceTemplate.ftl} | 2 +- .../single/cgform_jsListEnhanceTemplate.ftl | 1 + .../nopop/single/cgform_jspListTemplate.ftl | 119 + .../nopop/single/cgform_jspTemplate_add.ftl | 279 + .../single/cgform_jspTemplate_update.ftl | 272 + .../nopop/single/cgform_serviceITemplate.ftl | 30 + .../single/cgform_serviceImplTemplate.ftl | 161 + .../resources/jeecg/jeecg_database.properties | 2 +- .../template/cgform_controllerTemplate.ftl | 23 +- .../jeecg/template/cgform_jspListTemplate.ftl | 67 +- .../template/cgform_jspNoPopListTemplate.ftl | 66 +- .../template/cgform_serviceITemplate.ftl | 30 +- .../template/cgform_serviceImplTemplate.ftl | 99 +- .../online/template/default/html/autolist.ftl | 1 - .../template/default2/html/autolist.ftl | 1 - .../template/ledefault/html/autolist.ftl | 1 - .../ledefault/html/jformonetomany.ftl | 1 - .../template/ledefault2/html/autolist.ftl | 1 - .../moblieCommon001/html/autolist.ftl | 1 - .../moblieCommon002/html/autolist.ftl | 1 - .../template/nopopform/html/autolist.ftl | 1 - .../template/o2mTableStyle/html/autolist.ftl | 1 - .../template/rowsEdit/html/autolist.ftl | 1 - src/main/resources/spring-mvc-hibernate.xml | 5 +- src/main/resources/spring-mvc.xml | 8 - src/main/resources/sysConfig.properties | 2 +- src/main/webapp/WEB-INF/tld/easyui.tld | 17 +- src/main/webapp/WEB-INF/web.xml | 2 +- .../js/ueditor/formdesign/checkboxs.html | 8 +- .../js/ueditor/formdesign/listctrl.html | 16 +- .../js/ueditor/formdesign/radios.html | 8 +- .../js/ueditor/formdesign/select.html | 12 +- .../js/ueditor/formdesign/text.html | 20 +- .../js/ueditor/formdesign/textarea.html | 4 +- .../plug-in/OpenLayers-2.11/OpenLayers.js | 2885 -------- .../plug-in/OpenLayers-2.11/img/blank.gif | Bin 42 -> 0 bytes .../img/cloud-popup-relative.png | Bin 4067 -> 0 bytes .../img/drag-rectangle-off.png | Bin 1024 -> 0 bytes .../OpenLayers-2.11/img/drag-rectangle-on.png | Bin 1041 -> 0 bytes .../plug-in/OpenLayers-2.11/img/east-mini.png | Bin 3007 -> 0 bytes .../img/layer-switcher-maximize.png | Bin 3016 -> 0 bytes .../img/layer-switcher-minimize.png | Bin 220 -> 0 bytes .../OpenLayers-2.11/img/marker-blue.png | Bin 758 -> 0 bytes .../OpenLayers-2.11/img/marker-gold.png | Bin 703 -> 0 bytes .../OpenLayers-2.11/img/marker-green.png | Bin 753 -> 0 bytes .../plug-in/OpenLayers-2.11/img/marker.png | Bin 21029 -> 0 bytes .../img/measuring-stick-off.png | Bin 3028 -> 0 bytes .../img/measuring-stick-on.png | Bin 3725 -> 0 bytes .../OpenLayers-2.11/img/modify_vertex_off.png | Bin 586 -> 0 bytes .../OpenLayers-2.11/img/modify_vertex_on.png | Bin 586 -> 0 bytes .../OpenLayers-2.11/img/north-mini.png | Bin 3048 -> 0 bytes .../OpenLayers-2.11/img/panning-hand-off.png | Bin 3511 -> 0 bytes .../OpenLayers-2.11/img/panning-hand-on.png | Bin 3565 -> 0 bytes .../plug-in/OpenLayers-2.11/img/slider.png | Bin 2942 -> 0 bytes .../OpenLayers-2.11/img/south-mini.png | Bin 3044 -> 0 bytes .../plug-in/OpenLayers-2.11/img/west-mini.png | Bin 3023 -> 0 bytes .../OpenLayers-2.11/img/zoom-minus-mini.png | Bin 2976 -> 0 bytes .../OpenLayers-2.11/img/zoom-plus-mini.png | Bin 3056 -> 0 bytes .../OpenLayers-2.11/img/zoom-world-mini.png | Bin 882 -> 0 bytes .../plug-in/OpenLayers-2.11/img/zoombar.png | Bin 2993 -> 0 bytes .../OpenLayers-2.11/lib/Firebug/errorIcon.png | Bin 457 -> 0 bytes .../OpenLayers-2.11/lib/Firebug/firebug.css | 209 - .../OpenLayers-2.11/lib/Firebug/firebug.html | 23 - .../OpenLayers-2.11/lib/Firebug/firebug.js | 674 -- .../OpenLayers-2.11/lib/Firebug/firebugx.js | 10 - .../OpenLayers-2.11/lib/Firebug/infoIcon.png | Bin 524 -> 0 bytes .../OpenLayers-2.11/lib/Firebug/license.txt | 30 - .../OpenLayers-2.11/lib/Firebug/readme.txt | 13 - .../lib/Firebug/warningIcon.png | Bin 516 -> 0 bytes .../OpenLayers-2.11/lib/Gears/gears_init.js | 88 - .../plug-in/OpenLayers-2.11/lib/OpenLayers.js | 384 - .../OpenLayers-2.11/lib/OpenLayers/Ajax.js | 679 -- .../lib/OpenLayers/BaseTypes.js | 566 -- .../lib/OpenLayers/BaseTypes/Bounds.js | 691 -- .../lib/OpenLayers/BaseTypes/Class.js | 163 - .../lib/OpenLayers/BaseTypes/Date.js | 118 - .../lib/OpenLayers/BaseTypes/Element.js | 264 - .../lib/OpenLayers/BaseTypes/LonLat.js | 211 - .../lib/OpenLayers/BaseTypes/Pixel.js | 145 - .../lib/OpenLayers/BaseTypes/Size.js | 89 - .../OpenLayers-2.11/lib/OpenLayers/Console.js | 250 - .../OpenLayers-2.11/lib/OpenLayers/Control.js | 372 - .../lib/OpenLayers/Control/ArgParser.js | 182 - .../lib/OpenLayers/Control/Attribution.js | 94 - .../lib/OpenLayers/Control/Button.js | 44 - .../lib/OpenLayers/Control/DragFeature.js | 366 - .../lib/OpenLayers/Control/DragPan.js | 153 - .../lib/OpenLayers/Control/DrawFeature.js | 226 - .../lib/OpenLayers/Control/EditingToolbar.js | 65 - .../lib/OpenLayers/Control/Geolocate.js | 180 - .../lib/OpenLayers/Control/GetFeature.js | 596 -- .../lib/OpenLayers/Control/Graticule.js | 374 - .../OpenLayers/Control/KeyboardDefaults.js | 112 - .../lib/OpenLayers/Control/LayerSwitcher.js | 622 -- .../lib/OpenLayers/Control/Measure.js | 385 - .../lib/OpenLayers/Control/ModifyFeature.js | 814 -- .../lib/OpenLayers/Control/MouseDefaults.js | 368 - .../lib/OpenLayers/Control/MousePosition.js | 210 - .../lib/OpenLayers/Control/MouseToolbar.js | 406 - .../lib/OpenLayers/Control/NavToolbar.js | 57 - .../lib/OpenLayers/Control/Navigation.js | 345 - .../OpenLayers/Control/NavigationHistory.js | 423 -- .../lib/OpenLayers/Control/OverviewMap.js | 720 -- .../lib/OpenLayers/Control/Pan.js | 102 - .../lib/OpenLayers/Control/PanPanel.js | 73 - .../lib/OpenLayers/Control/PanZoom.js | 246 - .../lib/OpenLayers/Control/PanZoomBar.js | 428 -- .../lib/OpenLayers/Control/Panel.js | 392 - .../lib/OpenLayers/Control/Permalink.js | 249 - .../lib/OpenLayers/Control/PinchZoom.js | 192 - .../lib/OpenLayers/Control/SLDSelect.js | 572 -- .../lib/OpenLayers/Control/Scale.js | 100 - .../lib/OpenLayers/Control/ScaleLine.js | 220 - .../lib/OpenLayers/Control/SelectFeature.js | 628 -- .../lib/OpenLayers/Control/Snapping.js | 566 -- .../lib/OpenLayers/Control/Split.js | 498 -- .../lib/OpenLayers/Control/TouchNavigation.js | 183 - .../OpenLayers/Control/TransformFeature.js | 600 -- .../OpenLayers/Control/WMSGetFeatureInfo.js | 552 -- .../OpenLayers/Control/WMTSGetFeatureInfo.js | 401 - .../lib/OpenLayers/Control/ZoomBox.js | 95 - .../lib/OpenLayers/Control/ZoomIn.js | 35 - .../lib/OpenLayers/Control/ZoomOut.js | 35 - .../lib/OpenLayers/Control/ZoomPanel.js | 54 - .../lib/OpenLayers/Control/ZoomToMaxExtent.js | 40 - .../OpenLayers-2.11/lib/OpenLayers/Events.js | 916 --- .../OpenLayers-2.11/lib/OpenLayers/Feature.js | 225 - .../lib/OpenLayers/Feature/Vector.js | 491 -- .../lib/OpenLayers/Feature/WFS.js | 80 - .../OpenLayers-2.11/lib/OpenLayers/Filter.js | 69 - .../lib/OpenLayers/Filter/Comparison.js | 265 - .../lib/OpenLayers/Filter/FeatureId.js | 87 - .../lib/OpenLayers/Filter/Function.js | 52 - .../lib/OpenLayers/Filter/Logical.js | 121 - .../lib/OpenLayers/Filter/Spatial.js | 129 - .../OpenLayers-2.11/lib/OpenLayers/Format.js | 125 - .../lib/OpenLayers/Format/ArcXML.js | 1028 --- .../lib/OpenLayers/Format/ArcXML/Features.js | 49 - .../lib/OpenLayers/Format/Atom.js | 720 -- .../lib/OpenLayers/Format/CQL.js | 438 -- .../lib/OpenLayers/Format/CSWGetDomain.js | 34 - .../OpenLayers/Format/CSWGetDomain/v2_0_2.js | 243 - .../lib/OpenLayers/Format/CSWGetRecords.js | 34 - .../OpenLayers/Format/CSWGetRecords/v2_0_2.js | 453 -- .../lib/OpenLayers/Format/Context.js | 331 - .../lib/OpenLayers/Format/Filter.js | 53 - .../lib/OpenLayers/Format/Filter/v1.js | 492 -- .../lib/OpenLayers/Format/Filter/v1_0_0.js | 184 - .../lib/OpenLayers/Format/Filter/v1_1_0.js | 221 - .../lib/OpenLayers/Format/GML.js | 925 --- .../lib/OpenLayers/Format/GML/Base.js | 635 -- .../lib/OpenLayers/Format/GML/v2.js | 193 - .../lib/OpenLayers/Format/GML/v3.js | 464 -- .../lib/OpenLayers/Format/GPX.js | 184 - .../lib/OpenLayers/Format/GeoJSON.js | 716 -- .../lib/OpenLayers/Format/GeoRSS.js | 417 -- .../lib/OpenLayers/Format/JSON.js | 398 - .../lib/OpenLayers/Format/KML.js | 1443 ---- .../OpenLayers/Format/OGCExceptionReport.js | 108 - .../lib/OpenLayers/Format/OSM.js | 465 -- .../lib/OpenLayers/Format/OWSCommon.js | 78 - .../lib/OpenLayers/Format/OWSCommon/v1.js | 295 - .../lib/OpenLayers/Format/OWSCommon/v1_0_0.js | 59 - .../lib/OpenLayers/Format/OWSCommon/v1_1_0.js | 113 - .../lib/OpenLayers/Format/OWSContext.js | 83 - .../OpenLayers/Format/OWSContext/v0_3_1.js | 592 -- .../OpenLayers/Format/QueryStringFilter.js | 180 - .../lib/OpenLayers/Format/SLD.js | 72 - .../lib/OpenLayers/Format/SLD/v1.js | 1100 --- .../lib/OpenLayers/Format/SLD/v1_0_0.js | 51 - .../lib/OpenLayers/Format/SOSCapabilities.js | 48 - .../Format/SOSCapabilities/v1_0_0.js | 158 - .../Format/SOSGetFeatureOfInterest.js | 190 - .../OpenLayers/Format/SOSGetObservation.js | 302 - .../lib/OpenLayers/Format/Text.js | 152 - .../lib/OpenLayers/Format/WCSGetCoverage.js | 199 - .../lib/OpenLayers/Format/WFS.js | 221 - .../lib/OpenLayers/Format/WFSCapabilities.js | 56 - .../OpenLayers/Format/WFSCapabilities/v1.js | 126 - .../Format/WFSCapabilities/v1_0_0.js | 167 - .../Format/WFSCapabilities/v1_1_0.js | 46 - .../Format/WFSDescribeFeatureType.js | 195 - .../lib/OpenLayers/Format/WFST.js | 34 - .../lib/OpenLayers/Format/WFST/v1.js | 444 -- .../lib/OpenLayers/Format/WFST/v1_0_0.js | 174 - .../lib/OpenLayers/Format/WFST/v1_1_0.js | 189 - .../lib/OpenLayers/Format/WKT.js | 386 - .../lib/OpenLayers/Format/WMC.js | 182 - .../lib/OpenLayers/Format/WMC/v1.js | 1268 ---- .../lib/OpenLayers/Format/WMC/v1_0_0.js | 104 - .../lib/OpenLayers/Format/WMC/v1_1_0.js | 149 - .../lib/OpenLayers/Format/WMSCapabilities.js | 56 - .../OpenLayers/Format/WMSCapabilities/v1.js | 437 -- .../OpenLayers/Format/WMSCapabilities/v1_1.js | 118 - .../Format/WMSCapabilities/v1_1_0.js | 62 - .../Format/WMSCapabilities/v1_1_1.js | 58 - .../Format/WMSCapabilities/v1_1_1_WMSC.js | 90 - .../OpenLayers/Format/WMSCapabilities/v1_3.js | 128 - .../Format/WMSCapabilities/v1_3_0.js | 30 - .../lib/OpenLayers/Format/WMSDescribeLayer.js | 75 - .../Format/WMSDescribeLayer/v1_1.js | 100 - .../OpenLayers/Format/WMSGetFeatureInfo.js | 296 - .../lib/OpenLayers/Format/WMTSCapabilities.js | 129 - .../Format/WMTSCapabilities/v1_0_0.js | 228 - .../lib/OpenLayers/Format/WPSCapabilities.js | 48 - .../Format/WPSCapabilities/v1_0_0.js | 119 - .../OpenLayers/Format/WPSDescribeProcess.js | 181 - .../lib/OpenLayers/Format/WPSExecute.js | 250 - .../lib/OpenLayers/Format/XLS.js | 68 - .../lib/OpenLayers/Format/XLS/v1.js | 307 - .../lib/OpenLayers/Format/XLS/v1_1_0.js | 53 - .../lib/OpenLayers/Format/XML.js | 911 --- .../lib/OpenLayers/Format/XML/VersionedOGC.js | 190 - .../lib/OpenLayers/Geometry.js | 457 -- .../lib/OpenLayers/Geometry/Collection.js | 563 -- .../lib/OpenLayers/Geometry/Curve.js | 93 - .../lib/OpenLayers/Geometry/LineString.js | 649 -- .../lib/OpenLayers/Geometry/LinearRing.js | 421 -- .../OpenLayers/Geometry/MultiLineString.js | 262 - .../lib/OpenLayers/Geometry/MultiPoint.js | 70 - .../lib/OpenLayers/Geometry/MultiPolygon.js | 46 - .../lib/OpenLayers/Geometry/Point.js | 283 - .../lib/OpenLayers/Geometry/Polygon.js | 259 - .../lib/OpenLayers/Geometry/Rectangle.js | 99 - .../lib/OpenLayers/Geometry/Surface.js | 17 - .../OpenLayers-2.11/lib/OpenLayers/Handler.js | 288 - .../lib/OpenLayers/Handler/Box.js | 243 - .../lib/OpenLayers/Handler/Click.js | 529 -- .../lib/OpenLayers/Handler/Drag.js | 564 -- .../lib/OpenLayers/Handler/Feature.js | 440 -- .../lib/OpenLayers/Handler/Hover.js | 183 - .../lib/OpenLayers/Handler/Keyboard.js | 109 - .../lib/OpenLayers/Handler/MouseWheel.js | 283 - .../lib/OpenLayers/Handler/Path.js | 527 -- .../lib/OpenLayers/Handler/Pinch.js | 233 - .../lib/OpenLayers/Handler/Point.js | 566 -- .../lib/OpenLayers/Handler/Polygon.js | 308 - .../lib/OpenLayers/Handler/RegularPolygon.js | 421 -- .../OpenLayers-2.11/lib/OpenLayers/Icon.js | 231 - .../OpenLayers-2.11/lib/OpenLayers/Kinetic.js | 183 - .../OpenLayers-2.11/lib/OpenLayers/Lang.js | 134 - .../OpenLayers-2.11/lib/OpenLayers/Lang/ar.js | 38 - .../lib/OpenLayers/Lang/be-tarask.js | 76 - .../OpenLayers-2.11/lib/OpenLayers/Lang/bg.js | 29 - .../OpenLayers-2.11/lib/OpenLayers/Lang/br.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/ca.js | 121 - .../lib/OpenLayers/Lang/cs-CZ.js | 65 - .../lib/OpenLayers/Lang/da-DK.js | 112 - .../OpenLayers-2.11/lib/OpenLayers/Lang/de.js | 77 - .../OpenLayers-2.11/lib/OpenLayers/Lang/el.js | 19 - .../lib/OpenLayers/Lang/en-CA.js | 21 - .../OpenLayers-2.11/lib/OpenLayers/Lang/en.js | 124 - .../OpenLayers-2.11/lib/OpenLayers/Lang/es.js | 122 - .../OpenLayers-2.11/lib/OpenLayers/Lang/fi.js | 32 - .../OpenLayers-2.11/lib/OpenLayers/Lang/fr.js | 77 - .../lib/OpenLayers/Lang/fur.js | 35 - .../OpenLayers-2.11/lib/OpenLayers/Lang/gl.js | 75 - .../lib/OpenLayers/Lang/gsw.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/hr.js | 57 - .../lib/OpenLayers/Lang/hsb.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/hu.js | 76 - .../OpenLayers-2.11/lib/OpenLayers/Lang/ia.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/id.js | 76 - .../OpenLayers-2.11/lib/OpenLayers/Lang/io.js | 19 - .../OpenLayers-2.11/lib/OpenLayers/Lang/is.js | 35 - .../OpenLayers-2.11/lib/OpenLayers/Lang/it.js | 109 - .../OpenLayers-2.11/lib/OpenLayers/Lang/ja.js | 76 - .../OpenLayers-2.11/lib/OpenLayers/Lang/km.js | 25 - .../lib/OpenLayers/Lang/ksh.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/lt.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/nb.js | 111 - .../lib/OpenLayers/Lang/nds.js | 57 - .../OpenLayers-2.11/lib/OpenLayers/Lang/nl.js | 75 - .../OpenLayers-2.11/lib/OpenLayers/Lang/nn.js | 27 - .../OpenLayers-2.11/lib/OpenLayers/Lang/oc.js | 75 - .../lib/OpenLayers/Lang/pt-BR.js | 76 - .../OpenLayers-2.11/lib/OpenLayers/Lang/pt.js | 77 - .../OpenLayers-2.11/lib/OpenLayers/Lang/ru.js | 78 - .../OpenLayers-2.11/lib/OpenLayers/Lang/sk.js | 67 - .../lib/OpenLayers/Lang/sv-SE.js | 67 - .../OpenLayers-2.11/lib/OpenLayers/Lang/te.js | 27 - .../OpenLayers-2.11/lib/OpenLayers/Lang/vi.js | 75 - .../lib/OpenLayers/Lang/zh-CN.js | 109 - .../lib/OpenLayers/Lang/zh-TW.js | 110 - .../OpenLayers-2.11/lib/OpenLayers/Layer.js | 1342 ---- .../lib/OpenLayers/Layer/ArcGIS93Rest.js | 236 - .../lib/OpenLayers/Layer/ArcGISCache.js | 477 -- .../lib/OpenLayers/Layer/ArcIMS.js | 449 -- .../lib/OpenLayers/Layer/Bing.js | 278 - .../lib/OpenLayers/Layer/Boxes.js | 76 - .../lib/OpenLayers/Layer/EventPane.js | 436 -- .../lib/OpenLayers/Layer/FixedZoomLevels.js | 325 - .../lib/OpenLayers/Layer/GML.js | 175 - .../lib/OpenLayers/Layer/GeoRSS.js | 266 - .../lib/OpenLayers/Layer/Google.js | 796 -- .../lib/OpenLayers/Layer/Google/v3.js | 450 -- .../lib/OpenLayers/Layer/Grid.js | 870 --- .../lib/OpenLayers/Layer/HTTPRequest.js | 228 - .../lib/OpenLayers/Layer/Image.js | 254 - .../lib/OpenLayers/Layer/KaMap.js | 190 - .../lib/OpenLayers/Layer/KaMapCache.js | 148 - .../lib/OpenLayers/Layer/MapGuide.js | 479 -- .../lib/OpenLayers/Layer/MapServer.js | 183 - .../lib/OpenLayers/Layer/MapServer/Untiled.js | 72 - .../lib/OpenLayers/Layer/Markers.js | 187 - .../lib/OpenLayers/Layer/MultiMap.js | 286 - .../lib/OpenLayers/Layer/PointGrid.js | 299 - .../lib/OpenLayers/Layer/PointTrack.js | 133 - .../lib/OpenLayers/Layer/SphericalMercator.js | 217 - .../lib/OpenLayers/Layer/TMS.js | 205 - .../lib/OpenLayers/Layer/Text.js | 264 - .../lib/OpenLayers/Layer/TileCache.js | 149 - .../lib/OpenLayers/Layer/Vector.js | 1013 --- .../OpenLayers/Layer/Vector/RootContainer.js | 157 - .../lib/OpenLayers/Layer/VirtualEarth.js | 389 - .../lib/OpenLayers/Layer/WFS.js | 610 -- .../lib/OpenLayers/Layer/WMS.js | 285 - .../lib/OpenLayers/Layer/WMS/Post.js | 103 - .../lib/OpenLayers/Layer/WMS/Untiled.js | 72 - .../lib/OpenLayers/Layer/WMTS.js | 460 -- .../lib/OpenLayers/Layer/WorldWind.js | 105 - .../lib/OpenLayers/Layer/XYZ.js | 210 - .../lib/OpenLayers/Layer/Yahoo.js | 431 -- .../lib/OpenLayers/Layer/Zoomify.js | 298 - .../OpenLayers-2.11/lib/OpenLayers/Map.js | 2546 ------- .../OpenLayers-2.11/lib/OpenLayers/Marker.js | 243 - .../lib/OpenLayers/Marker/Box.js | 120 - .../OpenLayers-2.11/lib/OpenLayers/Popup.js | 1063 --- .../lib/OpenLayers/Popup/Anchored.js | 198 - .../lib/OpenLayers/Popup/AnchoredBubble.js | 191 - .../lib/OpenLayers/Popup/Framed.js | 343 - .../lib/OpenLayers/Popup/FramedCloud.js | 234 - .../lib/OpenLayers/Projection.js | 214 - .../lib/OpenLayers/Protocol.js | 282 - .../lib/OpenLayers/Protocol/HTTP.js | 564 -- .../lib/OpenLayers/Protocol/SOS.js | 33 - .../lib/OpenLayers/Protocol/SOS/v1_0_0.js | 132 - .../lib/OpenLayers/Protocol/SQL.js | 88 - .../lib/OpenLayers/Protocol/SQL/Gears.js | 561 -- .../lib/OpenLayers/Protocol/Script.js | 364 - .../lib/OpenLayers/Protocol/WFS.js | 84 - .../lib/OpenLayers/Protocol/WFS/v1.js | 448 -- .../lib/OpenLayers/Protocol/WFS/v1_0_0.js | 44 - .../lib/OpenLayers/Protocol/WFS/v1_1_0.js | 68 - .../lib/OpenLayers/Renderer.js | 367 - .../lib/OpenLayers/Renderer/Canvas.js | 711 -- .../lib/OpenLayers/Renderer/Elements.js | 1017 --- .../lib/OpenLayers/Renderer/NG.js | 135 - .../lib/OpenLayers/Renderer/SVG.js | 1022 --- .../lib/OpenLayers/Renderer/SVG2.js | 826 --- .../lib/OpenLayers/Renderer/VML.js | 1020 --- .../OpenLayers-2.11/lib/OpenLayers/Request.js | 378 - .../lib/OpenLayers/Request/XMLHttpRequest.js | 451 -- .../OpenLayers-2.11/lib/OpenLayers/Rule.js | 241 - .../lib/OpenLayers/SingleFile.js | 43 - .../lib/OpenLayers/Strategy.js | 121 - .../lib/OpenLayers/Strategy/BBOX.js | 290 - .../lib/OpenLayers/Strategy/Cluster.js | 277 - .../lib/OpenLayers/Strategy/Filter.js | 159 - .../lib/OpenLayers/Strategy/Fixed.js | 131 - .../lib/OpenLayers/Strategy/Paging.js | 233 - .../lib/OpenLayers/Strategy/Refresh.js | 137 - .../lib/OpenLayers/Strategy/Save.js | 229 - .../OpenLayers-2.11/lib/OpenLayers/Style.js | 448 -- .../OpenLayers-2.11/lib/OpenLayers/Style2.js | 112 - .../lib/OpenLayers/StyleMap.js | 161 - .../lib/OpenLayers/Symbolizer.js | 55 - .../lib/OpenLayers/Symbolizer/Line.js | 74 - .../lib/OpenLayers/Symbolizer/Point.js | 157 - .../lib/OpenLayers/Symbolizer/Polygon.js | 88 - .../lib/OpenLayers/Symbolizer/Raster.js | 34 - .../lib/OpenLayers/Symbolizer/Text.js | 70 - .../OpenLayers-2.11/lib/OpenLayers/Tile.js | 288 - .../lib/OpenLayers/Tile/Image.js | 603 -- .../lib/OpenLayers/Tile/Image/IFrame.js | 224 - .../lib/OpenLayers/Tile/WFS.js | 192 - .../OpenLayers-2.11/lib/OpenLayers/Tween.js | 319 - .../OpenLayers-2.11/lib/OpenLayers/Util.js | 1839 ----- .../plug-in/OpenLayers-2.11/lib/Rico/Color.js | 250 - .../OpenLayers-2.11/lib/Rico/Corner.js | 335 - .../plug-in/OpenLayers-2.11/myOpenlayers.js | 1860 ----- .../theme/default/framedCloud.css | 0 .../OpenLayers-2.11/theme/default/google.css | 17 - .../theme/default/google.tidy.css | 1 - .../theme/default/ie6-style.css | 10 - .../theme/default/ie6-style.tidy.css | 1 - .../theme/default/img/add_point_off.png | Bin 1614 -> 0 bytes .../theme/default/img/add_point_on.png | Bin 1464 -> 0 bytes .../theme/default/img/blank.gif | Bin 42 -> 0 bytes .../theme/default/img/btnDrawLine-off.gif | Bin 920 -> 0 bytes .../theme/default/img/btnDrawLine-on.gif | Bin 942 -> 0 bytes .../theme/default/img/btnDrawPoint-off.gif | Bin 942 -> 0 bytes .../theme/default/img/btnDrawPoint-on.gif | Bin 1014 -> 0 bytes .../theme/default/img/btnDrawPolygon-off.gif | Bin 955 -> 0 bytes .../theme/default/img/btnDrawPolygon-on.gif | Bin 936 -> 0 bytes .../default/img/btnDrawRegularPolygon-off.gif | Bin 871 -> 0 bytes .../default/img/btnDrawRegularPolygon-on.gif | Bin 871 -> 0 bytes .../theme/default/img/btnFindPolygon-off.gif | Bin 1133 -> 0 bytes .../theme/default/img/btnFindPolygon-on.gif | Bin 1096 -> 0 bytes .../default/img/btnFindRectangle-off.gif | Bin 1000 -> 0 bytes .../theme/default/img/btnFindRectangle-on.gif | Bin 1006 -> 0 bytes .../theme/default/img/btnFindUTMZone-off.gif | Bin 664 -> 0 bytes .../theme/default/img/btnFindUTMZone-on.gif | Bin 446 -> 0 bytes .../default/img/btnHeightProfile-off.gif | Bin 376 -> 0 bytes .../theme/default/img/btnHeightProfile-on.gif | Bin 220 -> 0 bytes .../theme/default/img/btnMeasureArea-off.gif | Bin 953 -> 0 bytes .../theme/default/img/btnMeasureArea-on.gif | Bin 948 -> 0 bytes .../theme/default/img/btnMeasureLine-off.gif | Bin 1013 -> 0 bytes .../theme/default/img/btnMeasureLine-on.gif | Bin 1007 -> 0 bytes .../default/img/btnModifyFeature-off.gif | Bin 988 -> 0 bytes .../theme/default/img/btnModifyFeature-on.gif | Bin 981 -> 0 bytes .../theme/default/img/btnNodplakat-off.gif | Bin 700 -> 0 bytes .../theme/default/img/btnNodplakat-on.gif | Bin 418 -> 0 bytes .../theme/default/img/btnPan-off.gif | Bin 892 -> 0 bytes .../theme/default/img/btnPan-on.gif | Bin 892 -> 0 bytes .../theme/default/img/btnPrevious-off.gif | Bin 115 -> 0 bytes .../theme/default/img/btnPrevious-on.gif | Bin 115 -> 0 bytes .../theme/default/img/btnRefreshMap-off.gif | Bin 858 -> 0 bytes .../theme/default/img/btnSunUpDown-off.gif | Bin 423 -> 0 bytes .../theme/default/img/btnSunUpDown-on.gif | Bin 309 -> 0 bytes .../default/img/btnWeatherForecast-off.gif | Bin 284 -> 0 bytes .../default/img/btnWeatherForecast-on.gif | Bin 284 -> 0 bytes .../theme/default/img/btnZoomBox-off.gif | Bin 957 -> 0 bytes .../theme/default/img/btnZoomBox-on.gif | Bin 965 -> 0 bytes .../theme/default/img/btnZoomOut-off.gif | Bin 961 -> 0 bytes .../default/img/btnZoomToMaxExtent-off.gif | Bin 1042 -> 0 bytes .../theme/default/img/btnZoomToScale-off.gif | Bin 910 -> 0 bytes .../theme/default/img/circleselect_off.png | Bin 903 -> 0 bytes .../theme/default/img/circleselect_on.png | Bin 903 -> 0 bytes .../theme/default/img/close.gif | Bin 1078 -> 0 bytes .../theme/default/img/drag-rectangle-off.png | Bin 1024 -> 0 bytes .../theme/default/img/drag-rectangle-on.png | Bin 1041 -> 0 bytes .../theme/default/img/draw_line_off.png | Bin 1565 -> 0 bytes .../theme/default/img/draw_line_on.png | Bin 1396 -> 0 bytes .../theme/default/img/draw_point_off.png | Bin 1610 -> 0 bytes .../theme/default/img/draw_point_on.png | Bin 1458 -> 0 bytes .../theme/default/img/draw_polygon_off.png | Bin 1544 -> 0 bytes .../theme/default/img/draw_polygon_on.png | Bin 1405 -> 0 bytes .../theme/default/img/editing_tool_bar.png | Bin 2222 -> 0 bytes .../theme/default/img/modify_vertex_off.png | Bin 586 -> 0 bytes .../theme/default/img/modify_vertex_on.png | Bin 586 -> 0 bytes .../theme/default/img/move_feature_off.png | Bin 1541 -> 0 bytes .../theme/default/img/move_feature_on.png | Bin 1377 -> 0 bytes .../theme/default/img/navigation_history.png | Bin 6628 -> 0 bytes .../default/img/overview_replacement.gif | Bin 79 -> 0 bytes .../theme/default/img/pan-panel-NOALPHA.png | Bin 564 -> 0 bytes .../theme/default/img/pan-panel.png | Bin 814 -> 0 bytes .../theme/default/img/pan_off.png | Bin 1696 -> 0 bytes .../theme/default/img/pan_on.png | Bin 1566 -> 0 bytes .../theme/default/img/panning-hand-off.png | Bin 3511 -> 0 bytes .../theme/default/img/panning-hand-on.png | Bin 3565 -> 0 bytes .../theme/default/img/polygonselect_off.png | Bin 871 -> 0 bytes .../theme/default/img/polygonselect_on.png | Bin 871 -> 0 bytes .../theme/default/img/qingchu_off.png | Bin 712 -> 0 bytes .../theme/default/img/qingchu_on.png | Bin 712 -> 0 bytes .../theme/default/img/rectselect_off.png | Bin 852 -> 0 bytes .../theme/default/img/rectselect_on.png | Bin 852 -> 0 bytes .../theme/default/img/remove_point_off.png | Bin 1612 -> 0 bytes .../theme/default/img/remove_point_on.png | Bin 1461 -> 0 bytes .../theme/default/img/ruler.png | Bin 1211 -> 0 bytes .../theme/default/img/save_features_off.png | Bin 354 -> 0 bytes .../theme/default/img/save_features_on.png | Bin 361 -> 0 bytes .../theme/default/img/select_off.png | Bin 797 -> 0 bytes .../theme/default/img/select_on.png | Bin 797 -> 0 bytes .../theme/default/img/view_next_off.png | Bin 1499 -> 0 bytes .../theme/default/img/view_next_on.png | Bin 1686 -> 0 bytes .../theme/default/img/view_previous_off.png | Bin 1476 -> 0 bytes .../theme/default/img/view_previous_on.png | Bin 1592 -> 0 bytes .../theme/default/img/zoom-panel-NOALPHA.png | Bin 1173 -> 0 bytes .../theme/default/img/zoom-panel.png | Bin 1285 -> 0 bytes .../OpenLayers-2.11/theme/default/style.css | 433 -- .../theme/default/style.tidy.css | 1 - .../plug-in/OpenLayers-2.11/theme/map.css | 279 - .../OpenLayers-2.11/tools/BeautifulSoup.py | 1767 ----- .../plug-in/OpenLayers-2.11/tools/README.txt | 14 - .../plug-in/OpenLayers-2.11/tools/branch.sh | 5 - .../plug-in/OpenLayers-2.11/tools/closure.py | 22 - .../OpenLayers-2.11/tools/closure_ws.py | 28 - .../OpenLayers-2.11/tools/exampleparser.py | 262 - .../plug-in/OpenLayers-2.11/tools/jsmin.c | 272 - .../plug-in/OpenLayers-2.11/tools/jsmin.py | 216 - .../plug-in/OpenLayers-2.11/tools/mergejs.py | 259 - .../plug-in/OpenLayers-2.11/tools/minimize.py | 47 - .../OpenLayers-2.11/tools/mkrelease.sh | 28 - .../plug-in/OpenLayers-2.11/tools/oldot.py | 43 - .../plug-in/OpenLayers-2.11/tools/rc.sh | 13 - .../plug-in/OpenLayers-2.11/tools/release.sh | 40 - .../OpenLayers-2.11/tools/shrinksafe.py | 54 - .../plug-in/OpenLayers-2.11/tools/toposort.py | 35 - .../OpenLayers-2.11/tools/update_dev_dir.sh | 58 - .../webapp/plug-in/cgform/js/cgformField.js | 2 - .../com/buss/yd/tYdServiceScore-add.jsp | 92 - .../com/buss/yd/tYdServiceScore-update.jsp | 91 - .../com/buss/yd/tYdServiceScoreList.js | 8 - .../com/buss/yd/tYdServiceScoreList.jsp | 53 - .../jeecg/cgform/generate/one2many.jsp | 8 +- .../webpage/jeecg/cgform/generate/single.jsp | 11 +- .../jeecg/demo/base/report/reportDemo.jsp | 2 +- .../jeecg/demo/jeecgDemo/jeecgDemoList.jsp | 2 +- .../webapp/webpage/jeecg/onlinedoc/add.gif | Bin 1010 -> 0 bytes .../webpage/jeecg/onlinedoc/ajaxfileupload.js | 221 - .../webpage/jeecg/onlinedoc/default.jpg | Bin 3634 -> 0 bytes .../webpage/jeecg/onlinedoc/onlineDoc-add.jsp | 124 - .../jeecg/onlinedoc/onlineDoc-update.jsp | 124 - .../webpage/jeecg/onlinedoc/onlineDoc.js | 53 - .../webpage/jeecg/onlinedoc/onlineDocList.js | 0 .../webpage/jeecg/onlinedoc/onlineDocList.jsp | 120 - .../webapp/webpage/jeecg/onlinedoc/redo.png | Bin 708 -> 0 bytes .../jeecg/onlinedocsort/onlineDocSort-add.jsp | 48 - .../onlinedocsort/onlineDocSort-update.jsp | 46 - .../jeecg/onlinedocsort/onlineDocSortList.js | 0 .../jeecg/onlinedocsort/onlineDocSortList.jsp | 34 - src/main/webapp/webpage/login/login.jsp | 6 +- src/main/webapp/webpage/main/ace_main.jsp | 6 +- src/main/webapp/webpage/main/ace_main2.jsp | 6 +- src/main/webapp/webpage/main/acehome.jsp | 4 +- src/main/webapp/webpage/main/diy.jsp | 2 +- src/main/webapp/webpage/main/homeTab.jsp | 4 +- src/main/webapp/webpage/main/hplushome.jsp | 39 +- src/main/webapp/webpage/main/sliding_top.jsp | 4 +- .../webpage/system/category/category.jsp | 4 +- .../webpage/system/dbsource/dbSource.jsp | 2 +- .../webpage/system/depart/departSelect.jsp | 8 +- .../webapp/webpage/system/log/logList.jsp | 12 +- .../system/mail/jformInnerMail-detail.jsp | 105 - .../system/mail/jformInnerMail-update.jsp | 263 - .../system/mail/jformInnerMailReceiveList.jsp | 57 - .../system/mail/jformInnerMailSendList.jsp | 39 - .../system/mail/jformInnerMailUnSendList.jsp | 39 - .../webpage/system/mail/selectReceiver.jsp | 28 - .../webpage/system/rank/tSTeamPerson-add.jsp | 68 - .../system/rank/tSTeamPerson-update.jsp | 73 - .../webpage/system/rank/tSTeamPersonList.js | 0 .../webpage/system/rank/tSTeamPersonList.jsp | 50 - .../webpage/system/user/changestyle.jsp | 2 +- .../webapp/webpage/system/user/noticeList.jsp | 4 +- src/main/webapp/webpage/system/user/user.jsp | 2 +- 入门必读.txt | 2 +- 661 files changed, 6011 insertions(+), 124832 deletions(-) rename docs/db/{jeecg-mysql-3.6.4.sql => jeecg3.6.5-mysql-20160718.sql} (88%) create mode 100644 docs/db/jeecg3.6.5-oracle11g-20160718.dmp create mode 100644 src/main/java/org/jeecgframework/core/enums/OnlineGenerateEnum.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedoc/controller/OnlineDocController.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedoc/entity/OnlineDocEntity.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedoc/service/OnlineDocServiceI.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedoc/service/impl/OnlineDocServiceImpl.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedocsort/controller/OnlineDocSortController.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedocsort/entity/OnlineDocSortEntity.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedocsort/service/OnlineDocSortServiceI.java delete mode 100644 src/main/java/org/jeecgframework/web/onlinedocsort/service/impl/OnlineDocSortServiceImpl.java delete mode 100644 src/main/java/org/jeecgframework/web/rank/controller/TSTeamPersonController.java delete mode 100644 src/main/java/org/jeecgframework/web/rank/entity/TSTeamPersonEntity.java delete mode 100644 src/main/java/org/jeecgframework/web/rank/service/TSTeamPersonServiceI.java delete mode 100644 src/main/java/org/jeecgframework/web/rank/service/impl/TSTeamPersonServiceImpl.java delete mode 100644 src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTaskJob.java delete mode 100644 src/main/java/org/jeecgframework/web/system/controller/core/JformInnerMailController.java delete mode 100644 src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailAttach.java delete mode 100644 src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailEntity.java delete mode 100644 src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailReceiverEntity.java delete mode 100644 src/main/java/org/jeecgframework/web/system/service/JformInnerMailServiceI.java delete mode 100644 src/main/java/org/jeecgframework/web/system/service/impl/JformInnerMailServiceImpl.java rename src/main/java/org/jeecgframework/web/{ => system}/sms/controller/TSSmsController.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/controller/TSSmsSqlController.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/controller/TSSmsTemplateController.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/controller/TSSmsTemplateSqlController.java (97%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/entity/TSSmsEntity.java (99%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/entity/TSSmsSqlEntity.java (99%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/entity/TSSmsTemplateEntity.java (99%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/entity/TSSmsTemplateSqlEntity.java (99%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/TSSmsServiceI.java (91%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/TSSmsSqlServiceI.java (89%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/TSSmsTemplateServiceI.java (84%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/TSSmsTemplateSqlServiceI.java (84%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/impl/TSSmsServiceImpl.java (94%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/impl/TSSmsSqlServiceImpl.java (84%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/impl/TSSmsTemplateServiceImpl.java (92%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/service/impl/TSSmsTemplateSqlServiceImpl.java (92%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/CMPPSenderUtil.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/Constants.java (95%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/MailUtil.java (99%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/TuiSongMsgUtil.java (92%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/XmlResolve.java (62%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgActiveTestResp.java (95%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgCommand.java (94%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgConnect.java (96%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgConnectResp.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgDeliver.java (99%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgDeliverResp.java (96%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgHead.java (97%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgSubmit.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/domain/MsgSubmitResp.java (97%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/util/CmppSender.java (92%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/util/MsgActivityTimer.java (95%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/util/MsgConfig.java (96%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/util/MsgContainer.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/msg/util/MsgUtils.java (98%) rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/task/SmsSendTask.java (89%) create mode 100644 src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTaskJob.java rename src/main/java/org/jeecgframework/web/{ => system}/sms/util/webservice/XmlConstant.java (91%) delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/bootstrap-extends.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/bootstrap.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/common.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/es-icon.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/font-awesome.min.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/main.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/main.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/member.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/teacher.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/css/web.css-osf_6.0.4.css delete mode 100644 src/main/resources/clzcontext/template/cms/rank/html/introduce.ftl delete mode 100644 src/main/resources/clzcontext/template/cms/rank/html/teacher.ftl delete mode 100644 src/main/resources/clzcontext/template/cms/rank/html/teachers.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_controllerTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_entityTemplate.ftl rename src/main/{webapp/webpage/com/buss/yd/tYdServiceScore.js => resources/jeecg/ext-template/default/onetomany/cgform_jsEnhanceTemplate.ftl} (55%) create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jsListEnhanceTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jspListTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jspSubTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jspSubTemplate_one2many.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jspSubTemplate_one2one.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jspTemplate_add.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_jspTemplate_update.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_pageTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_serviceITemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/onetomany/cgform_serviceImplTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_controllerTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_entityTemplate.ftl rename src/main/{webapp/webpage/system/rank/tSTeamPerson.js => resources/jeecg/ext-template/default/single/cgform_jsEnhanceTemplate.ftl} (97%) create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_jsListEnhanceTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_jspListTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_jspTemplate_add.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_jspTemplate_update.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_serviceITemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/default/single/cgform_serviceImplTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_controllerTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_entityTemplate.ftl rename src/main/{webapp/webpage/jeecg/onlinedocsort/onlineDocSort.js => resources/jeecg/ext-template/nopop/single/cgform_jsEnhanceTemplate.ftl} (97%) create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_jsListEnhanceTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_jspListTemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_jspTemplate_add.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_jspTemplate_update.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_serviceITemplate.ftl create mode 100644 src/main/resources/jeecg/ext-template/nopop/single/cgform_serviceImplTemplate.ftl delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/OpenLayers.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/blank.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/cloud-popup-relative.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/drag-rectangle-off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/drag-rectangle-on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/east-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/layer-switcher-maximize.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/layer-switcher-minimize.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/marker-blue.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/marker-gold.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/marker-green.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/marker.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/measuring-stick-off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/measuring-stick-on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/modify_vertex_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/modify_vertex_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/north-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/panning-hand-off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/panning-hand-on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/slider.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/south-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/west-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/zoom-minus-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/zoom-plus-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/zoom-world-mini.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/img/zoombar.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/errorIcon.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/firebug.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/firebug.html delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/firebug.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/firebugx.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/infoIcon.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/license.txt delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/readme.txt delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Firebug/warningIcon.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Gears/gears_init.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Ajax.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Bounds.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Date.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Element.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/LonLat.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Pixel.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Size.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Console.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ArgParser.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Attribution.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Button.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/DragFeature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/DragPan.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/DrawFeature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/EditingToolbar.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Geolocate.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/GetFeature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Graticule.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/KeyboardDefaults.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/LayerSwitcher.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Measure.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ModifyFeature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/MouseDefaults.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/MousePosition.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/MouseToolbar.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/NavToolbar.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Navigation.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/NavigationHistory.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/OverviewMap.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Pan.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/PanPanel.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/PanZoom.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/PanZoomBar.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Panel.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Permalink.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/PinchZoom.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/SLDSelect.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Scale.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ScaleLine.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/SelectFeature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Snapping.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/Split.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/TouchNavigation.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/TransformFeature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/WMSGetFeatureInfo.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/WMTSGetFeatureInfo.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ZoomBox.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ZoomIn.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ZoomOut.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ZoomPanel.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Control/ZoomToMaxExtent.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Events.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Feature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Feature/Vector.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Feature/WFS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Filter.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Filter/Comparison.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Filter/FeatureId.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Filter/Function.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Filter/Logical.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Filter/Spatial.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/ArcXML.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/ArcXML/Features.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Atom.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/CQL.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetDomain.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetRecords.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Context.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Filter.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GML.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GML/Base.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GML/v2.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GML/v3.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GPX.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GeoJSON.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/GeoRSS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/JSON.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/KML.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OGCExceptionReport.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OSM.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OWSContext.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/OWSContext/v0_3_1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/QueryStringFilter.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SLD.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SLD/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SLD/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SOSCapabilities.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/SOSGetObservation.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/Text.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WCSGetCoverage.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFSDescribeFeatureType.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFST.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WKT.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMC.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_3.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSDescribeLayer.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMSGetFeatureInfo.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMTSCapabilities.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WPSCapabilities.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WPSDescribeProcess.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/WPSExecute.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/XLS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/XLS/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/XLS/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/XML.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Format/XML/VersionedOGC.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/Collection.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/Curve.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/LineString.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/LinearRing.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiLineString.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiPoint.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiPolygon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/Point.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/Polygon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/Rectangle.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Geometry/Surface.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Box.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Click.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Drag.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Feature.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Hover.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Keyboard.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/MouseWheel.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Path.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Pinch.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Point.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/Polygon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Handler/RegularPolygon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Icon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Kinetic.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/ar.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/be-tarask.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/bg.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/br.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/ca.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/cs-CZ.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/da-DK.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/de.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/el.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/en-CA.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/en.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/es.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/fi.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/fr.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/fur.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/gl.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/gsw.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/hr.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/hsb.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/hu.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/ia.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/id.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/io.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/is.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/it.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/ja.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/km.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/ksh.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/lt.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/nb.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/nds.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/nl.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/nn.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/oc.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/pt-BR.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/pt.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/ru.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/sk.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/sv-SE.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/te.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/vi.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/zh-CN.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Lang/zh-TW.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGIS93Rest.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/ArcIMS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Bing.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Boxes.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/EventPane.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/FixedZoomLevels.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/GML.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/GeoRSS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Google.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Grid.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/HTTPRequest.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Image.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/KaMap.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/KaMapCache.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/MapGuide.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/MapServer.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/MapServer/Untiled.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Markers.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/MultiMap.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/PointGrid.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/PointTrack.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/SphericalMercator.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/TMS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Text.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/TileCache.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Vector.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Vector/RootContainer.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/VirtualEarth.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/WFS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/WMS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/WMS/Post.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/WMS/Untiled.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/WMTS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/WorldWind.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/XYZ.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Yahoo.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Layer/Zoomify.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Map.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Marker.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Marker/Box.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Popup.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Popup/Anchored.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Popup/AnchoredBubble.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Popup/Framed.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Popup/FramedCloud.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Projection.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/HTTP.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/SQL.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/SQL/Gears.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/Script.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1_0_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1_1_0.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer/Canvas.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer/Elements.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer/NG.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer/SVG.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer/SVG2.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Renderer/VML.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Request.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Request/XMLHttpRequest.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Rule.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/SingleFile.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/BBOX.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/Cluster.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/Filter.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/Fixed.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/Paging.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/Refresh.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Strategy/Save.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Style.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Style2.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/StyleMap.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Symbolizer.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Line.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Point.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Polygon.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Raster.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Text.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Tile.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Tile/Image.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Tile/Image/IFrame.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Tile/WFS.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Tween.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/OpenLayers/Util.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Rico/Color.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/lib/Rico/Corner.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/myOpenlayers.js delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/framedCloud.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/google.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/google.tidy.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/ie6-style.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/ie6-style.tidy.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/add_point_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/add_point_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/blank.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawLine-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawLine-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawPoint-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawPoint-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawPolygon-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawPolygon-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawRegularPolygon-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnDrawRegularPolygon-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnFindPolygon-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnFindPolygon-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnFindRectangle-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnFindRectangle-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnFindUTMZone-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnFindUTMZone-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnHeightProfile-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnHeightProfile-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnMeasureArea-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnMeasureArea-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnMeasureLine-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnMeasureLine-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnModifyFeature-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnModifyFeature-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnNodplakat-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnNodplakat-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnPan-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnPan-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnPrevious-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnPrevious-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnRefreshMap-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnSunUpDown-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnSunUpDown-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnWeatherForecast-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnWeatherForecast-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnZoomBox-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnZoomBox-on.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnZoomOut-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnZoomToMaxExtent-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/btnZoomToScale-off.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/circleselect_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/circleselect_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/close.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/drag-rectangle-off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/drag-rectangle-on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/draw_line_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/draw_line_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/draw_point_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/draw_point_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/draw_polygon_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/draw_polygon_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/editing_tool_bar.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/modify_vertex_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/modify_vertex_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/move_feature_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/move_feature_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/navigation_history.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/overview_replacement.gif delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/pan-panel-NOALPHA.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/pan-panel.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/pan_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/pan_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/panning-hand-off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/panning-hand-on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/polygonselect_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/polygonselect_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/qingchu_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/qingchu_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/rectselect_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/rectselect_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/remove_point_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/remove_point_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/ruler.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/save_features_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/save_features_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/select_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/select_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/view_next_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/view_next_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/view_previous_off.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/view_previous_on.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/zoom-panel-NOALPHA.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/img/zoom-panel.png delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/style.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/default/style.tidy.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/theme/map.css delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/BeautifulSoup.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/README.txt delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/branch.sh delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/closure.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/closure_ws.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/exampleparser.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/jsmin.c delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/jsmin.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/mergejs.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/minimize.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/mkrelease.sh delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/oldot.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/rc.sh delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/release.sh delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/shrinksafe.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/toposort.py delete mode 100644 src/main/webapp/plug-in/OpenLayers-2.11/tools/update_dev_dir.sh delete mode 100644 src/main/webapp/webpage/com/buss/yd/tYdServiceScore-add.jsp delete mode 100644 src/main/webapp/webpage/com/buss/yd/tYdServiceScore-update.jsp delete mode 100644 src/main/webapp/webpage/com/buss/yd/tYdServiceScoreList.js delete mode 100644 src/main/webapp/webpage/com/buss/yd/tYdServiceScoreList.jsp delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/add.gif delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/ajaxfileupload.js delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/default.jpg delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/onlineDoc-add.jsp delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/onlineDoc-update.jsp delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/onlineDoc.js delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/onlineDocList.js delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/onlineDocList.jsp delete mode 100644 src/main/webapp/webpage/jeecg/onlinedoc/redo.png delete mode 100644 src/main/webapp/webpage/jeecg/onlinedocsort/onlineDocSort-add.jsp delete mode 100644 src/main/webapp/webpage/jeecg/onlinedocsort/onlineDocSort-update.jsp delete mode 100644 src/main/webapp/webpage/jeecg/onlinedocsort/onlineDocSortList.js delete mode 100644 src/main/webapp/webpage/jeecg/onlinedocsort/onlineDocSortList.jsp delete mode 100644 src/main/webapp/webpage/system/mail/jformInnerMail-detail.jsp delete mode 100644 src/main/webapp/webpage/system/mail/jformInnerMail-update.jsp delete mode 100644 src/main/webapp/webpage/system/mail/jformInnerMailReceiveList.jsp delete mode 100644 src/main/webapp/webpage/system/mail/jformInnerMailSendList.jsp delete mode 100644 src/main/webapp/webpage/system/mail/jformInnerMailUnSendList.jsp delete mode 100644 src/main/webapp/webpage/system/mail/selectReceiver.jsp delete mode 100644 src/main/webapp/webpage/system/rank/tSTeamPerson-add.jsp delete mode 100644 src/main/webapp/webpage/system/rank/tSTeamPerson-update.jsp delete mode 100644 src/main/webapp/webpage/system/rank/tSTeamPersonList.js delete mode 100644 src/main/webapp/webpage/system/rank/tSTeamPersonList.jsp diff --git a/README.md b/README.md index 02db63f1..2bbdfb36 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ JEECG ΢ƿٿƽ̨ =============== -ǰ°汾 3.6.4ڣ20160701 +ǰ°汾 3.6.5ڣ20160718 ǰԣ ----------------------------------- diff --git a/docs/db/jeecg-mysql-3.6.4.sql b/docs/db/jeecg3.6.5-mysql-20160718.sql similarity index 88% rename from docs/db/jeecg-mysql-3.6.4.sql rename to docs/db/jeecg3.6.5-mysql-20160718.sql index 4860c6de..5a395788 100644 --- a/docs/db/jeecg-mysql-3.6.4.sql +++ b/docs/db/jeecg3.6.5-mysql-20160718.sql @@ -10,7 +10,7 @@ Target Server Type : MYSQL Target Server Version : 50037 File Encoding : 65001 -Date: 2016-06-29 14:30:47 +Date: 2016-07-18 17:06:04 */ SET FOREIGN_KEY_CHECKS=0; @@ -640,14 +640,6 @@ INSERT INTO `cgform_field` VALUES ('402880e74da32ebe014da3309cff0007', '更新 INSERT INTO `cgform_field` VALUES ('402880e74da32ebe014da3309d020008', '更新日期', 'admin', '2015-05-30 12:59:41', '管理员', '', '', '', '', '', '120', 'update_date', '', 'N', 'Y', 'N', 'N', 'N', '20', '', '', 'update_date', '7', '0', 'single', 'date', 'Date', 'admin', '2015-06-12 10:56:57', '管理员', '402880e74da32ebe014da3309b880001', ''); INSERT INTO `cgform_field` VALUES ('402880e74da32ebe014da3309d050009', '物料编码', 'admin', '2015-05-30 12:59:41', '管理员', '', '', '', '', '', '120', 'name', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'name', '8', '0', 'single', 'text', 'string', 'admin', '2015-06-12 10:56:57', '管理员', '402880e74da32ebe014da3309b880001', ''); INSERT INTO `cgform_field` VALUES ('402880e74da35336014da3555bc70002', '父ID', 'admin', '2015-05-30 13:39:49', '管理员', '', '', '', '', '', '120', 'father_id', '', 'N', 'Y', 'N', 'Y', 'N', '32', '', '', 'father_id', '9', '0', 'single', 'text', 'string', 'admin', '2016-06-05 23:03:16', '管理员', '402880e74da32ebe014da3309b880001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa2b0002', '主键', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'id', '', 'Y', 'N', 'N', 'N', 'N', '36', '', '', 'id', '1', '0', 'single', 'text', 'string', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa430003', '创建人名称', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'create_name', '', 'N', 'Y', 'N', 'N', 'Y', '50', '', '', 'create_name', '2', '0', 'single', 'text', 'string', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa480004', '创建人登录名称', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'create_by', '', 'N', 'Y', 'N', 'N', 'Y', '50', '', '', 'create_by', '3', '0', 'single', 'text', 'string', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa4c0005', '创建日期', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'create_date', '', 'N', 'Y', 'N', 'N', 'Y', '20', '', '', 'create_date', '4', '0', 'single', 'date', 'Date', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa510006', '更新人名称', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'update_name', '', 'N', 'Y', 'N', 'N', 'Y', '50', '', '', 'update_name', '5', '0', 'single', 'text', 'string', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa5e0007', '更新人登录名称', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'update_by', '', 'N', 'Y', 'N', 'N', 'Y', '50', '', '', 'update_by', '6', '0', 'single', 'text', 'string', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa620008', '更新日期', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'update_date', '', 'N', 'Y', 'N', 'N', 'Y', '20', '', '', 'update_date', '7', '0', 'single', 'date', 'Date', 'admin', '2015-06-16 12:07:32', '管理员', '402880e74dc1e65e014dc1effa270001', ''); -INSERT INTO `cgform_field` VALUES ('402880e74dc1e65e014dc1effa660009', '名字', 'admin', '2015-06-05 12:17:19', '管理员', '', '', '', '', '', '120', 'name', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'name', '8', '0', 'single', 'text', 'string', 'admin', '2015-06-17 09:50:43', '管理员', '402880e74dc1e65e014dc1effa270001', '{style:\'width:300px\'}'); INSERT INTO `cgform_field` VALUES ('402880e74de5a679014de5b2eb200004', 'age', 'admin', '2015-06-12 10:56:57', '管理员', '', '', '', '', '', '120', 'age', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'age', '10', '0', 'single', 'text', 'string', null, null, null, '402880e74da32ebe014da3309b880001', ''); INSERT INTO `cgform_field` VALUES ('402881a151f09a900151f0ad74170002', '主键', 'admin', '2015-12-30 10:17:58', '管理员', '', '', '', '', '', '120', 'id', '', 'Y', 'N', 'N', 'N', 'N', '36', '', '', 'id', '1', '0', 'single', 'text', 'string', null, null, null, '402881a151f09a900151f0ad74120001', ''); INSERT INTO `cgform_field` VALUES ('402881a151f09a900151f0ad74350003', '创建人名称', 'admin', '2015-12-30 10:17:58', '管理员', '', '', '', '', '', '120', 'create_name', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_name', '2', '0', 'single', 'text', 'string', null, null, null, '402881a151f09a900151f0ad74120001', ''); @@ -746,7 +738,7 @@ INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfaf00006', '电话 INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb000007', '电子邮箱', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'email', '', 'N', 'Y', 'N', 'Y', 'Y', '50', '', '', 'email', '6', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:18:44', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb000008', '最高学历', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'degree', '', 'N', 'Y', 'N', 'Y', 'Y', '50', '', '', 'degree', '7', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:18:44', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb000009', '工作年限', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'workyear', '', 'N', 'Y', 'N', 'Y', 'Y', '20', '', '', 'workyear', '8', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:18:44', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); -INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb00000a', '身份证号', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'cardid', '', 'N', 'Y', 'N', 'N', 'Y', '50', '', '', 'cardid', '9', '0', 'group', 'text', 'string', 'admin', '2016-05-07 16:19:02', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); +INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb00000a', '身份证号', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'cardid', '', 'N', 'Y', 'N', 'N', 'Y', '200', '', '', 'cardid', '9', '0', 'group', 'text', 'string', 'admin', '2016-07-06 15:44:08', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb00000b', '现居地', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'habitation', '', 'N', 'Y', 'N', 'N', 'Y', '100', '', '', 'habitation', '10', '0', 'group', 'text', 'string', 'admin', '2016-05-07 16:24:34', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb0f000c', '户口所在地', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'residence', '', 'N', 'Y', 'N', 'Y', 'Y', '100', '', '', 'residence', '11', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:18:44', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb0f000d', '期望薪资', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'salary', '', 'N', 'Y', 'N', 'Y', 'Y', '20', '', '', 'salary', '12', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:18:44', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); @@ -755,7 +747,7 @@ INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb0f000f', '工作 INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb0f0010', '到岗时间', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'arrival_time', '', 'N', 'Y', 'N', 'Y', 'Y', '0', '', '', 'arrival_time', '15', '0', 'group', 'datetime', 'Date', 'admin', '2016-05-03 18:57:03', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfb0f0011', '自我评价', 'admin', '2016-03-06 21:10:32', '管理员', '', '', '', '', '', '120', 'introduction', '', 'N', 'Y', 'N', 'Y', 'Y', '500', '', '', 'introduction', '16', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:18:45', '管理员', '402881e4534c0aea01534c0cf9f70001', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfca50013', 'id', 'admin', '2016-03-06 21:10:33', '管理员', '', '', '', '', '', '120', 'id', '', 'Y', 'N', 'N', 'N', 'N', '36', '', '', 'id', '1', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:23:12', '管理员', '402881e4534c0aea01534c0cfca50012', ''); -INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfca50014', '简历信息表ID', 'admin', '2016-03-06 21:10:33', '管理员', '', '', '', '', '', '120', 'resume_id', '', 'N', 'Y', 'N', 'N', 'N', '36', 'id', 'jform_resume_info', 'resume_id', '2', '0', 'group', 'text', 'string', 'admin', '2016-03-10 18:10:12', '管理员', '402881e4534c0aea01534c0cfca50012', ''); +INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfca50014', '简历信息表ID', 'admin', '2016-03-06 21:10:33', '管理员', 'id', 'jform_resume_info', 'name', '', '', '120', 'resume_id', '', 'N', 'Y', 'N', 'Y', 'Y', '36', 'id', 'jform_resume_info', 'resume_id', '2', '0', 'group', 'list', 'string', 'admin', '2016-07-14 14:48:33', '管理员', '402881e4534c0aea01534c0cfca50012', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfca50015', '开始日期', 'admin', '2016-03-06 21:10:33', '管理员', '', '', '', '', '', '120', 'begin_date', '', 'N', 'Y', 'N', 'Y', 'Y', '0', '', '', 'begin_date', '3', '0', 'group', 'date', 'Date', 'admin', '2016-03-06 21:23:12', '管理员', '402881e4534c0aea01534c0cfca50012', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfca50016', '结束日期', 'admin', '2016-03-06 21:10:33', '管理员', '', '', '', '', '', '120', 'end_date', '', 'N', 'Y', 'N', 'Y', 'Y', '0', '', '', 'end_date', '4', '0', 'group', 'date', 'Date', 'admin', '2016-03-06 21:23:12', '管理员', '402881e4534c0aea01534c0cfca50012', ''); INSERT INTO `cgform_field` VALUES ('402881e4534c0aea01534c0cfca50017', '公司名称', 'admin', '2016-03-06 21:10:33', '管理员', '', '', '', '', '', '120', 'company_name', '', 'N', 'Y', 'N', 'Y', 'Y', '200', '', '', 'company_name', '5', '0', 'group', 'text', 'string', 'admin', '2016-03-06 21:23:12', '管理员', '402881e4534c0aea01534c0cfca50012', ''); @@ -851,20 +843,6 @@ INSERT INTO `cgform_field` VALUES ('402885d8506e5d9201506e72f506001c', '最近 INSERT INTO `cgform_field` VALUES ('402885d8506e5d9201506e72f509001d', '客户意见', 'admin', '2015-10-16 10:20:39', '管理员', '', '', '', '', '', '120', 'customer_opinion', '', 'N', 'Y', 'N', 'Y', 'N', '32', '', '', 'customer_opinion', '28', '0', 'single', 'text', 'string', 'admin', '2015-10-16 22:11:16', '管理员', '402885d8506e5d9201506e72f4920001', ''); INSERT INTO `cgform_field` VALUES ('402885d8506e5d9201506e72f50b001e', '信用评定', 'admin', '2015-10-16 10:20:39', '管理员', '', '', '', '', '', '120', 'credit_evaluation', '', 'N', 'Y', 'N', 'Y', 'N', '32', '', '', 'credit_evaluation', '29', '0', 'single', 'text', 'string', 'admin', '2015-10-16 22:11:16', '管理员', '402885d8506e5d9201506e72f4920001', ''); INSERT INTO `cgform_field` VALUES ('402885d8506e5d9201506e72f50d001f', '填表人', 'admin', '2015-10-16 10:20:39', '管理员', '', '', '', '', '', '120', 'preparer', '', 'N', 'Y', 'N', 'Y', 'N', '32', '', '', 'preparer', '30', '0', 'single', 'text', 'string', 'admin', '2015-10-16 22:11:16', '管理员', '402885d8506e5d9201506e72f4920001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665420002', '主键', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'id', '', 'Y', 'N', 'N', 'N', 'N', '36', '', '', 'id', '1', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665720003', '创建人名称', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'create_name', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_name', '2', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e6658f0004', '创建人登录名称', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'create_by', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_by', '3', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665910005', '创建日期', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'create_date', '', 'N', 'Y', 'N', 'N', 'N', '20', '', '', 'create_date', '4', '0', 'single', 'date', 'Date', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665940006', '更新人名称', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'update_name', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'update_name', '5', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665960007', '更新人登录名称', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'update_by', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'update_by', '6', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665980008', '更新日期', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'update_date', '', 'N', 'Y', 'N', 'N', 'N', '20', '', '', 'update_date', '7', '0', 'single', 'date', 'Date', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e6659a0009', '所属部门', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'sys_org_code', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'sys_org_code', '8', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e6659c000a', '所属公司', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'sys_company_code', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'sys_company_code', '9', '0', 'single', 'text', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e6659f000b', '学生名字', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '500', 'name', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'name', '10', '0', 'single', 'text', 'string', 'admin', '2016-04-01 10:31:15', '管理员', '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665a1000c', '性别', 'admin', '2015-12-31 10:38:15', '管理员', 'sex', '', '', '', '', '120', 'sex', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'sex', '11', '0', 'single', 'radio', 'string', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665a4000d', '年龄', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'age', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'age', '12', '0', 'single', 'text', 'int', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('4028948151f5e0c20151f5e665a7000e', '生日', 'admin', '2015-12-31 10:38:15', '管理员', '', '', '', '', '', '120', 'birthday', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'birthday', '13', '0', 'single', 'date', 'Date', null, null, null, '4028948151f5e0c20151f5e665400001', ''); -INSERT INTO `cgform_field` VALUES ('40289481523940c00152397d2d960002', '头像', 'admin', '2016-01-13 13:37:31', '管理员', '', '', '', '', '', '120', 'img', '', 'N', 'Y', 'N', 'Y', 'Y', '200', '', '', 'img', '9', '0', 'single', 'image', 'string', 'admin', '2016-01-13 15:10:24', '管理员', '402880e74dc1e65e014dc1effa270001', ''); INSERT INTO `cgform_field` VALUES ('4028b881535b12bd01535b1ae3690002', '主键', 'admin', '2016-03-09 19:20:02', '管理员', '', '', '', '', '', '120', 'id', '', 'Y', 'N', 'N', 'N', 'N', '36', '', '', 'id', '1', '0', 'single', 'text', 'string', null, null, null, '4028b881535b12bd01535b1ae3680001', ''); INSERT INTO `cgform_field` VALUES ('4028b881535b12bd01535b1ae49a0003', '创建人名称', 'admin', '2016-03-09 19:20:02', '管理员', '', '', '', '', '', '120', 'create_name', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_name', '2', '0', 'single', 'text', 'string', null, null, null, '4028b881535b12bd01535b1ae3680001', ''); INSERT INTO `cgform_field` VALUES ('4028b881535b12bd01535b1ae4a40004', '创建人登录名称', 'admin', '2016-03-09 19:20:02', '管理员', '', '', '', '', '', '120', 'create_by', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_by', '3', '0', 'single', 'text', 'string', null, null, null, '4028b881535b12bd01535b1ae3680001', ''); @@ -936,16 +914,6 @@ INSERT INTO `cgform_field` VALUES ('8a8ab0b246dc81120146dc8185030166', '差额 INSERT INTO `cgform_field` VALUES ('8a8ab0b246dc81120146dc8185050167', '自收自支', 'admin', '2014-06-27 16:46:54', '管理员', '', '', null, null, null, '0', 'c3', null, 'N', 'N', 'N', 'Y', 'Y', '10', '', '', null, '13', '2', 'single', 'text', 'double', null, null, null, '8a8ab0b246dc81120146dc81848b013f', null); INSERT INTO `cgform_field` VALUES ('8a8ab0b246dc81120146dc8185070168', '经费合计', 'admin', '2014-06-27 16:46:54', '管理员', '', '', null, null, null, '0', 'd', null, 'N', 'N', 'Y', 'Y', 'Y', '10', '', '', null, '14', '2', 'single', 'text', 'int', null, null, null, '8a8ab0b246dc81120146dc81848b013f', null); INSERT INTO `cgform_field` VALUES ('8a8ab0b246dc81120146dc81850a0169', '机构资质', 'admin', '2014-06-27 16:46:54', '管理员', '', '', null, null, null, '0', 'd1', null, 'N', 'N', 'N', 'Y', 'Y', '1000', '', '', null, '15', '0', 'single', 'text', 'string', null, null, null, '8a8ab0b246dc81120146dc81848b013f', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d961c0002', '主键', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'id', '', 'Y', 'N', 'N', 'N', 'N', '36', '', '', 'id', '1', '0', 'single', 'text', 'string', '', null, '', '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96ac0003', '创建人名称', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'create_name', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_name', '2', '0', 'single', 'text', 'string', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96ae0004', '创建人登录名称', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'create_by', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'create_by', '3', '0', 'single', 'text', 'string', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96b20005', '创建日期', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'create_date', '', 'N', 'Y', 'N', 'N', 'N', '20', '', '', 'create_date', '4', '0', 'single', 'date', 'Date', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96bd0006', '更新人名称', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'update_name', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'update_name', '5', '0', 'single', 'text', 'string', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96c60007', '更新人登录名称', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'update_by', '', 'N', 'Y', 'N', 'N', 'N', '50', '', '', 'update_by', '6', '0', 'single', 'text', 'string', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96c90008', '更新日期', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'update_date', '', 'N', 'Y', 'N', 'N', 'N', '20', '', '', 'update_date', '7', '0', 'single', 'date', 'Date', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96cb0009', '标题', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '120', 'title', '', 'N', 'Y', 'Y', 'Y', 'Y', '32', '', '', 'title', '8', '0', 'single', 'text', 'string', '', null, null, '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96ce000a', '类型', 'admin', '2015-06-02 16:22:44', '管理员', 'weixin', '', '', '', '', '120', 'type', '', 'N', 'Y', 'Y', 'Y', 'Y', '32', '', '', 'type', '9', '0', 'single', 'list', 'string', 'admin', '2015-06-03 15:18:39', '管理员', '8af235d44db32051014db35d96190001', null); -INSERT INTO `cgform_field` VALUES ('8af235d44db32051014db35d96de000b', '模板内容', 'admin', '2015-06-02 16:22:44', '管理员', '', '', '', '', '', '300', 'content', '', 'N', 'Y', 'N', 'Y', 'Y', '32', '', '', 'content', '10', '0', 'single', 'textarea', 'Text', 'admin', '2015-06-05 13:31:18', '管理员', '8af235d44db32051014db35d96190001', null); -- ---------------------------- -- Table structure for `cgform_ftl` @@ -1003,7 +971,7 @@ CREATE TABLE `cgform_head` ( `jform_version` varchar(10) NOT NULL, `querymode` varchar(10) NOT NULL, `relation_type` int(11) default NULL, - `sub_table_str` longtext, + `sub_table_str` varchar(1000) default NULL, `tab_order` int(11) default NULL, `table_name` varchar(50) NOT NULL, `update_by` varchar(32) default NULL, @@ -1024,20 +992,18 @@ CREATE TABLE `cgform_head` ( INSERT INTO `cgform_head` VALUES ('2c90ac564c9d1734014c9d22b16c0001', '图表配置', 'admin', '2015-04-09 15:43:58', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '2', '36', 'group', '0', 'jform_graphreport_item', null, 'jform_graphreport_head', 'admin', '2015-04-13 00:40:36', '管理员', null, null, null, 'bdfl_ptbd', null, null); INSERT INTO `cgform_head` VALUES ('2c90ac564c9d1734014c9d22b360000b', '图表配置', 'admin', '2015-04-09 15:43:59', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '3', '9', 'group', '0', null, null, 'jform_graphreport_item', 'admin', '2015-04-13 00:40:36', '管理员', null, null, null, 'bdfl_ptbd', null, null); INSERT INTO `cgform_head` VALUES ('4028138151adbcc50151adfd13680002', '员工入职单', 'admin', '2015-12-17 11:30:22', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '48', 'single', '0', null, null, 'jform_employee_entry', 'admin', '2016-02-26 16:04:27', '管理员', null, 'id', null, 'bdfl_ptbd', 'jform00001', null); -INSERT INTO `cgform_head` VALUES ('402880e74da32ebe014da3309b880001', '第一个树', 'admin', '2015-05-30 12:59:41', '管理员', 'N', 'Y', 'Y', 'Y', '', 'UUID', '1', '12', 'single', '0', null, null, 'onlne_tree', 'admin', '2016-06-05 23:03:26', '管理员', 'father_id', 'id', 'name', 'bdfl_ptbd', 'ledefault', ''); -INSERT INTO `cgform_head` VALUES ('402880e74dc1e65e014dc1effa270001', '测试单表', 'admin', '2015-06-05 12:17:19', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '8', 'single', '0', null, null, 'test_onetable', 'admin', '2016-01-13 15:10:26', '管理员', null, 'id', null, 'bdfl_ptbd', '', null); +INSERT INTO `cgform_head` VALUES ('402880e74da32ebe014da3309b880001', '第一个树', 'admin', '2015-05-30 12:59:41', '管理员', 'N', 'Y', 'Y', 'Y', '', 'UUID', '1', '13', 'single', '0', null, null, 'jform_tree', 'admin', '2016-07-07 17:17:50', '管理员', 'father_id', 'id', 'name', 'bdfl_ptbd', 'ledefault', ''); INSERT INTO `cgform_head` VALUES ('402881a151f09a900151f0ad74120001', '员工离职单', 'admin', '2015-12-30 10:17:58', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '3', 'single', '0', null, null, 'jform_employee_resignation', 'admin', '2016-02-19 18:48:59', '管理员', null, 'id', null, 'bdfl_ptbd', 'jform00002', null); INSERT INTO `cgform_head` VALUES ('402881e44df713f5014df71fc6be0004', '表单数据源', 'admin', '2015-06-15 20:09:24', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '2', '18', 'group', '0', 'auto_form_db_field', null, 'auto_form_db', 'admin', '2015-06-16 16:25:21', '管理员', null, 'id', null, 'bdfl_ptbd', null, null); INSERT INTO `cgform_head` VALUES ('402881e44df713f5014df7242f070015', '表单数据源字段', 'admin', '2015-06-15 20:14:13', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '3', '5', 'single', '0', null, null, 'auto_form_db_field', 'admin', '2015-06-15 20:20:24', '管理员', null, 'id', null, 'bdfl_ptbd', null, null); INSERT INTO `cgform_head` VALUES ('402881e451fce3050151fd3dd20c0002', '员工费用报销申请信息表', 'admin', '2016-01-01 20:51:06', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '2', '36', 'group', '0', 'jform_employee_other_cost,jform_employee_meals_cost', null, 'jform_employee_cost_claim', 'admin', '2016-06-23 16:37:29', '管理员', null, 'id', null, 'bdfl_ptbd', 'o2mTableStyle', ''); INSERT INTO `cgform_head` VALUES ('402881e451fce3050151fd3e196b0019', '员工餐费明细表', 'admin', '2016-01-01 20:51:24', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '3', '6', 'group', '0', null, null, 'jform_employee_meals_cost', 'admin', '2016-01-01 21:04:55', '管理员', null, 'id', null, 'bdfl_ptbd', '', null); INSERT INTO `cgform_head` VALUES ('402881e451fce3050151fd3e1b680021', '员工其他费用明细表', 'admin', '2016-01-01 20:51:25', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '3', '7', 'group', '0', null, null, 'jform_employee_other_cost', 'admin', '2016-01-01 21:04:59', '管理员', null, 'id', null, 'bdfl_ptbd', '', null); -INSERT INTO `cgform_head` VALUES ('402881e4534c0aea01534c0cf9f70001', '简历信息表', 'admin', '2016-03-06 21:10:32', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '2', '46', 'group', '0', 'jform_resume_exp_info,jform_resume_degree_info', null, 'jform_resume_info', 'admin', '2016-06-27 18:27:26', '管理员', null, 'id', null, 'bdfl_ptbd', 'resume', 'resume'); -INSERT INTO `cgform_head` VALUES ('402881e4534c0aea01534c0cfca50012', '工作信息表', 'admin', '2016-03-06 21:10:33', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '3', '7', 'group', '0', null, null, 'jform_resume_exp_info', 'admin', '2016-05-05 15:30:37', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); +INSERT INTO `cgform_head` VALUES ('402881e4534c0aea01534c0cf9f70001', '简历信息表', 'admin', '2016-03-06 21:10:32', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '2', '60', 'group', '0', 'jform_resume_degree_info,jform_resume_exp_info', null, 'jform_resume_info', 'admin', '2016-07-14 14:48:33', '管理员', null, 'id', null, 'bdfl_ptbd', '', 'resume'); +INSERT INTO `cgform_head` VALUES ('402881e4534c0aea01534c0cfca50012', '工作信息表', 'admin', '2016-03-06 21:10:33', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '2', '12', 'group', '0', null, null, 'jform_resume_exp_info', 'admin', '2016-07-14 14:48:33', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); INSERT INTO `cgform_head` VALUES ('402881e4534c0aea01534c0cfe2b001b', '教育经历', 'admin', '2016-03-06 21:10:33', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '3', '7', 'group', '0', null, null, 'jform_resume_degree_info', 'admin', '2016-05-07 16:30:05', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); INSERT INTO `cgform_head` VALUES ('40288388506b3aa601506b67e97b0002', '客户资料管理', 'admin', '2015-10-15 20:09:44', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '1', '6', 'single', '0', null, null, 'jeecg_custom_info', 'admin', '2016-03-15 11:40:53', '管理员', null, 'id', null, 'bdfl_ptbd', 'olstyle00002', ''); INSERT INTO `cgform_head` VALUES ('402885d8506e5d9201506e72f4920001', '客户跟踪记录表', 'admin', '2015-10-16 10:20:39', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '43', 'single', '0', null, null, 'jeecg_custom_record', 'admin', '2016-02-25 11:32:02', '管理员', null, 'id', null, 'bdfl_ptbd', 'olstyle00001', null); -INSERT INTO `cgform_head` VALUES ('4028948151f5e0c20151f5e665400001', '学生表', 'admin', '2015-12-31 10:38:15', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '12', 'single', '0', null, null, 'test_student', 'admin', '2016-06-11 17:44:24', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); INSERT INTO `cgform_head` VALUES ('4028b881535b12bd01535b1ae3680001', '个人通讯录', 'admin', '2016-03-09 19:20:02', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '1', '58', 'group', '0', 't_s_contact', null, 'jform_contact', 'admin', '2016-06-11 23:31:09', '管理员', null, 'id', null, 'bdfl_ptbd', 'RowsEdit', ''); INSERT INTO `cgform_head` VALUES ('4028b88153659dd4015365ab21d0000c', '通迅录分组', 'admin', '2016-03-11 20:33:47', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '4', 'single', '0', null, null, 'jform_contact_group', 'admin', '2016-06-11 18:17:21', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); INSERT INTO `cgform_head` VALUES ('8a8ab0b246dc81120146dc81847e013b', '订单主信息', 'admin', '2014-06-27 16:46:54', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '2', '87', 'group', '0', 'jform_order_ticket,jform_order_customer', null, 'jform_order_main', 'admin', '2016-03-21 15:52:31', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); @@ -1045,7 +1011,6 @@ INSERT INTO `cgform_head` VALUES ('8a8ab0b246dc81120146dc818484013c', '请假单 INSERT INTO `cgform_head` VALUES ('8a8ab0b246dc81120146dc818486013d', '订单客户信息', 'admin', '2014-06-27 16:46:54', '管理员', 'Y', 'Y', 'Y', 'N', '', 'UUID', '3', '17', 'single', '0', null, null, 'jform_order_customer', 'admin', '2016-03-21 15:51:57', '管理员', null, 'id', null, 'bdfl_ptbd', '', ''); INSERT INTO `cgform_head` VALUES ('8a8ab0b246dc81120146dc818488013e', '订单机票信息', 'admin', '2014-06-27 16:46:54', '管理员', 'N', 'Y', 'Y', 'N', null, 'UUID', '3', '20', 'single', '0', null, null, 'jform_order_ticket', 'admin', '2014-09-23 00:56:07', '管理员', null, null, null, 'bdfl_ptbd', null, null); INSERT INTO `cgform_head` VALUES ('8a8ab0b246dc81120146dc81848b013f', '价格认证机构统计表', 'admin', '2014-06-27 16:46:54', '管理员', 'N', 'Y', 'Y', 'N', null, 'UUID', '1', '3', 'group', '0', null, null, 'jform_price1', 'admin', '2015-10-15 11:24:54', '管理员', null, null, null, 'bdfl_ptbd', null, null); -INSERT INTO `cgform_head` VALUES ('8af235d44db32051014db35d96190001', '微信模板', 'admin', '2015-06-02 16:22:44', '管理员', 'N', 'Y', 'Y', 'N', '', 'UUID', '1', '4', 'group', '0', '', null, 'weixin_template', 'admin', '2015-06-05 13:31:18', '管理员', '', 'id', '', 'bdfl_ptbd', null, null); -- ---------------------------- -- Table structure for `cgform_index` @@ -1191,32 +1156,6 @@ INSERT INTO `doc` VALUES ('4028ef815335c28f015335c28f0a0000', 0x313231323132, '2 INSERT INTO `doc` VALUES ('4028ef81533fb6e701533fb6e78e0000', 0x393939737373, '2016-03-04 00:00:00', '1', '1', 'bdfl_ptbd'); INSERT INTO `doc` VALUES ('4028ef815353fa00015353fa00320000', 0x33333333737373, '2016-03-08 00:00:00', '1', '1', 'bdfl_ptbd'); --- ---------------------------- --- Table structure for `employee` --- ---------------------------- -DROP TABLE IF EXISTS `employee`; -CREATE TABLE `employee` ( - `id` varchar(36) NOT NULL default '' COMMENT '主键', - `empno` varchar(120) default NULL COMMENT '雇员编号', - `NAME` varchar(32) NOT NULL COMMENT '雇员名', - `AGE` int(11) default NULL COMMENT '年龄', - `BIRTHDAY` datetime default NULL COMMENT '生日', - `SALARY` decimal(19,2) default NULL COMMENT '工资', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of employee --- ---------------------------- -INSERT INTO `employee` VALUES ('1', '001', '张开忠', '20', '2013-08-17 11:10:05', '8900.55'); -INSERT INTO `employee` VALUES ('2', '200', '张代浩的世界1', '20', '2016-01-15 20:13:07', '88888.00'); -INSERT INTO `employee` VALUES ('3', '200', 'scott', '20', '2016-01-15 20:14:44', '88888.00'); -INSERT INTO `employee` VALUES ('4', '200', 'scott', '20', '2016-01-15 20:22:04', '88888.00'); -INSERT INTO `employee` VALUES ('5', '200', 'scott', '20', '2016-01-15 20:22:49', '88888.00'); -INSERT INTO `employee` VALUES ('6', '200', 'scott', '20', '2016-01-18 18:32:04', '88888.00'); -INSERT INTO `employee` VALUES ('7', '200', 'scott', '20', '2016-01-18 18:41:39', '88888.00'); -INSERT INTO `employee` VALUES ('8', '200', 'scott', '20', '2016-01-18 18:54:25', '88888.00'); - -- ---------------------------- -- Table structure for `jeecg_custom_info` -- ---------------------------- @@ -1623,7 +1562,7 @@ CREATE TABLE `jform_cgdynamgraph_head` ( `ID` varchar(36) NOT NULL, `CGR_SQL` longtext NOT NULL, `CODE` varchar(36) NOT NULL, - `CONTENT` longtext NOT NULL, + `CONTENT` varchar(500) NOT NULL, `NAME` varchar(100) NOT NULL, `update_name` varchar(32) default NULL COMMENT '修改人', `update_date` datetime default NULL COMMENT '修改时间', @@ -1634,7 +1573,8 @@ CREATE TABLE `jform_cgdynamgraph_head` ( `db_source` varchar(36) default NULL COMMENT '动态数据源', `graph_type` varchar(36) default NULL, `data_structure` varchar(36) default NULL, - `is_pagination` varchar(2) default NULL + `is_pagination` varchar(2) default NULL, + PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- @@ -1658,7 +1598,8 @@ CREATE TABLE `jform_cgdynamgraph_item` ( `FIELD_TYPE` varchar(10) default NULL, `IS_SHOW` varchar(5) default NULL, `ORDER_NUM` int(11) default NULL, - `REPLACE_VA` varchar(36) default NULL + `REPLACE_VA` varchar(36) default NULL, + PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- @@ -1686,7 +1627,8 @@ CREATE TABLE `jform_cgdynamgraph_param` ( `param_desc` varchar(32) default NULL COMMENT '参数说明', `param_value` varchar(32) default NULL COMMENT '数值', `seq` int(11) default NULL COMMENT '排序', - `cgrhead_id` varchar(36) default NULL COMMENT '动态报表ID' + `cgrhead_id` varchar(36) default NULL COMMENT '动态报表ID', + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- @@ -1719,6 +1661,7 @@ CREATE TABLE `jform_cgreport_head` ( -- ---------------------------- -- Records of jform_cgreport_head -- ---------------------------- +INSERT INTO `jform_cgreport_head` VALUES ('2c948a8555c32a420155c35645ee0004', 'select * from t_s_log', 't_s_log', '查询系统所有的登录情况', 't_s_log', '管理员', '2016-07-07 11:36:29', 'admin', null, null, null, '', '', '', '1'); INSERT INTO `jform_cgreport_head` VALUES ('402880e64e1ef94d014e1efefc2a0001', 'select * from weixin_account', 'weixin_account', '测试多数据源功能', '跨数据库报表演示', '管理员', '2016-03-15 11:34:38', 'admin', null, null, null, 'jeewx-yunying', '', '', '1'); INSERT INTO `jform_cgreport_head` VALUES ('402880e64eb9a22c014eb9a4d5890001', 'select * from t_s_base_user', 'ddt_s_base_user', '全表查询', '用户全部查询报表', '管理员', '2016-05-03 15:14:58', 'admin', null, null, null, '', '', '', '2'); INSERT INTO `jform_cgreport_head` VALUES ('402880e74d76e784014d76f9e783001e', 'select username account , realname from t_s_base_user', 'user_msg', '用户POPUP,弹出页面', 'POPUP用户列表', '管理员', '2016-05-03 15:26:21', 'admin', null, null, null, '', 'account', 'realname', '2'); @@ -1747,6 +1690,14 @@ CREATE TABLE `jform_cgreport_item` ( -- ---------------------------- -- Records of jform_cgreport_item -- ---------------------------- +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634610001', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'ID', 'ID', 'String', 'Y', '0', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634610002', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'broswer', 'broswer', 'String', 'Y', '1', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634620003', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'logcontent', 'logcontent', 'String', 'Y', '2', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634620004', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'loglevel', 'loglevel', 'String', 'Y', '3', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634620005', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'note', 'note', 'String', 'Y', '4', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634620006', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'operatetime', 'operatetime', 'String', 'Y', '5', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634620007', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'operatetype', 'operatetype', 'String', 'Y', '6', ''); +INSERT INTO `jform_cgreport_item` VALUES ('2c948a8555c9f1210155ca0634630008', '', '', '2c948a8555c32a420155c35645ee0004', '', '', 'userid', 'userid', 'String', 'Y', '7', ''); INSERT INTO `jform_cgreport_item` VALUES ('402880e64e1ef94d014e1efefc2f0002', '', '', '402880e64e1ef94d014e1efefc2a0001', '', '', 'id', 'id', 'String', 'Y', '0', ''); INSERT INTO `jform_cgreport_item` VALUES ('402880e64e1ef94d014e1efefc340003', '', '', '402880e64e1ef94d014e1efefc2a0001', '', '', 'accountname', 'accountname', 'String', 'Y', '1', ''); INSERT INTO `jform_cgreport_item` VALUES ('402880e64e1ef94d014e1efefc360004', '', '', '402880e64e1ef94d014e1efefc2a0001', '', '', 'accounttoken', 'accounttoken', 'String', 'Y', '2', ''); @@ -2124,87 +2075,6 @@ INSERT INTO `jform_graphreport_item` VALUES ('402881e64ca71152014ca711527c0001', INSERT INTO `jform_graphreport_item` VALUES ('402881e64ca71152014ca71152a90002', 'N', 'group', '402881e64ca71152014ca71152480000', '', '', 'login_count', '登录次数', 'Integer', 'Y', '2', '}}}}}}}}}}}}}}}}}}}}}}}}', 'Y', 'column', '登录次数', '柱状图'); INSERT INTO `jform_graphreport_item` VALUES ('402881e64ca7adc7014ca7adc75a0000', 'Y', 'group', '402881e64ca71152014ca71152480000', '', '', 'operatetime', '操作日期', 'Date', 'N', '3', '}}}}}}}}}}}}}}', 'N', 'spline', '', ''); --- ---------------------------- --- Table structure for `jform_inner_mail` --- ---------------------------- -DROP TABLE IF EXISTS `jform_inner_mail`; -CREATE TABLE `jform_inner_mail` ( - `id` varchar(36) NOT NULL COMMENT '主键', - `create_name` varchar(50) default NULL COMMENT '创建人名称', - `create_by` varchar(50) default NULL COMMENT '创建人登录名称', - `create_date` datetime default NULL COMMENT '创建日期', - `title` varchar(100) default NULL COMMENT '主题', - `attachment` varchar(1000) default NULL COMMENT '附件', - `content` text COMMENT '内容', - `status` varchar(50) default NULL COMMENT '状态', - `receiver_names` varchar(300) default NULL COMMENT '接收者姓名列表', - `receiver_ids` varchar(300) default NULL COMMENT '收件人标识列表', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of jform_inner_mail --- ---------------------------- -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153a650060153a653262c0010', '管理员', 'admin', '2016-03-24 09:53:00', '123123', null, '

123123123123

', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153a650060153a6533a640013', '管理员', 'admin', '2016-03-24 09:53:05', '123123', null, '

123123123123

', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153a650060153a6559ff80020', '张代浩', 'scott', '2016-03-24 09:55:42', '222', null, '

222

', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153bad3530153badd38820001', '管理员', 'admin', '2016-03-28 09:36:13', '12', null, '

12

', '02', '张三,管理员', '4028ef81538330cd01538333b7bc0001,8a8ab0b246dc81120146dc8181950052'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153bad3530153badd64510004', '管理员', 'admin', '2016-03-28 09:36:24', '12', null, '

1212

', '02', '张三', '4028ef81538330cd01538333b7bc0001'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153c5a4860153c5cb3997000d', '管理员', 'admin', '2016-03-30 12:32:23', '1231', null, '

23

', '02', '张三', '4028ef81538330cd01538333b7bc0001'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153c5a4860153c5cb5957000f', '管理员', 'admin', '2016-03-30 12:32:31', '123', null, '

123

', '02', 'demo', '402880e74d75c4dd014d75d44af30005'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153c5a4860153c5cb63570011', '管理员', 'admin', '2016-03-30 12:32:34', '123', null, '

123

', '02', 'demo', '402880e74d75c4dd014d75d44af30005'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8153fe51210153fe5df3bd0001', '管理员', 'admin', '2016-04-10 12:11:23', '112', null, '

Jeecg-P3 1.0 版本发布,插件开发框架

特点:业务组件以JAR方式提供,插件模式、松耦合、可插拔、支持独立部署,也可以无缝集成Jeecg平台中。

【架构说明】

1.Jeecg-P3 采用SpringMvc + Minidao + Velocity + Maven(构建) 框架技术\r\n2.插件引入方式\r\n    pom.xml文件中,引入新开发的插件\r\n    <!-- P3 jar -->\r\n    <dependency>\r\n        <groupId>org.p3framework</groupId>\r\n        <artifactId>jeecg-p3-biz-demo</artifactId>\r\n        <version>1.0.0</version>\r\n    </dependency>\r\n3.项目启动访问方式:\r\n  采用maven方式,启动Web项目\r\n  http://localhost/jeecg-p3-web/{页面访问地址}\r\n4.页面层面不能采用jsp,需要采用模板语言Velocity\r\n5.插件式开发,每个业务组件以jar包方式提供\r\n6.数据库配置文件:\r\n  jeecg-p3-web/src/main/resources/dbconfig.properties

【项目说明】

jeecg-p3-web      | 启动主项目\r\njeecg-p3-biz-demo | 插件项目Demo

【开发入门】

☆准备工作:\r\n    1.标准开发工具:eclipse + jdk7 + tomcat7 + mysql\r\n    2.项目为maven工程,采用maven方式导入eclipse等IDE开发工具 \r\n\r\n☆快捷启动:\r\n    第一步:创建Mysql数据库jeecg-p3,采用UTF-8编码,执行下面数据库脚本\r\n            jeecg-p3-web/doc/sql/jeecg-p3-mysql.sql\r\n    第二步:双击运行jeecg-p3-web\\bin\\run-tomcat7.bat或bin\\run-tomcat.bat,\r\n            启动Web服务器(第一次运行,需要下载依赖jar包,请耐心等待)。\r\n    第三步:测试访问地址\r\n            1. http://localhost/jeecg-p3-web/p3/wxActInvite.do?list\r\n            2. http://localhost/jeecg-p3-web/p3/auth.do?list    \r\n\r\n☆Eclipse运行步骤:\r\n    第一步:创建Mysql数据库jeecg-p3,采用UTF-8编码,执行下面数据库脚本\r\n            jeecg-p3-web/doc/sql/jeecg-p3-mysql.sql\r\n    第二步:采用maven方式启动项目 (jeecg-p3-web)\r\n            项目右建->debug as->debug configurations->选中jeecg-p3-web项目->输入命令:tomcat:run\r\n            注意:[1].update snapshots需要选中,官方会不断更新底层包\r\n                  [2].插件项目不能单独启动,需以maven方式引入jeecg-p3-web项目中,启动web主项目\r\n    第四步:测试访问地址\r\n            1. http://localhost/jeecg-p3-web/p3/wxActInvite.do?list\r\n            2. http://localhost/jeecg-p3-web/p3/auth.do?list

【代码生成器】

1.工具类:jeecg-p3-web/src/main/java/util/P3CodeGenerateUtil.java\r\n2.配置文件:jeecg-p3-web/src/main/resources/p3-cg-config.properties

技术交流


', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef81540325190154032622320002', '管理员', 'admin', '2016-04-11 10:28:31', '121212', null, '

此版本是一个扁平化UI风格版,提供4套风格供客户选择,让我们共同期待后续版本的到来

  1. ACE扁平化风格;

  2. 代码生成器,支持restful后台代码生成;

  3. Online表单提供对外HTTP接口;

  4. 用户,角色,组织机构,导入功能;

  5. 多附件上传报错处理;

  6. 查询过滤器查询报错处理;

  7. online代码生成器支持bootstrap表单风格生成;

  8. online代码生成器支持上传组件生成;

  9. 升级minidao;

  10. 在线文档管理;

  11. 邮件管理;

  12. 封装标签:用户标签,组织机构标签;

  13. 移动报表展示;

  14. 插件演示;


', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); -INSERT INTO `jform_inner_mail` VALUES ('4028ef8154032519015403287cc9000c', '张代浩', 'scott', '2016-04-11 10:31:05', '测试邮件', null, '

测试邮件

', '01', '管理员', '8a8ab0b246dc81120146dc8181950052'); - --- ---------------------------- --- Table structure for `jform_inner_mail_attach` --- ---------------------------- -DROP TABLE IF EXISTS `jform_inner_mail_attach`; -CREATE TABLE `jform_inner_mail_attach` ( - `id` varchar(32) NOT NULL, - `mailid` varchar(32) default NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of jform_inner_mail_attach --- ---------------------------- -INSERT INTO `jform_inner_mail_attach` VALUES ('4028ef8153a650060153a65327350012', '4028ef8153a650060153a653262c0010'); - --- ---------------------------- --- Table structure for `jform_inner_mail_receiver` --- ---------------------------- -DROP TABLE IF EXISTS `jform_inner_mail_receiver`; -CREATE TABLE `jform_inner_mail_receiver` ( - `id` varchar(36) NOT NULL, - `create_date` datetime default NULL COMMENT '创建日期', - `update_date` datetime default NULL COMMENT '更新日期', - `mail_id` varchar(36) default NULL COMMENT '邮件标识', - `user_id` varchar(36) default NULL COMMENT '收件人标识', - `status` varchar(50) default NULL COMMENT '收件状态', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of jform_inner_mail_receiver --- ---------------------------- -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153bad3530153badd39240002', '2016-03-28 09:36:13', null, '4028ef8153bad3530153badd38820001', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153bad3530153badd648f0005', '2016-03-28 09:36:24', null, '4028ef8153bad3530153badd64510004', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5caa3bd0006', '2016-03-30 12:31:45', null, '4028ef8153c5a4860153c5caa2f90005', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb10d60008', '2016-03-30 12:32:13', null, '4028ef8153c5a4860153c5cb108a0007', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb2133000a', '2016-03-30 12:32:17', null, '4028ef8153c5a4860153c5cb20fc0009', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb3169000c', '2016-03-30 12:32:21', null, '4028ef8153c5a4860153c5cb3124000b', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb39d7000e', '2016-03-30 12:32:23', null, '4028ef8153c5a4860153c5cb3997000d', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb59b00010', '2016-03-30 12:32:31', null, '4028ef8153c5a4860153c5cb5957000f', '402880e74d75c4dd014d75d44af30005', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb639b0012', '2016-03-30 12:32:34', null, '4028ef8153c5a4860153c5cb63570011', '402880e74d75c4dd014d75d44af30005', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8153d1be5b0153d1c8c0130005', '2016-04-01 20:25:07', null, '4028ef8153d1be5b0153d1c8bf3c0004', '4028ef81538330cd01538333b7bc0001', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef815400c2c6015400c483940002', '2016-04-10 23:22:39', null, '4028ef815400c2c6015400c482260001', '8a8ab0b246dc81120146dc81819d0053', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef815400c2c6015400c5600d000a', '2016-04-10 23:23:35', null, '4028ef8153c5a4860153c5ca58540003', '8a8ab0b246dc81120146dc8181950052', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef81540325190154032660880004', '2016-04-11 10:28:47', null, '4028ef81540325190154032622320002', '8a8ab0b246dc81120146dc81819d0053', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef8154032519015403287d15000d', '2016-04-11 10:31:05', null, '4028ef8154032519015403287cc9000c', '8a8ab0b246dc81120146dc8181950052', '00'); -INSERT INTO `jform_inner_mail_receiver` VALUES ('4028ef81540325190154032a238e001d', '2016-04-11 10:32:53', null, '4028ef8153a650060153a6559ff80020', '8a8ab0b246dc81120146dc81819d0053', '00'); - -- ---------------------------- -- Table structure for `jform_leave` -- ---------------------------- @@ -2349,10 +2219,8 @@ CREATE TABLE `jform_resume_degree_info` ( -- ---------------------------- -- Records of jform_resume_degree_info -- ---------------------------- -INSERT INTO `jform_resume_degree_info` VALUES ('4028ef81548a4c9601548a4e90810008', '4028ef815360037101536015fbe40007', '2016-04-01 00:00:00', '2016-04-01 00:00:00', '2', '2', '2}'); -INSERT INTO `jform_resume_degree_info` VALUES ('4028ef81548a4c9601548a4e909b0009', '4028ef815360037101536015fbe40007', '2016-03-01 00:00:00', '2016-03-10 00:00:00', '清华大学', '计算机', '本科}'); -INSERT INTO `jform_resume_degree_info` VALUES ('4028ef81548a4c9601548a4e90b3000a', '4028ef815360037101536015fbe40007', '2016-03-31 00:00:00', '2016-03-31 00:00:00', '123', '123', '123}'); -INSERT INTO `jform_resume_degree_info` VALUES ('4028ef81548a4c9601548a4e90cd000b', '4028ef815360037101536015fbe40007', '2016-03-10 00:00:00', '2016-03-10 00:00:00', '北大', '计算机', '研究生}'); +INSERT INTO `jform_resume_degree_info` VALUES ('4028ef8155bf28d40155bf2a510f000b', '4028ef815360037101536015fbe40007', '2016-03-01 00:00:00', '2016-03-10 00:00:00', '清华大学', '计算机', '本科'); +INSERT INTO `jform_resume_degree_info` VALUES ('4028ef8155bf28d40155bf2a512e000c', '4028ef815360037101536015fbe40007', '2016-03-31 00:00:00', '2016-03-31 00:00:00', '123', '123', '123'); -- ---------------------------- -- Table structure for `jform_resume_exp_info` @@ -2374,8 +2242,8 @@ CREATE TABLE `jform_resume_exp_info` ( -- Records of jform_resume_exp_info -- ---------------------------- INSERT INTO `jform_resume_exp_info` VALUES ('4028ef81547f9ad401547fd02fb40012', null, '2016-05-05 00:00:00', '2016-05-05 00:00:00', '99', '99', '99', '99'); -INSERT INTO `jform_resume_exp_info` VALUES ('4028ef81548a4c9601548a4e90430006', '4028ef815360037101536015fbe40007', '2016-04-01 00:00:00', '2016-04-01 00:00:00', '1', '1', '1', '1'); -INSERT INTO `jform_resume_exp_info` VALUES ('4028ef81548a4c9601548a4e905e0007', '4028ef815360037101536015fbe40007', '2016-03-10 00:00:00', '2016-03-10 00:00:00', '北京软件', '研发部', '高级', '研究工作机器人'); +INSERT INTO `jform_resume_exp_info` VALUES ('4028ef8155bf28d40155bf2a50cc0009', '4028ef815360037101536015fbe40007', '2016-03-10 00:00:00', '2016-03-10 00:00:00', '北京软件', '研发部', '高级', '研究工作机器人'); +INSERT INTO `jform_resume_exp_info` VALUES ('4028ef8155bf28d40155bf2a50ec000a', '4028ef815360037101536015fbe40007', '2016-04-01 00:00:00', '2016-04-01 00:00:00', '1', '1', '1', '1'); -- ---------------------------- -- Table structure for `jform_resume_info` @@ -2390,7 +2258,7 @@ CREATE TABLE `jform_resume_info` ( `email` varchar(50) default NULL COMMENT '电子邮箱', `degree` varchar(50) default NULL COMMENT '最高学历', `workyear` varchar(20) default NULL COMMENT '工作年限', - `cardid` varchar(50) default NULL COMMENT '身份证号', + `cardid` varchar(200) default NULL COMMENT '身份证号', `habitation` varchar(100) default NULL COMMENT '现居地', `residence` varchar(100) default NULL COMMENT '户口所在地', `salary` varchar(20) default NULL COMMENT '期望薪资', @@ -2404,34 +2272,58 @@ CREATE TABLE `jform_resume_info` ( -- ---------------------------- -- Records of jform_resume_info -- ---------------------------- -INSERT INTO `jform_resume_info` VALUES ('4028ef815360037101536015fbe40007', '张三', '1', '2016-03-10 00:00:00', '18611788888', '123@123.com', '本科', '5', '345215468545454545', '北京', null, '8000', '北京', '软件开发', '2016-03-31 00:00:00', '很好'); +INSERT INTO `jform_resume_info` VALUES ('4028ef815360037101536015fbe40007', '张三', '1', '2016-03-10 00:00:00', '18611788888', '123@123.com', '本科', '5', '345215468545454545,345215468545454545,345215468545454545,345215468545454545,345215468545454545,345215468545454545,345215468545454545,345215468545454545', '北京,北京,北京,北京,北京,北京,北京,北京', null, '8000', '北京', '软件开发', '2016-03-31 00:00:00', '很好'); -- ---------------------------- --- Table structure for `jg_person` +-- Table structure for `jform_tree` -- ---------------------------- -DROP TABLE IF EXISTS `jg_person`; -CREATE TABLE `jg_person` ( - `ID` varchar(32) NOT NULL, - `AGE` int(11) default NULL, - `BIRTHDAY` datetime default NULL, - `CREATEDT` datetime default NULL, - `NAME` varchar(255) NOT NULL, - `SALARY` decimal(19,2) default NULL, - PRIMARY KEY (`ID`) +DROP TABLE IF EXISTS `jform_tree`; +CREATE TABLE `jform_tree` ( + `id` varchar(36) NOT 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 '更新日期', + `name` varchar(32) default NULL COMMENT '物料编码', + `father_id` varchar(32) default NULL COMMENT '父ID', + `age` varchar(32) default NULL COMMENT 'age', + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- --- Records of jg_person +-- Records of jform_tree +-- ---------------------------- +INSERT INTO `jform_tree` VALUES ('4028ef81552e09fd01552e10fb280001', '管理员', 'admin', '2016-06-08 00:00:00', null, null, null, '99', null, '999'); +INSERT INTO `jform_tree` VALUES ('4028ef81552e09fd01552e110d510002', '管理员', 'admin', '2016-06-08 00:00:00', '管理员', 'admin', '2016-06-08 00:00:00', '66', '4028ef81552e09fd01552e10fb280001', '66'); +INSERT INTO `jform_tree` VALUES ('4028ef8155c4a6480155c4a6481e0000', '管理员', 'admin', '2016-07-07 00:00:00', '管理员', 'admin', '2016-07-07 00:00:00', '333', '4028ef81552e09fd01552e10fb280001', '333'); + +-- ---------------------------- +-- Table structure for `jp_demo_activity` +-- ---------------------------- +DROP TABLE IF EXISTS `jp_demo_activity`; +CREATE TABLE `jp_demo_activity` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `name` varchar(100) NOT NULL COMMENT '活动名称', + `begin_time` datetime default NULL COMMENT '活动开始时间', + `end_time` datetime default NULL COMMENT ' 活动结束时间', + `hdurl` varchar(300) default NULL COMMENT '入口地址', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='红包活动表'; + +-- ---------------------------- +-- Records of jp_demo_activity -- ---------------------------- -INSERT INTO `jg_person` VALUES ('1', '21', '2015-10-27 00:00:00', '2015-10-27 12:00:00', '小王11111', '5000.00'); -INSERT INTO `jg_person` VALUES ('12', '333', '2015-10-31 00:00:00', '2015-10-15 12:00:00', '33333333', '33333.00'); -INSERT INTO `jg_person` VALUES ('4028ef8155074bd30155074fc7760001', '123', '2016-05-31 00:00:00', '2016-05-31 22:55:11', '123123', '123.00'); +INSERT INTO `jp_demo_activity` VALUES ('95B6BF61945043039008299AA53A2991', '2', '2016-03-26 15:50:32', '2016-03-26 15:50:34', '2'); +INSERT INTO `jp_demo_activity` VALUES ('DEBCE74A2E87406EBA557748BE0FA700', '1', '2016-04-10 14:33:50', '2016-04-10 14:33:52', '1'); +INSERT INTO `jp_demo_activity` VALUES ('F4EAEF41A7DF4B59AE9A41455E1643F9', '3', '2016-06-30 23:52:20', '2016-06-30 23:52:21', '3'); -- ---------------------------- --- Table structure for `jw_auth` +-- Table structure for `jp_demo_auth` -- ---------------------------- -DROP TABLE IF EXISTS `jw_auth`; -CREATE TABLE `jw_auth` ( +DROP TABLE IF EXISTS `jp_demo_auth`; +CREATE TABLE `jp_demo_auth` ( `id` bigint(20) unsigned NOT NULL auto_increment COMMENT '序号', `auth_id` varchar(32) collate utf8_bin NOT NULL default '' COMMENT '权限编码', `auth_name` varchar(100) collate utf8_bin default NULL COMMENT '权限名称', @@ -2444,61 +2336,119 @@ CREATE TABLE `jw_auth` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='运营系统权限表'; -- ---------------------------- --- Records of jw_auth +-- Records of jp_demo_auth -- ---------------------------- -INSERT INTO `jw_auth` VALUES ('1', '21', '系统管理', '0', null, null, 'N'); -INSERT INTO `jw_auth` VALUES ('2', '2101', '用户管理', '0', '/system/back/jwSystemUser/list.do', '21', 'Y'); -INSERT INTO `jw_auth` VALUES ('3', '210101', '新增用户', '1', '/system/back/jwSystemUser/doAdd.do', '2101', 'Y'); -INSERT INTO `jw_auth` VALUES ('4', '210102', '编辑用户', '1', '/system/back/jwSystemUser/doEdit.do', '2101', 'Y'); -INSERT INTO `jw_auth` VALUES ('5', '2102', '角色管理', '0', '/system/back/jwSystemRole/list.do', '21', 'Y'); -INSERT INTO `jw_auth` VALUES ('6', '210201', '新增角色', '1', '/system/back/jwSystemRole/doAdd.do', '2102', 'Y'); -INSERT INTO `jw_auth` VALUES ('7', '210202', '编辑角色', '1', '/system/back/jwSystemRole/doEdit.do', '2102', 'Y'); -INSERT INTO `jw_auth` VALUES ('8', '210203', '角色授权', '1', '/system/back/jwSystemRole/editRoleAuth.do', '2102', 'Y'); -INSERT INTO `jw_auth` VALUES ('9', '210204', '删除角色', '1', '/system/back/jwSystemRole/doDelete.do', '2102', 'Y'); -INSERT INTO `jw_auth` VALUES ('10', '2103', '权限管理', '0', '/system/back/jwSystemAuth/list.do', '21', 'Y'); -INSERT INTO `jw_auth` VALUES ('11', '210301', '新增权限', '1', '/system/back/jwSystemAuth/doAdd.do', '2103', 'Y'); -INSERT INTO `jw_auth` VALUES ('12', '210302', '编辑权限', '1', '/system/back/jwSystemAuth/doEdit.do', '2103', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('1', '21', '系统管理', '0', null, null, 'N'); +INSERT INTO `jp_demo_auth` VALUES ('2', '2101', '用户管理', '0', '/system/back/jwSystemUser/list.do', '21', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('3', '210101', '新增用户', '1', '/system/back/jwSystemUser/doAdd.do', '2101', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('4', '210102', '编辑用户', '1', '/system/back/jwSystemUser/doEdit.do', '2101', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('5', '2102', '角色管理', '0', '/system/back/jwSystemRole/list.do', '21', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('6', '210201', '新增角色', '1', '/system/back/jwSystemRole/doAdd.do', '2102', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('7', '210202', '编辑角色', '1', '/system/back/jwSystemRole/doEdit.do', '2102', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('8', '210203', '角色授权', '1', '/system/back/jwSystemRole/editRoleAuth.do', '2102', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('9', '210204', '删除角色', '1', '/system/back/jwSystemRole/doDelete.do', '2102', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('10', '2103', '权限管理', '0', '/system/back/jwSystemAuth/list.do', '21', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('11', '210301', '新增权限', '1', '/system/back/jwSystemAuth/doAdd.do', '2103', 'Y'); +INSERT INTO `jp_demo_auth` VALUES ('12', '210302', '编辑权限', '1', '/system/back/jwSystemAuth/doEdit.do1', '2103', 'Y'); -- ---------------------------- --- Table structure for `onlne_tree` +-- Table structure for `jp_inner_mail` -- ---------------------------- -DROP TABLE IF EXISTS `onlne_tree`; -CREATE TABLE `onlne_tree` ( +DROP TABLE IF EXISTS `jp_inner_mail`; +CREATE TABLE `jp_inner_mail` ( `id` varchar(36) NOT 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 '更新日期', - `name` varchar(32) default NULL COMMENT '物料编码', - `father_id` varchar(32) default NULL COMMENT '父ID', - `age` varchar(32) default NULL COMMENT 'age', + `title` varchar(100) default NULL COMMENT '主题', + `attachment` varchar(1000) default NULL COMMENT '附件', + `content` text COMMENT '内容', + `status` varchar(50) default NULL COMMENT '状态', + `receiver_names` varchar(300) default NULL COMMENT '接收者姓名列表', + `receiver_ids` varchar(300) default NULL COMMENT '收件人标识列表', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of jp_inner_mail +-- ---------------------------- +INSERT INTO `jp_inner_mail` VALUES ('295A4C4021DD4E17AC2D453013A1E21F', '管理员', 'admin', null, '121', null, '2121212', '02', '管理员', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `jp_inner_mail` VALUES ('3A230A6CC3544E1B9D941136ACBB4E1B', '管理员', 'admin', null, '1212', null, '\n 121212\n ', '02', 'demo,张三,管理员,张代浩', ''); +INSERT INTO `jp_inner_mail` VALUES ('3C5E246D939545069FAB2DFD0D4B0474', '张三', 'lisi', null, 'JEECG云插件中心', null, '

JEECG云插件中心

技术交流

\n\n ', '01', '管理员', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153a650060153a653262c0010', '管理员', 'admin', '2016-03-24 09:53:00', '123123', null, '

123123123123

', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153a650060153a6533a640013', '管理员', 'admin', '2016-03-24 09:53:05', '123123', null, '

123123123123

', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153a650060153a6559ff80020', '张代浩', 'scott', '2016-03-24 09:55:42', '222', null, '

222

', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153bad3530153badd38820001', '管理员', 'admin', '2016-03-28 09:36:13', '12', null, '

12

', '02', '张三,管理员', '4028ef81538330cd01538333b7bc0001,8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153bad3530153badd64510004', '管理员', 'admin', '2016-03-28 09:36:24', '12', null, '

1212

', '02', '张三', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153c5a4860153c5cb3997000d', '管理员', 'admin', '2016-03-30 12:32:23', '1231', null, '

23

', '02', '张三', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153c5a4860153c5cb5957000f', '管理员', 'admin', '2016-03-30 12:32:31', '123', null, '

123

', '02', 'demo', '402880e74d75c4dd014d75d44af30005'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153c5a4860153c5cb63570011', '管理员', 'admin', '2016-03-30 12:32:34', '123', null, '

123

', '02', 'demo', '402880e74d75c4dd014d75d44af30005'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8153fe51210153fe5df3bd0001', '管理员', 'admin', '2016-04-10 12:11:23', '112', null, '

Jeecg-P3 1.0 版本发布,插件开发框架

特点:业务组件以JAR方式提供,插件模式、松耦合、可插拔、支持独立部署,也可以无缝集成Jeecg平台中。

【架构说明】

1.Jeecg-P3 采用SpringMvc + Minidao + Velocity + Maven(构建) 框架技术\r\n2.插件引入方式\r\n    pom.xml文件中,引入新开发的插件\r\n    <!-- P3 jar -->\r\n    <dependency>\r\n        <groupId>org.p3framework</groupId>\r\n        <artifactId>jeecg-p3-biz-demo</artifactId>\r\n        <version>1.0.0</version>\r\n    </dependency>\r\n3.项目启动访问方式:\r\n  采用maven方式,启动Web项目\r\n  http://localhost/jeecg-p3-web/{页面访问地址}\r\n4.页面层面不能采用jsp,需要采用模板语言Velocity\r\n5.插件式开发,每个业务组件以jar包方式提供\r\n6.数据库配置文件:\r\n  jeecg-p3-web/src/main/resources/dbconfig.properties

【项目说明】

jeecg-p3-web      | 启动主项目\r\njeecg-p3-biz-demo | 插件项目Demo

【开发入门】

☆准备工作:\r\n    1.标准开发工具:eclipse + jdk7 + tomcat7 + mysql\r\n    2.项目为maven工程,采用maven方式导入eclipse等IDE开发工具 \r\n\r\n☆快捷启动:\r\n    第一步:创建Mysql数据库jeecg-p3,采用UTF-8编码,执行下面数据库脚本\r\n            jeecg-p3-web/doc/sql/jeecg-p3-mysql.sql\r\n    第二步:双击运行jeecg-p3-web\\bin\\run-tomcat7.bat或bin\\run-tomcat.bat,\r\n            启动Web服务器(第一次运行,需要下载依赖jar包,请耐心等待)。\r\n    第三步:测试访问地址\r\n            1. http://localhost/jeecg-p3-web/p3/wxActInvite.do?list\r\n            2. http://localhost/jeecg-p3-web/p3/auth.do?list    \r\n\r\n☆Eclipse运行步骤:\r\n    第一步:创建Mysql数据库jeecg-p3,采用UTF-8编码,执行下面数据库脚本\r\n            jeecg-p3-web/doc/sql/jeecg-p3-mysql.sql\r\n    第二步:采用maven方式启动项目 (jeecg-p3-web)\r\n            项目右建->debug as->debug configurations->选中jeecg-p3-web项目->输入命令:tomcat:run\r\n            注意:[1].update snapshots需要选中,官方会不断更新底层包\r\n                  [2].插件项目不能单独启动,需以maven方式引入jeecg-p3-web项目中,启动web主项目\r\n    第四步:测试访问地址\r\n            1. http://localhost/jeecg-p3-web/p3/wxActInvite.do?list\r\n            2. http://localhost/jeecg-p3-web/p3/auth.do?list

【代码生成器】

1.工具类:jeecg-p3-web/src/main/java/util/P3CodeGenerateUtil.java\r\n2.配置文件:jeecg-p3-web/src/main/resources/p3-cg-config.properties

技术交流


', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef81540325190154032622320002', '管理员', 'admin', '2016-04-11 10:28:31', '121212', null, '

此版本是一个扁平化UI风格版,提供4套风格供客户选择,让我们共同期待后续版本的到来

  1. ACE扁平化风格;

  2. 代码生成器,支持restful后台代码生成;

  3. Online表单提供对外HTTP接口;

  4. 用户,角色,组织机构,导入功能;

  5. 多附件上传报错处理;

  6. 查询过滤器查询报错处理;

  7. online代码生成器支持bootstrap表单风格生成;

  8. online代码生成器支持上传组件生成;

  9. 升级minidao;

  10. 在线文档管理;

  11. 邮件管理;

  12. 封装标签:用户标签,组织机构标签;

  13. 移动报表展示;

  14. 插件演示;


', '02', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `jp_inner_mail` VALUES ('4028ef8154032519015403287cc9000c', '张代浩', 'scott', '2016-04-11 10:31:05', '测试邮件', null, '

测试邮件

', '01', '管理员', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `jp_inner_mail` VALUES ('46604968EFE1483481BE6EDAFC657CBC', '管理员', 'admin', '2016-07-17 22:41:40', '12', null, '\n 12\n ', '01', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `jp_inner_mail` VALUES ('5F99D18C7CED41D0BF5DB9B351D5522E', '管理员', 'admin', null, '1212', null, '1212121212', '02', '张三,管理员', '4028ef81538330cd01538333b7bc0001,8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `jp_inner_mail` VALUES ('771A39B4BB924C62B718B067A0189C72', '张三', 'lisi', null, '测试草稿', null, '\n 测试草稿\n\n \n ', '01', '管理员', ''); +INSERT INTO `jp_inner_mail` VALUES ('80683B1F97844A209D665B601B302E36', '张三', 'lisi', null, '测试草稿功能', null, '\n 测试草稿功能测试草稿功能\n\n \n ', '01', '管理员', ''); +INSERT INTO `jp_inner_mail` VALUES ('87702BA292984B1CBBB3BC34D097F9D6', '管理员', 'admin', null, '123123', null, '1231231233123', '02', '管理员', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `jp_inner_mail` VALUES ('A1606A71E238407F9911692132B73617', '张三', 'lisi', null, '999999999999', null, '\n 99999999999999999999\n ', '02', '管理员', ''); +INSERT INTO `jp_inner_mail` VALUES ('B4CC1059FDA6440F96FB3FFDE63ABAA9', '管理员', 'admin', null, '1222', null, '\n 1212\n ', '02', '管理员', ''); +INSERT INTO `jp_inner_mail` VALUES ('CAB308BF489144AD8842667CC741D453', '管理员', 'admin', '2016-07-18 16:54:13', '12', null, '12', '01', '张代浩', '8a8ab0b246dc81120146dc81819d0053'); + +-- ---------------------------- +-- Table structure for `jp_inner_mail_attach` +-- ---------------------------- +DROP TABLE IF EXISTS `jp_inner_mail_attach`; +CREATE TABLE `jp_inner_mail_attach` ( + `id` varchar(32) NOT NULL, + `mailid` varchar(32) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- --- Records of onlne_tree +-- Records of jp_inner_mail_attach -- ---------------------------- -INSERT INTO `onlne_tree` VALUES ('4028ef81552e09fd01552e10fb280001', '管理员', 'admin', '2016-06-08 00:00:00', null, null, null, '99', null, '999'); -INSERT INTO `onlne_tree` VALUES ('4028ef81552e09fd01552e110d510002', '管理员', 'admin', '2016-06-08 00:00:00', '管理员', 'admin', '2016-06-08 00:00:00', '66', '4028ef81552e09fd01552e10fb280001', '66'); +INSERT INTO `jp_inner_mail_attach` VALUES ('4028ef8153a650060153a65327350012', '4028ef8153a650060153a653262c0010'); -- ---------------------------- --- Table structure for `optimistic_locking` +-- Table structure for `jp_inner_mail_receiver` -- ---------------------------- -DROP TABLE IF EXISTS `optimistic_locking`; -CREATE TABLE `optimistic_locking` ( - `ID` varchar(32) NOT NULL, - `ACCOUNT` int(11) default NULL, - `AGE` int(11) default NULL, - `NAME` varchar(85) default NULL, - `VER` int(11) default NULL, - PRIMARY KEY (`ID`) +DROP TABLE IF EXISTS `jp_inner_mail_receiver`; +CREATE TABLE `jp_inner_mail_receiver` ( + `id` varchar(36) NOT NULL, + `create_date` datetime default NULL COMMENT '创建日期', + `update_date` datetime default NULL COMMENT '更新日期', + `mail_id` varchar(36) default NULL COMMENT '邮件标识', + `user_id` varchar(36) default NULL COMMENT '收件人标识', + `status` varchar(50) default NULL COMMENT '收件状态', + `isdelete` char(2) default NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- --- Records of optimistic_locking --- ---------------------------- +-- Records of jp_inner_mail_receiver +-- ---------------------------- +INSERT INTO `jp_inner_mail_receiver` VALUES ('136EE823A5DD4D2395DCDED8C265341E', '2016-07-11 12:00:54', null, 'A1606A71E238407F9911692132B73617', '', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('1FDD5896D66E48EFBC704D7AE7FFF9D8', '2016-07-17 22:41:07', '2016-07-17 22:41:07', 'F18E57AA6E004CF18C50578BBB38F1F9', '8a8ab0b246dc81120146dc81819d0053', '00', '0'); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5caa3bd0006', '2016-03-30 12:31:45', null, '4028ef8153c5a4860153c5caa2f90005', '4028ef81538330cd01538333b7bc0001', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb10d60008', '2016-03-30 12:32:13', null, '4028ef8153c5a4860153c5cb108a0007', '4028ef81538330cd01538333b7bc0001', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb2133000a', '2016-03-30 12:32:17', null, '4028ef8153c5a4860153c5cb20fc0009', '4028ef81538330cd01538333b7bc0001', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb3169000c', '2016-03-30 12:32:21', null, '4028ef8153c5a4860153c5cb3124000b', '4028ef81538330cd01538333b7bc0001', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb59b00010', '2016-03-30 12:32:31', null, '4028ef8153c5a4860153c5cb5957000f', '402880e74d75c4dd014d75d44af30005', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153c5a4860153c5cb639b0012', '2016-03-30 12:32:34', null, '4028ef8153c5a4860153c5cb63570011', '402880e74d75c4dd014d75d44af30005', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef8153d1be5b0153d1c8c0130005', '2016-04-01 20:25:07', null, '4028ef8153d1be5b0153d1c8bf3c0004', '4028ef81538330cd01538333b7bc0001', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef815400c2c6015400c483940002', '2016-04-10 23:22:39', null, '4028ef815400c2c6015400c482260001', '8a8ab0b246dc81120146dc81819d0053', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef815400c2c6015400c5600d000a', '2016-04-10 23:23:35', null, '4028ef8153c5a4860153c5ca58540003', '8a8ab0b246dc81120146dc8181950052', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef81540325190154032660880004', '2016-04-11 10:28:47', null, '4028ef81540325190154032622320002', '8a8ab0b246dc81120146dc81819d0053', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4028ef81540325190154032a238e001d', '2016-04-11 10:32:53', null, '4028ef8153a650060153a6559ff80020', '8a8ab0b246dc81120146dc81819d0053', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('4DE50EC2B9AC4D86B5DE2D36EE3B1B30', '2016-07-05 14:48:40', null, 'BB3DF9C9437C4512923A9CE162B81A40', '8a8ab0b246dc81120146dc8181950052', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('598A0F12130145C898334BB3F51B8BFE', '2016-07-05 14:22:13', null, 'B4CC1059FDA6440F96FB3FFDE63ABAA9', '', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('9E1214516ECE4DF38A652264E60F5EE8', '2016-07-17 22:41:48', '2016-07-17 22:42:52', '46604968EFE1483481BE6EDAFC657CBC', '8a8ab0b246dc81120146dc81819d0053', '00', '1'); +INSERT INTO `jp_inner_mail_receiver` VALUES ('9FC0C28ECE474448888B9E872DC3B72D', '2016-07-05 14:40:15', null, '3A230A6CC3544E1B9D941136ACBB4E1B', '', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('B3F28061CB534C419E36D9C1AB401052', '2016-07-11 12:06:55', null, '3C5E246D939545069FAB2DFD0D4B0474', '8a8ab0b246dc81120146dc8181950052', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('CAAC167F8FD442B38C5F2232DCA88460', '2016-07-11 12:11:19', null, '771A39B4BB924C62B718B067A0189C72', '', '00', null); +INSERT INTO `jp_inner_mail_receiver` VALUES ('DDBDE922A4824DECACFE1F903D281535', '2016-07-18 16:54:13', '2016-07-18 16:54:13', 'CAB308BF489144AD8842667CC741D453', '8a8ab0b246dc81120146dc81819d0053', '00', '0'); +INSERT INTO `jp_inner_mail_receiver` VALUES ('F35684BE071F40939155F4FBC844F040', '2016-07-11 12:08:43', null, '80683B1F97844A209D665B601B302E36', '', '00', null); -- ---------------------------- -- Table structure for `t_finance` @@ -2608,7 +2558,7 @@ CREATE TABLE `t_s_base_user` ( -- Records of t_s_base_user -- ---------------------------- INSERT INTO `t_s_base_user` VALUES ('402880e74d75c4dd014d75d44af30005', null, null, 'deec3ebf23191eee', 'demo', null, '1', 'demo', 'demo', null, '0'); -INSERT INTO `t_s_base_user` VALUES ('4028ef81538330cd01538333b7bc0001', null, null, null, '张三', null, '1', '普通用户', 'lisi', null, '0'); +INSERT INTO `t_s_base_user` VALUES ('4028ef81538330cd01538333b7bc0001', null, null, 'fa83c6e9a2006c62', '张三', null, '1', '普通用户', 'lisi', null, '0'); INSERT INTO `t_s_base_user` VALUES ('8a8ab0b246dc81120146dc8181950052', null, null, 'c44b01947c9e6e3f', '管理员', null, '1', '管理员', 'admin', '8a8ab0b246dc81120146dc8180a20016', '0'); INSERT INTO `t_s_base_user` VALUES ('8a8ab0b246dc81120146dc81819d0053', null, null, 'd47ca58189979651', '张代浩', null, '1', '普通用户', 'scott', '8a8ab0b246dc81120146dc8180bd0018', '0'); INSERT INTO `t_s_base_user` VALUES ('8a8ab0b246dc81120146dc8181a10054', null, null, 'f2322ec2fb9f40d1', '采购员', null, '1', '管理员', 'cgy', '8a8ab0b246dc81120146dc8180a20016', '1'); @@ -2761,8 +2711,8 @@ CREATE TABLE `t_s_data_source` ( -- ---------------------------- -- Records of t_s_data_source -- ---------------------------- -INSERT INTO `t_s_data_source` VALUES ('402880e74e064fc5014e0652f72b0001', 'jeewx-yunying', '微信运营数据库', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost:3306/jeewx-yunying?useUnicode=true&characterEncoding=UTF-8', 'root', 'root', 'mysql', 'jeewx-yunying'); -INSERT INTO `t_s_data_source` VALUES ('8a8aada9486347c001486401180a0003', 'SAP_DB', 'sap db', 'oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:oral', 'db_user', 'db_password', 'oracle', 'orcl'); +INSERT INTO `t_s_data_source` VALUES ('402880e74e064fc5014e0652f72b0001', 'jeewx-yunying', '微信运营数据库', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost:3306/jeewx-yunying?useUnicode=true&characterEncoding=UTF-8', 'root', 'e3593c2fa5ad98c3c617064700983f0d063321cec19f8c6c', 'mysql', 'jeewx-yunying'); +INSERT INTO `t_s_data_source` VALUES ('8a8aada9486347c001486401180a0003', 'SAP_DB', 'sap db', 'oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:oral', 'db_user', 'b87229b8439ad93f6f288822a9f2a01c', 'oracle', 'orcl'); -- ---------------------------- -- Table structure for `t_s_demo` @@ -2906,8 +2856,6 @@ INSERT INTO `t_s_function` VALUES ('402880e74d76e784014d76f5505a0012', null, '0' INSERT INTO `t_s_function` VALUES ('402880e74d76e784014d76f5cc2e0014', null, '1', '请假列表', '1', 'cgAutoListController.do?list&id=jform_leave', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-15 12:30:36', null, '管理员'); INSERT INTO `t_s_function` VALUES ('402880e74d76e784014d76fa7e970024', null, '1', '数据报表', '2', 'cgReportController.do?list&id=user_msg', '8a8ab0b246dc81120146dc8180d4001b', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-14 11:37:27', null, '管理员'); INSERT INTO `t_s_function` VALUES ('402880e74d76e784014d76fd1bd60030', null, '1', '图形报表', '3', 'graphReportController.do?list&isIframe&id=yhcztj', '8a8ab0b246dc81120146dc8180d4001b', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-14 11:37:16', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('402880e9538e6d6f01538e70be530001', null, '1', '在线文档', '11', 'onlineDocController.do?list', '4028ef81535fff5101536000e7590001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:16:22', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('402880e953922623015392336f050001', null, '1', '文档目录', '12', 'onlineDocSortController.do?list', '4028ef81535fff5101536000e7590001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-29 12:22:35', null, '管理员'); INSERT INTO `t_s_function` VALUES ('402880ea53303a060153304a9ad50001', null, '1', '系统公告', '7', 'noticeController.do?tSNotice', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:16:34', null, '管理员'); INSERT INTO `t_s_function` VALUES ('4028819e5505ee23015505f646190001', null, '1', '商品管理(特殊布局)', '102', 'goodsController.do?list', '8a8ab0b246dc81120146dc8180d7001c', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:43:50', null, '管理员'); INSERT INTO `t_s_function` VALUES ('402881c746de1ea60146de207d770001', null, '1', 'language.manage', '10', 'mutiLangController.do?mutiLang', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, null, null, null, null); @@ -2923,17 +2871,9 @@ INSERT INTO `t_s_function` VALUES ('402885814e3d2d09014e3d2e77800001', null, '1' INSERT INTO `t_s_function` VALUES ('402889fb486e848101486e8de3d60005', null, '0', 'menu.data.permission', '100', '', null, '8a8ab0b246dc81120146dc8180820003', '8a8ab0b246dc81120146dc8180dd001e', '1', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('4028948150f5ba6a0150f5d0b0200004', null, '1', '客户跟踪记录', '4', 'cgAutoListController.do?list&id=jeecg_custom_record', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('4028948150f5ba6a0150f5d34aca000a', null, '1', '客户资料管理', '5', 'cgAutoListController.do?list&id=jeecg_custom_info', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, null, null, null, null); -INSERT INTO `t_s_function` VALUES ('4028b881538d684201538dac3bfa001e', null, '0', '我的邮箱', '14', '', null, '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-04-14 12:35:55', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('4028b881538d684201538dac6d920020', null, '1', '写信', '1', 'jformInnerMailController.do?goAddOrUpdate', '4028b881538d684201538dac3bfa001e', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-21 22:59:38', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('4028b881538d684201538db2fd260030', null, '1', '草稿箱', '2', 'jformInnerMailController.do?goUnSendMails', '4028b881538d684201538dac3bfa001e', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-23 22:26:48', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('4028b8815399f219015399fe4eaf000c', null, '1', '收件箱', '2', 'jformInnerMailController.do?goReceivedMails', '4028b881538d684201538dac3bfa001e', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-22 22:01:49', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('4028b88153a42a410153a42b45730001', null, '1', '发信箱', '3', 'jformInnerMailController.do?goSendMails', '4028b881538d684201538dac3bfa001e', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-03-23 23:50:12', null); INSERT INTO `t_s_function` VALUES ('4028b88155061bbe015506cbe157000f', null, '1', '表单风格非弹框', '3', 'jeecgNoteController.do?jeecgNote2', '8a8ab0b246dc81120146dc8180d7001c', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:37:28', null, '管理员'); INSERT INTO `t_s_function` VALUES ('4028bc934869765001486977f0980001', null, '1', 'common.datasource.manage', '11', 'dynamicDataSourceController.do?dbSource', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, null, null, null, null); -INSERT INTO `t_s_function` VALUES ('4028ef81535fff5101536000e7590001', null, '0', 'OA办公', '11', '', null, '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-03-10 18:09:45', null); INSERT INTO `t_s_function` VALUES ('4028ef81535fff5101536001bb8d0005', null, '1', '招聘管理', '1', 'cgAutoListController.do?list&id=jform_resume_info', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:17:13', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('4028ef815373656a0153736711890001', null, '0', '插件演示', '1', '', null, '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-04-08 22:36:38', null, '管理员'); -INSERT INTO `t_s_function` VALUES ('4028ef815373656a015373675ee00003', null, '1', '普通列表', '1', 'p3/wxActInvite.do?list', '4028ef815373656a0153736711890001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-30 18:15:38', null, '管理员'); INSERT INTO `t_s_function` VALUES ('4028ef815373fb53015373fef1c50003', null, '1', '通讯录分组', '9', 'cgAutoListController.do?list&id=jform_contact_group', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:16:01', null, '管理员'); INSERT INTO `t_s_function` VALUES ('4028ef815373fb53015373ff521d0005', null, '1', '通讯录', '10', 'cgAutoListController.do?list&id=jform_contact', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-06-27 18:16:09', null, '管理员'); INSERT INTO `t_s_function` VALUES ('4028ef8153781af3015378643c1e000b', null, '1', '移动填报表单', '8', 'jeecgDemoController.do?addorupdatemobile', '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-15 12:31:03', null, '管理员'); @@ -2948,7 +2888,10 @@ INSERT INTO `t_s_function` VALUES ('4028ef815378be7c015378e207cf000c', null, '1' INSERT INTO `t_s_function` VALUES ('4028ef815378be7c015378e27ae5000e', null, '1', '2D柱状图', '5', 'cgDynamGraphController.do?design&id=t_s_log>ype=Column2D', '4028ef815378be7c015378e019750003', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-03-15 14:07:01', null); INSERT INTO `t_s_function` VALUES ('4028ef815378be7c015378e30f760010', null, '1', '2D饼图', '6', 'cgDynamGraphController.do?design&id=t_s_log>ype=Pie2D', '4028ef815378be7c015378e019750003', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-03-15 14:12:59', null, '管理员'); INSERT INTO `t_s_function` VALUES ('4028ef815378be7c015378e3e6530013', null, '1', '综合报表', '8', 'cgDynamGraphController.do?design&id=t_s_log', '4028ef815378be7c015378e019750003', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-03-15 14:08:34', null); -INSERT INTO `t_s_function` VALUES ('4028ef8153c703ac0153c7055c670002', null, '1', '树列表', '2', 'p3/auth.do?list', '4028ef815373656a0153736711890001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-03-30 18:15:30', null); +INSERT INTO `t_s_function` VALUES ('4028ef8155fd32e40155fd33c6670001', null, '0', '插件模块', '0', '', null, '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-07-18 16:51:16', null); +INSERT INTO `t_s_function` VALUES ('4028ef8155fd32e40155fd344cdd0003', null, '1', '普通列表', '1', 'p3/wxActInvite.do?list', '4028ef8155fd32e40155fd33c6670001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-07-18 16:51:51', null); +INSERT INTO `t_s_function` VALUES ('4028ef8155fd32e40155fd348df80005', null, '1', '树形列表', '2', 'p3/auth.do?list', '4028ef8155fd32e40155fd33c6670001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-07-18 16:52:19', null, '管理员'); +INSERT INTO `t_s_function` VALUES ('4028ef8155fd32e40155fd3564520008', null, '1', '我的邮箱', '3', 'mail/p3MailJformInnerMail.do?toSendMail', '4028ef8155fd32e40155fd33c6670001', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', 'admin', '管理员', null, null, '2016-07-18 16:53:02', null); INSERT INTO `t_s_function` VALUES ('4028f0c9528200c701528207d42c0001', null, '1', '电子签章', '104', 'demoController.do?eSign', '8a8ab0b246dc81120146dc8180d7001c', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-01-27 16:05:55', null, '管理员'); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180ce0019', null, '0', 'online.develop', '5', '', null, '8a8ab0b246dc81120146dc8180890008', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-04-08 22:28:17', null, '管理员'); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180d2001a', null, '0', 'system.manage', '9', '', null, '8a8ab0b246dc81120146dc8180860006', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, 'admin', '2016-01-14 11:30:31', null, '管理员'); @@ -2961,7 +2904,6 @@ INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180e70023', null, '1' INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180ee0025', null, '1', 'common.data.dictionary', '6', 'systemController.do?typeGroupList', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180eb0024', '0', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180f30027', null, '1', 'icon.manage', '8', 'iconController.do?icon', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180f00026', '0', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180f60028', null, '1', 'department.manage', '3', 'departController.do?depart', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, null, null, null, null); -INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180f80029', null, '1', 'area.manage', '15', 'territoryController.do?territory', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc8180dd001e', '0', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc8180fe002b', null, '1', 'user.analysis', '1', 'logController.do?statisticTabs&isIframe', '8a8ab0b246dc81120146dc8180d4001b', '8a8ab0b246dc81120146dc8180810002', '8a8ab0b246dc81120146dc8180fb002a', '0', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc818106002d', null, '1', 'form.config', '1', 'cgFormHeadController.do?cgFormHeadList', '8a8ab0b246dc81120146dc8180ce0019', '8a8ab0b246dc81120146dc8180460000', '8a8ab0b246dc81120146dc818102002c', '0', null, null, null, null, null, null); INSERT INTO `t_s_function` VALUES ('8a8ab0b246dc81120146dc818109002e', null, '1', 'dynamic.form.config', '3', 'cgreportConfigHeadController.do?cgreportConfigHead', '8a8ab0b246dc81120146dc8180ce0019', '8a8ab0b246dc81120146dc8180460000', null, '0', null, null, null, null, null, null); @@ -5083,6 +5025,153 @@ INSERT INTO `t_s_log` VALUES ('4028ef81559a459601559a474fa80001', 'Chrome', '语 INSERT INTO `t_s_log` VALUES ('4028ef81559a459601559a47655c0002', 'Chrome', '语言 更新成功', '5', '192.168.111.1', '2016-06-29 11:50:18', '1', '8a8ab0b246dc81120146dc8181950052'); INSERT INTO `t_s_log` VALUES ('4028ef81559a495801559a49b5210000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-29 11:52:49', '1', '8a8ab0b246dc81120146dc8181950052'); INSERT INTO `t_s_log` VALUES ('4028ef81559abda301559abe13e50000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-29 13:59:56', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559ae73101559ae7d9230000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-29 14:45:33', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559b593d01559b59a2a40000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-29 16:49:50', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559b894b01559b8a57c90000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-29 17:43:02', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559f46a601559f4718450000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-30 11:08:04', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559f46a601559f47616c0001', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-06-30 11:08:23', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559f8cda01559f8d8d220000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-30 12:25:01', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef81559fb5d401559fb66a790000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-30 13:09:40', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155a094320155a09503e20000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-06-30 17:12:48', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b8e2010155b8e35c250000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 10:29:15', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b8e83f0155b8e8cd630000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 10:35:12', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b8e83f0155b8ece0160002', 'Chrome', '菜单 录入成功', '3', '192.168.111.1', '2016-07-05 10:39:39', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b8e83f0155b8ed4c910004', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-05 10:40:07', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b8e83f0155b8ed5aaf0005', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 10:40:10', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b8e83f0155b8ee2ce90006', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 10:41:04', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9b645660000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 14:19:38', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9b740400001', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 14:20:42', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9bc52e50002', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 14:26:14', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9c3b7240003', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-05 14:34:19', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9c3c7c20004', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-05 14:34:23', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9dbe7be0005', 'Chrome', '错误异常: MySQLSyntaxErrorException,错误描述:Table \'jeecg.jp_demo_auth\' doesn\'t exist', '6', '192.168.111.1', '2016-07-05 15:00:44', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155b9b5a40155b9dc89190006', 'Chrome', '错误异常: MySQLSyntaxErrorException,错误描述:Table \'jeecg.jp_demo_auth\' doesn\'t exist', '6', '192.168.111.1', '2016-07-05 15:01:25', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf14900155bf151e990000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-06 15:21:20', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf14900155bf176caa0001', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-06 15:23:51', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf257f360000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-06 15:39:13', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf26134c0001', 'Chrome', '错误异常: CgReportNotFoundException,错误描述:动态报表配置不存在!', '6', '192.168.111.1', '2016-07-06 15:39:51', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf2845830002', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-06 15:42:15', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf2919a50003', 'Chrome', '错误异常: MysqlDataTruncation,错误描述:Data truncation: Data too long for column \'cardid\' at row 1', '6', '192.168.111.1', '2016-07-06 15:43:09', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf2941e60004', 'Chrome', '错误异常: MysqlDataTruncation,错误描述:Data truncation: Data too long for column \'cardid\' at row 1', '6', '192.168.111.1', '2016-07-06 15:43:20', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf2964a50005', 'Chrome', '错误异常: MysqlDataTruncation,错误描述:Data truncation: Data too long for column \'cardid\' at row 1', '6', '192.168.111.1', '2016-07-06 15:43:28', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf29a3280006', 'Chrome', '错误异常: MysqlDataTruncation,错误描述:Data truncation: Data too long for column \'cardid\' at row 1', '6', '192.168.111.1', '2016-07-06 15:43:44', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155bf24890155bf29ff970007', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-06 15:44:08', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c480300155c480a5f60000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-07 16:36:53', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c480300155c48126cd0001', 'Chrome', '菜单删除成功', '4', '192.168.111.1', '2016-07-07 16:37:26', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c480300155c48140930002', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-07 16:37:32', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c480300155c48150cb0003', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-07 16:37:37', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c4a15c0155c4a1d7130000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-07 17:13:08', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c4a15c0155c4a36ee40001', 'Chrome', '删除成功', '4', '192.168.111.1', '2016-07-07 17:14:53', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c4a15c0155c4a49b690002', 'Chrome', '删除成功', '4', '192.168.111.1', '2016-07-07 17:16:09', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c4a15c0155c4a626060003', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-07 17:17:50', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c4a15c0155c4a6f62c0004', 'Chrome', '删除成功', '4', '192.168.111.1', '2016-07-07 17:18:44', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155c9dbe40155c9dcc0a20000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-08 17:35:35', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ca22390155ca26b1470000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-08 18:56:21', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80b496d0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 11:41:06', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80df7660001', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 11:44:01', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80e3b0f0002', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 11:44:19', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80e736f0003', 'Chrome', '用户: lisi密码重置成功', '5', '192.168.111.1', '2016-07-11 11:44:33', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80e7abd0004', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 11:44:35', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80eb6150005', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 11:44:50', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80ed23b0006', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 11:44:57', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80ede720007', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 11:45:01', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80f4e00000a', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 11:45:29', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80f88f6000b', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 11:45:44', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80fb56e000c', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 11:45:56', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d80fc495000d', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 11:45:59', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d8104833000e', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 11:46:33', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d8106c1a000f', 'Chrome', '用户: lisi[软件开发部]common.login.success', '1', '192.168.111.1', '2016-07-11 11:46:42', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d811868c0010', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 11:47:55', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d811e21b0011', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 11:48:18', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d813fc320012', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 11:50:36', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d80a640155d8141e7e0013', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 11:50:45', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81616770000', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 11:52:54', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81659ce0001', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 11:53:11', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81669270002', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 11:53:15', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d816a2a20003', 'Chrome', '错误异常: ObjectNotFoundException,错误描述:No row with the given identifier exists: [org.jeecgframework.web.system.pojo.base.TSFunction#402880e953922623015392336f050001]', '6', '192.168.111.1', '2016-07-11 11:53:30', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d816fde30004', 'Chrome', '错误异常: ObjectNotFoundException,错误描述:No row with the given identifier exists: [org.jeecgframework.web.system.pojo.base.TSFunction#402880e953922623015392336f050001]', '6', '192.168.111.1', '2016-07-11 11:53:53', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81728d10005', 'Chrome', '错误异常: ObjectNotFoundException,错误描述:No row with the given identifier exists: [org.jeecgframework.web.system.pojo.base.TSFunction#402880e953922623015392336f050001]', '6', '192.168.111.1', '2016-07-11 11:54:04', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81c64740009', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 11:59:47', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81c8887000a', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 11:59:56', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81ed0ae000b', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 12:02:26', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81ee65d000c', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 12:02:31', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81f366c000d', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 12:02:52', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81f5754000e', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 12:03:00', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81f9c40000f', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 12:03:18', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d81fab530010', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 12:03:22', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d821eadc0011', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 12:05:49', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82207390012', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 12:05:56', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82322ec0013', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 12:07:09', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82335cd0014', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 12:07:14', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82368a20015', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 12:07:27', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d8239baa0016', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 12:07:40', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82501320017', 'Chrome', '用户lisi已退出', '2', '192.168.111.1', '2016-07-11 12:09:11', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82510b50018', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-11 12:09:15', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d82531b50019', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-11 12:09:24', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155d8158f0155d825db5b001a', 'Chrome', '用户: lisi[财务]common.login.success', '1', '192.168.111.1', '2016-07-11 12:10:07', '1', '4028ef81538330cd01538333b7bc0001'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de10950155de11163b0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-12 15:45:09', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de129e0155de1307ad0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-12 15:47:17', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de129e0155de1401350001', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-12 15:48:20', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de129e0155de1401460002', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-12 15:48:20', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de129e0155de1408e10003', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-12 15:48:22', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de129e0155de1409230004', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-12 15:48:22', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155de162d0155de1688ec0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-12 15:51:06', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e814abb60000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-14 14:25:16', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e81e41010001', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-14 14:35:44', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e82092cb0002', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-14 14:38:16', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e8219bb10003', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-14 14:39:24', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e8296de00004', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-14 14:47:57', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e829b1840005', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-14 14:48:14', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e8142a0155e829fd890006', 'Chrome', '修改成功', '5', '192.168.111.1', '2016-07-14 14:48:33', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e84fad0155e850548a0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-14 15:30:26', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e99a530155e99ae2920000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-14 21:31:29', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e9a2890155e9a37e670000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-14 21:40:53', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155e9bf5e0155e9c066be0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-14 22:12:28', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede72e0155ede8a68d0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-15 17:34:55', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede9ac0155edea1d8c0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-15 17:36:31', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede9ac0155edeb0e340001', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:37:32', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede9ac0155edeb15f10002', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:37:34', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede9ac0155edeb1c780003', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:37:36', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede9ac0155edeb43070004', 'Chrome', '错误异常: BusinessException,错误描述:Unknown entity: org.jeecgframework.web.system.sms.entity.TSSmsSqlEntity', '6', '192.168.111.1', '2016-07-15 17:37:46', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155ede9ac0155edeb43a70005', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:37:46', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edf4250155edf47ea00000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-15 17:47:51', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edf4250155edf9bf7e0001', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:53:35', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edf4250155edf9c8510002', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:53:37', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edf4250155edf9d8e40003', 'Chrome', '错误异常: BusinessException,错误描述:Unknown entity: org.jeecgframework.web.system.sms.entity.TSSmsSqlEntity', '6', '192.168.111.1', '2016-07-15 17:53:42', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edf4250155edf9d9640004', 'Chrome', '错误异常: NullPointerException,错误描述:null', '6', '192.168.111.1', '2016-07-15 17:53:42', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfad7f70000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-15 17:54:47', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfb15520001', 'Chrome', '业务SQL表更新成功', '5', '192.168.111.1', '2016-07-15 17:55:03', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfb2b9b0003', 'Chrome', '业务SQL表添加成功', '3', '192.168.111.1', '2016-07-15 17:55:08', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfb334a0004', 'Chrome', '业务SQL表删除成功', '4', '192.168.111.1', '2016-07-15 17:55:10', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfb3f170005', 'Chrome', '业务SQL表更新成功', '5', '192.168.111.1', '2016-07-15 17:55:13', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfc9c060006', 'Chrome', '多数据源管理 更新成功', '5', '192.168.111.1', '2016-07-15 17:56:43', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfcc7c30007', 'Chrome', '多数据源管理 更新成功', '5', '192.168.111.1', '2016-07-15 17:56:54', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edfcdf300008', 'Chrome', '多数据源管理 更新成功', '5', '192.168.111.1', '2016-07-15 17:57:00', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155edfa6e0155edff41890009', 'Chrome', '错误异常: SQLException,错误描述:Access denied for user \'root\'@\'localhost\' (using password: YES)', '6', '192.168.111.1', '2016-07-15 17:59:36', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155f949860155f94a03ae0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-17 22:37:05', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155f94b6c0155f94bead50000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-17 22:39:10', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155f94b6c0155f94c260f0001', 'Chrome', '错误异常: MySQLSyntaxErrorException,错误描述:Unknown column \'r.isdelete\' in \'where clause\'', '6', '192.168.111.1', '2016-07-17 22:39:25', '3', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155f94b6c0155f94e6f520002', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-17 22:41:55', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155f94b6c0155f94ef7a70003', 'Chrome', '用户: scott[中国人寿总公司]common.login.success', '1', '192.168.111.1', '2016-07-17 22:42:29', '1', '8a8ab0b246dc81120146dc81819d0053'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbe4fc150000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-18 10:45:35', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbf6380f0001', 'Chrome', '菜单删除成功', '4', '192.168.111.1', '2016-07-18 11:04:25', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbf666b10002', 'Chrome', '菜单删除成功', '4', '192.168.111.1', '2016-07-18 11:04:37', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbf689c80003', 'Chrome', '菜单删除成功', '4', '192.168.111.1', '2016-07-18 11:04:46', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbf719ba0004', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-18 11:05:23', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbf729b00005', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-18 11:05:27', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbfc43e60006', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-18 11:11:01', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fbcb650155fbfc55110007', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-18 11:11:06', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd33468c0000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-18 16:50:43', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd33c6cb0002', 'Chrome', '菜单 录入成功', '3', '192.168.111.1', '2016-07-18 16:51:16', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd344d250004', 'Chrome', '菜单 录入成功', '3', '192.168.111.1', '2016-07-18 16:51:51', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd348e2f0006', 'Chrome', '菜单 录入成功', '3', '192.168.111.1', '2016-07-18 16:52:07', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd34ba5b0007', 'Chrome', '菜单 更新成功', '5', '192.168.111.1', '2016-07-18 16:52:19', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd3564a90009', 'Chrome', '菜单 录入成功', '3', '192.168.111.1', '2016-07-18 16:53:02', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd36138e000e', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-18 16:53:47', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd36138e000f', 'Chrome', '用户admin已退出', '2', '192.168.111.1', '2016-07-18 16:53:47', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd3614600010', 'Chrome', '错误异常: IllegalStateException,错误描述:invalidate: Session already invalidated', '6', '192.168.111.1', '2016-07-18 16:53:47', '3', null); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd32e40155fd3629590011', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-18 16:53:53', '1', '8a8ab0b246dc81120146dc8181950052'); +INSERT INTO `t_s_log` VALUES ('4028ef8155fd3a500155fd3ab3260000', 'Chrome', '用户: admin[JEECG开源社区]common.login.success', '1', '192.168.111.1', '2016-07-18 16:58:50', '1', '8a8ab0b246dc81120146dc8181950052'); -- ---------------------------- -- Table structure for `t_s_muti_lang` @@ -5733,8 +5822,8 @@ INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533051360153305c60c90008', 'form.te INSERT INTO `t_s_muti_lang` VALUES ('4028ef815335c1da015335c8647d0003', 'self.defined.form', 'use defined form', 'en', '2016-03-02 13:23:58', 'admin', '管理员', null, null, null); INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533a788e01533a7a53180005', 'form.tb.db.table.name', 'table', 'en', '2016-03-03 11:16:48', 'admin', '管理员', '2016-03-03 11:17:56', 'admin', '管理员'); INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533a788e01533a7ba98c0008', 'form.tb.db.key', 'db source', 'en', '2016-03-03 11:18:16', 'admin', '管理员', null, null, null); -INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533c078201533c08b1ca0001', 'system.version.number', '3.6.4', 'zh-cn', '2016-03-03 18:31:56', 'admin', '管理员', '2016-06-29 11:50:18', 'admin', '管理员'); -INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533c078201533c08e2370003', 'system.version.number', '3.6.4', 'en', '2016-03-03 18:32:08', 'admin', '管理员', '2016-06-29 11:50:12', 'admin', '管理员'); +INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533c078201533c08b1ca0001', 'system.version.number', '3.6.5', 'zh-cn', '2016-03-03 18:31:56', 'admin', '管理员', '2016-06-29 11:50:18', 'admin', '管理员'); +INSERT INTO `t_s_muti_lang` VALUES ('4028ef81533c078201533c08e2370003', 'system.version.number', '3.6.5', 'en', '2016-03-03 18:32:08', 'admin', '管理员', '2016-06-29 11:50:12', 'admin', '管理员'); INSERT INTO `t_s_muti_lang` VALUES ('4028ef8154753f26015475436db30001', 'common.returntxttype', 'return type', 'en', '2016-05-03 14:17:13', 'admin', '管理员', '2016-05-03 14:41:57', 'admin', '管理员'); INSERT INTO `t_s_muti_lang` VALUES ('4028ef8154753f26015475438dd00003', 'common.returntxttype', '返回类型', 'zh-cn', '2016-05-03 14:17:22', 'admin', '管理员', '2016-05-03 14:42:06', 'admin', '管理员'); INSERT INTO `t_s_muti_lang` VALUES ('4028efa2523a030601523a55381d0004', 'self.defined.form', '自定义表单', 'zh-cn', '2016-01-13 17:33:29', 'admin', '管理员', null, null, null); @@ -6345,64 +6434,6 @@ INSERT INTO `t_s_notice_read_user` VALUES ('4028ef81533c02db01533c03a2fd0002', ' INSERT INTO `t_s_notice_read_user` VALUES ('4028ef81533c02db01533c03d9030003', '402880ea53303a060153304cf8860006', '8a8ab0b246dc81120146dc8181950052', '2016-03-03 18:26:38'); INSERT INTO `t_s_notice_read_user` VALUES ('4028ef81540325190154033fc3b60021', '4028ef8153eab2e60153eaba09fe0002', '8a8ab0b246dc81120146dc8181950052', '2016-04-11 10:56:31'); --- ---------------------------- --- Table structure for `t_s_online_doc` --- ---------------------------- -DROP TABLE IF EXISTS `t_s_online_doc`; -CREATE TABLE `t_s_online_doc` ( - `id` varchar(36) NOT NULL COMMENT 'id', - `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 '所属公司', - `bpm_status` varchar(32) default NULL COMMENT '流程状态', - `old_name` varchar(50) default NULL COMMENT '文件原名', - `new_name` varchar(50) default NULL COMMENT '文件名', - `description` varchar(200) default NULL COMMENT '描述', - `tree_node` varchar(36) default NULL COMMENT '分类节点', - `path` varchar(200) default NULL COMMENT '下载地址', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of t_s_online_doc --- ---------------------------- - --- ---------------------------- --- Table structure for `t_s_online_doc_sort` --- ---------------------------- -DROP TABLE IF EXISTS `t_s_online_doc_sort`; -CREATE TABLE `t_s_online_doc_sort` ( - `id` varchar(36) NOT 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 '所属公司', - `bpm_status` varchar(32) default '1' COMMENT '流程状态', - `name` varchar(32) default NULL COMMENT '名称', - `parent_code` varchar(36) default NULL COMMENT '父级节点', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of t_s_online_doc_sort --- ---------------------------- -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef815398e356015398e4e30c0006', '管理员', 'admin', '2016-03-21 19:17:30', null, null, null, 'A03', 'A0', null, '我的文档', null); -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef815398e356015398e4f78e0008', '管理员', 'admin', '2016-03-21 19:17:35', '管理员', 'admin', '2016-03-22 22:21:30', 'A03', 'A0', null, '小学文档', null); -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef815398e356015398e5333b000a', '管理员', 'admin', '2016-03-21 19:17:51', '管理员', 'admin', '2016-03-22 22:21:37', 'A03', 'A0', null, '小学数学', '4028ef815398e356015398e4f78e0008'); -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef815398e356015398e5630f000c', '管理员', 'admin', '2016-03-21 19:18:03', null, null, null, 'A03', 'A0', null, '我的567', '4028ef815398e356015398e4e30c0006'); -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef815398e356015398e6953e0010', '管理员', 'admin', '2016-03-21 19:19:21', '管理员', 'admin', '2016-03-23 10:02:21', 'A03', 'A0', null, '大学课程', null); -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef81539c00e601539c0232230001', '管理员', 'admin', '2016-03-22 09:48:22', '管理员', 'admin', '2016-03-22 22:21:45', 'A03', 'A0', null, '小学英文', '4028ef815398e356015398e4f78e0008'); -INSERT INTO `t_s_online_doc_sort` VALUES ('4028ef81539ea46801539eb258c70005', '管理员', 'admin', '2016-03-22 22:20:01', '管理员', 'admin', '2016-03-22 22:21:16', 'A03', 'A0', null, '数学', '4028ef81539ea46801539eb258c70005'); - -- ---------------------------- -- Table structure for `t_s_operation` -- ---------------------------- @@ -6498,10 +6529,6 @@ INSERT INTO `t_s_role_function` VALUES ('4028808848845c0f01488464dc1a000f', null INSERT INTO `t_s_role_function` VALUES ('4028808848845c0f01488464dc1a0010', null, '4028808848845c0f01488462658f0006', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028808848845c0f01488464dc1a0011', null, '4028808848845c0f01488463aa210009', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028808848845c0f01488464dc1a0012', null, '4028808848845c0f01488461b3ac0004', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('402880e74cfa77e4014cfa799b1b0003', null, '40288088481d019401481d2fcebf000d', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('402880e74cfa77e4014cfa799b1d0004', null, '402889fb486e848101486e8de3d60005', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('402880e74d75c4dd014d75d3df830003', '', '8a8ab0b246dc81120146dc8181300037', '402880e74d75c4dd014d75d3c5f40001', null); -INSERT INTO `t_s_role_function` VALUES ('402880e74d75c4dd014d75d3df860004', null, '8a8ab0b246dc81120146dc8180d7001c', '402880e74d75c4dd014d75d3c5f40001', null); INSERT INTO `t_s_role_function` VALUES ('402880e74d76e784014d76f64d070016', null, '402880e74d76e784014d76f5cc2e0014', '402880e74d75c4dd014d75d3c5f40001', null); INSERT INTO `t_s_role_function` VALUES ('402880e74d76e784014d76f64d0b0017', null, '402880e74d76e784014d76f5505a0012', '402880e74d75c4dd014d75d3c5f40001', null); INSERT INTO `t_s_role_function` VALUES ('402880e74d76e784014d76fa34ff0022', null, '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc8181870050', null); @@ -6526,9 +6553,6 @@ INSERT INTO `t_s_role_function` VALUES ('40289481511d91f101511dd7cceb0037', null INSERT INTO `t_s_role_function` VALUES ('4028b88155061bbe015506cdc5da0011', null, '4028b88155061bbe015506cbe157000f', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef815331b759015331b838150001', null, '402880ea53303a060153304a9ad50001', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef81535fff510153600ae653000b', null, '4028ef81535fff5101536001bb8d0005', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef81535fff510153600ae657000c', null, '4028ef81535fff5101536000e7590001', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef815373656a015373677f7c0005', null, '4028ef815373656a0153736711890001', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef815373656a015373677f800006', null, '4028ef815373656a015373675ee00003', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef815373fb530153740051bd0007', null, '4028ef815373fb53015373fef1c50003', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef815373fb530153740051c00008', null, '4028ef815373fb53015373ff521d0005', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef815378741f0153787637620003', null, '4028ef8153781af3015378643c1e000b', '8a8ab0b246dc81120146dc8181870050', null); @@ -6544,42 +6568,23 @@ INSERT INTO `t_s_role_function` VALUES ('4028ef815378be7c015378e41832001b', null INSERT INTO `t_s_role_function` VALUES ('4028ef815378be7c015378e41832001c', null, '4028ef815378be7c015378e0d39d0006', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef815378be7c015378e41833001d', null, '4028ef815378be7c015378e019750003', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef81539813330153981a81c60007', null, '402881e74e6d6066014e6d62d4ce0002', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef815398e356015398e422cc0001', null, '402880e953922623015392336f050001', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef815398e356015398e422d00002', null, '402880e9538e6d6f01538e70be530001', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153a650060153a65250550009', null, '4028b881538d684201538dac6d920020', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153a650060153a652505a000a', null, '4028b881538d684201538db2fd260030', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153a650060153a652505a000b', null, '4028b881538d684201538dac3bfa001e', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153a650060153a652505a000c', null, '4028b88153a42a410153a42b45730001', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153a650060153a652505a000d', null, '4028b8815399f219015399fe4eaf000c', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153c0f9550153c103b4cc0007', '8a8ab0b246dc81120146dc81824f0078,', '8a8ab0b246dc81120146dc8181300037', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153c0f9550153c103b4d00008', null, '8a8ab0b246dc81120146dc8180d7001c', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153c703ac0153c705f3370007', null, '4028ef8153c703ac0153c7055c670002', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8aeb0007', null, '4028ef815373fb53015373fef1c50003', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8aee0008', null, '4028b88153a42a410153a42b45730001', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af1000a', null, '4028ef81535fff5101536001bb8d0005', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af1000b', null, '4028ef815378be7c015378e1395d0008', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af2000c', null, '4028ef815378be7c015378e3e6530013', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af2000d', null, '4028b881538d684201538dac6d920020', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af2000e', null, '4028ef815378be7c015378e30f760010', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af2000f', null, '402880e9538e6d6f01538e70be530001', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af20010', null, '4028ef815378be7c015378e207cf000c', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af20011', null, '402880e74d76e784014d76fd1bd60030', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af30012', null, '402880ea53303a060153304a9ad50001', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af30013', null, '4028ef81535fff5101536000e7590001', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af80014', null, '4028ef8153c703ac0153c7055c670002', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af90015', null, '402880e74d76e784014d76fa7e970024', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af90016', null, '402880e953922623015392336f050001', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af90017', null, '4028ef815378be7c015378e27ae5000e', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af90018', null, '4028ef815378be7c015378e19969000a', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af90019', null, '4028ef815378be7c015378ddc2380001', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af9001a', null, '4028ef815378be7c015378e0d39d0006', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8af9001b', null, '4028b881538d684201538dac3bfa001e', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8b0a001c', null, '4028b881538d684201538db2fd260030', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8b0a001d', null, '4028ef815373656a0153736711890001', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8b0a001e', null, '4028ef815378be7c015378e019750003', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8b0b001f', null, '4028b8815399f219015399fe4eaf000c', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8b0b0020', null, '4028ef815373fb53015373ff521d0005', '8a8ab0b246dc81120146dc81818b0051', null); -INSERT INTO `t_s_role_function` VALUES ('4028ef8153fe51210153fe5f8b0b0021', null, '4028ef815373656a015373675ee00003', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8154fbe0280154fbec45f8000b', null, '8a8ab0b246dc81120146dc8180ce0019', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8154fbe0280154fbec45fa000c', null, '8a8ab0b246dc81120146dc818109002e', '8a8ab0b246dc81120146dc81818b0051', null); INSERT INTO `t_s_role_function` VALUES ('4028ef8154fbe0280154fbec45fa000d', null, '40287d81522a428401522a44aafb0002', '8a8ab0b246dc81120146dc81818b0051', null); @@ -6601,6 +6606,12 @@ INSERT INTO `t_s_role_function` VALUES ('4028ef8155046e080155046f4c6f000a', null INSERT INTO `t_s_role_function` VALUES ('4028ef81550c8fad01550c94b53f0001', null, '4028819e5505ee23015505f646190001', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028ef815595a881015595b1235e0003', '40288088481d019401481d30a0d1000f,', '40288088481d019401481d2fcebf000d', '402880e74d75c4dd014d75d3c5f40001', '4028ef815595a881015595b0ccb60001,'); INSERT INTO `t_s_role_function` VALUES ('4028ef815595a881015595b123610004', null, '402889fb486e848101486e8de3d60005', '402880e74d75c4dd014d75d3c5f40001', null); +INSERT INTO `t_s_role_function` VALUES ('4028ef8155d8158f0155d81c27350006', null, '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc81818b0051', null); +INSERT INTO `t_s_role_function` VALUES ('4028ef8155d8158f0155d81c27380008', null, '402880e74d76e784014d76f5505a0012', '8a8ab0b246dc81120146dc81818b0051', null); +INSERT INTO `t_s_role_function` VALUES ('4028ef8155fd32e40155fd35ddcc000a', null, '4028ef8155fd32e40155fd344cdd0003', '8a8ab0b246dc81120146dc8181870050', null); +INSERT INTO `t_s_role_function` VALUES ('4028ef8155fd32e40155fd35ddd1000b', null, '4028ef8155fd32e40155fd33c6670001', '8a8ab0b246dc81120146dc8181870050', null); +INSERT INTO `t_s_role_function` VALUES ('4028ef8155fd32e40155fd35ddd2000c', null, '4028ef8155fd32e40155fd348df80005', '8a8ab0b246dc81120146dc8181870050', null); +INSERT INTO `t_s_role_function` VALUES ('4028ef8155fd32e40155fd35ddd2000d', null, '4028ef8155fd32e40155fd3564520008', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('4028f0c9528200c70152820c006b0005', null, '4028f0c9528200c701528207d42c0001', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc81826d007c', '', '8a8ab0b246dc81120146dc8180ce0019', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc818275007e', '', '8a8ab0b246dc81120146dc8180d2001a', '8a8ab0b246dc81120146dc8181870050', null); @@ -6612,7 +6623,6 @@ INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182980086', '', INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc81829e0088', '', '8a8ab0b246dc81120146dc8180e30021', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182a5008a', '', '8a8ab0b246dc81120146dc8180e70023', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182aa008c', '', '8a8ab0b246dc81120146dc8180ee0025', '8a8ab0b246dc81120146dc8181870050', null); -INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182b0008e', '', '8a8ab0b246dc81120146dc8180f30027', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182b40090', '', '8a8ab0b246dc81120146dc8180f60028', '8a8ab0b246dc81120146dc8181870050', null); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182bb0094', '', '8a8ab0b246dc81120146dc8180fe002b', '8a8ab0b246dc81120146dc8181870050', '402889fe47fcb29c0147fcb6b6220001,'); INSERT INTO `t_s_role_function` VALUES ('8a8ab0b246dc81120146dc8182bd0095', '', '8a8ab0b246dc81120146dc8180fe002b', '8a8ab0b246dc81120146dc81818b0051', null); @@ -6807,32 +6817,6 @@ INSERT INTO `t_s_student` VALUES ('3', '1班', '小明', 'f'); INSERT INTO `t_s_student` VALUES ('4', '3班', 'xiaozhang', 'f'); INSERT INTO `t_s_student` VALUES ('4028d881436d514601436d521ae80165', '1班', '张三', 'f'); --- ---------------------------- --- Table structure for `t_s_team_person` --- ---------------------------- -DROP TABLE IF EXISTS `t_s_team_person`; -CREATE TABLE `t_s_team_person` ( - `id` varchar(36) NOT NULL, - `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 '所属公司', - `name` varchar(32) default NULL COMMENT '名称', - `img_src` varchar(50) default NULL COMMENT '头像路径', - `introduction` longtext COMMENT '简介', - `jion_date` datetime default NULL COMMENT '加入时间', - `is_join` int(11) default NULL COMMENT '是否参与;1为是,0为否', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of t_s_team_person --- ---------------------------- - -- ---------------------------- -- Table structure for `t_s_territory` -- ---------------------------- @@ -7372,7 +7356,7 @@ CREATE TABLE `t_s_user` ( -- Records of t_s_user -- ---------------------------- INSERT INTO `t_s_user` VALUES ('', '', '', null, '402880e74d75c4dd014d75d44af30005', '管理员', '2016-06-27 16:00:02', 'admin', '管理员', '2015-05-21 17:35:56', 'admin'); -INSERT INTO `t_s_user` VALUES ('zhangdaiscott@163.com', '13426432323', '991', null, '4028ef81538330cd01538333b7bc0001', '管理员', '2016-06-02 11:22:12', 'admin', '管理员', '2016-03-17 14:11:58', 'admin'); +INSERT INTO `t_s_user` VALUES ('zhangdaiscott@163.com', '13426432323', '991', null, '4028ef81538330cd01538333b7bc0001', '管理员', '2016-07-11 11:44:33', 'admin', '管理员', '2016-03-17 14:11:58', 'admin'); INSERT INTO `t_s_user` VALUES ('', '', '', 'images/renfang/qm/licf.gif', '8a8ab0b246dc81120146dc8181950052', '管理员', '2016-05-30 17:53:22', 'admin', null, null, null); INSERT INTO `t_s_user` VALUES ('zhangdaiscott@163.com', '13426430000', '7496661', null, '8a8ab0b246dc81120146dc81819d0053', '管理员', '2016-05-30 10:25:25', 'admin', null, null, null); INSERT INTO `t_s_user` VALUES ('', '', '', null, '8a8ab0b246dc81120146dc8181a10054', '管理员', '2016-06-01 15:07:57', 'admin', null, null, null); @@ -7421,260 +7405,6 @@ CREATE TABLE `t_s_version` ( -- Records of t_s_version -- ---------------------------- --- ---------------------------- --- Table structure for `test_onetable` --- ---------------------------- -DROP TABLE IF EXISTS `test_onetable`; -CREATE TABLE `test_onetable` ( - `id` varchar(36) NOT 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 '更新日期', - `name` varchar(32) default NULL COMMENT '名字', - `img` varchar(200) default NULL COMMENT '头像', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of test_onetable --- ---------------------------- -INSERT INTO `test_onetable` VALUES ('402880e74dc1f029014dc1f0292e0000', '管理员', 'admin', '2015-06-05 00:00:00', '管理员', 'admin', '2015-11-23 12:19:41', '张三', null); -INSERT INTO `test_onetable` VALUES ('402894815132906501513291af570003', '管理员', 'admin', '2015-11-23 00:00:00', '管理员', 'admin', '2016-01-13 00:00:00', '李四', null); -INSERT INTO `test_onetable` VALUES ('4028948152397d670152397d67cd0000', '管理员', 'admin', '2016-01-13 00:00:00', null, null, null, '1212', null); -INSERT INTO `test_onetable` VALUES ('402894815239d28c015239d28c090000', '管理员', 'admin', '2016-01-13 00:00:00', null, null, null, '111111', 'upload/files/20160113151046u61IYAtM.jpg'); - --- ---------------------------- --- Table structure for `test_student` --- ---------------------------- -DROP TABLE IF EXISTS `test_student`; -CREATE TABLE `test_student` ( - `id` varchar(36) NOT NULL, - `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 '所属公司', - `name` varchar(3200) default NULL COMMENT '学生名字', - `sex` varchar(32) default NULL COMMENT '性别', - `age` int(11) default NULL COMMENT '年龄', - `birthday` datetime default NULL COMMENT '生日', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of test_student --- ---------------------------- -INSERT INTO `test_student` VALUES ('4028ef815382d0af015382d780440002', '', '', null, '管理员', 'admin', '2016-04-01 10:25:15', '', '', 'zhangsan', '0', '20', '2016-03-17 00:00:00'); -INSERT INTO `test_student` VALUES ('4028ef81539ea56601539eab5ad00005', null, null, null, null, null, null, null, null, '123', '0', '123', '2016-03-22 00:00:00'); -INSERT INTO `test_student` VALUES ('4028ef8154fbe97a0154fbed1c1e0001', '张代浩', 'scott', '2016-05-29 00:00:00', '张代浩', 'scott', '2016-05-29 00:00:00', 'A02', 'A0', '2222', '0', '222', '2016-06-01 00:00:00'); - --- ---------------------------- --- Table structure for `weixin_template` --- ---------------------------- -DROP TABLE IF EXISTS `weixin_template`; -CREATE TABLE `weixin_template` ( - `id` varchar(36) NOT NULL, - `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 '更新日期', - `title` varchar(32) default NULL COMMENT '标题', - `type` varchar(32) default NULL COMMENT '类型', - `content` longtext COMMENT '模板内容', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of weixin_template --- ---------------------------- -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbce9c2f00000', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '关注引导0002', 'WXGZYD', '

? 提示龙金波点击上方\"微推宝微信\"免费订阅本刊



\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd0f34790001', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '关注引导0003', 'WXGZYD', '
点击上方
“蓝色字”
可关注我们!



\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd10739d0002', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0001', 'WXBT', '

 推宝  利器 



\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd11818e0003', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0002', 'WXBT', '
微推宝出品
必属精品
1
这里可输入标题,自适应宽度


\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1229670004', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0003', 'WXBT', '

这可输入标题



\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd12e2da0005', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0004', 'WXBT', '

一、这可输入标题


\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd13afe80006', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0005', 'WXBT', '

1
这可输入标题
 

\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1447400007', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0006', 'WXBT', '
第一步


\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd150f9a0008', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0007', 'WXBT', '
1、这里输入标题


\r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd15ada40009', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0008', 'WXBT', '
  • \r\n

    这里输入标题
     


    \r\n
  • '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1633cc000a', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0009', 'WXBT', '
    1
    请输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd16f5ee000b', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0009', 'WXBT', '
    请输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd19f245000c', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0010', 'WXBT', '
    1、这里输入标题



    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1a87c5000d', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0011', 'WXBT', '

    请输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1b1205000e', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0012', 'WXBT', '

    请输入标题

    我是段落内容


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1c5c06000f', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0013', 'WXBT', '

    请在这可输入标题我是微信ID


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1d1b420010', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0014', 'WXBT', '

    1第一标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1d92190011', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0015', 'WXBT', '

    1第一标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1e70590012', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0016', 'WXBT', '

    2请在这可输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1efb820013', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0017', 'WXBT', '

    请在这可输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd1fbb800014', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0018', 'WXBT', '

    ?欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd20447f0015', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0019', 'WXBT', '

    请在这可输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd225cf50016', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0020', 'WXBT', '

    请在这可输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd22f9ec0017', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0021', 'WXBT', '

    请在这可输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd23719c0018', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0022', 'WXBT', '

    请在这可输入标题


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd26032d0019', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0002', 'WXNRQ', '

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd270e53001a', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0003', 'WXNRQ', '
    \r\n
    \r\n这输入标题 微推宝编辑器\r\n
    \r\n
    \r\n可在这输入内容,微推宝微信编辑器,微信编辑首选。\r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd27abdb001b', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0004', 'WXNRQ', '
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n可在这输入内容, 微推宝微信编辑器,微信编辑首选。\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd284a3a001c', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0005', 'WXNRQ', '
    \r\n

    \r\n可在这输入内容, 微推宝微信编辑器,微信编辑首选。\r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd2bfaed001d', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0006', 'WXNRQ', '
    \r\n
    \r\n
    \r\n我的观点\r\n
    \r\n
    \r\n
    \r\n
    \r\n可在这输入内容, 微推宝微信编辑器,微信编辑首选。\r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd2d5b54001e', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0007', 'WXNRQ', '

    请输入内容


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd2df3a0001f', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0008', 'WXNRQ', '
    \r\n\r\n精彩内容\r\n\r\n

    \r\n请输入内容
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd2ecdbc0020', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0009', 'WXNRQ', '
    \r\n

    \r\n可在这输入内容, 微推宝微信编辑器,微信编辑首选。\r\n

    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd2f8c6e0021', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0010', 'WXNRQ', '

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd30006f0022', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0011', 'WXNRQ', '

    直接选择需要的样式拷贝到需要的地方,修改其中的文字即可。


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd307eac0023', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0012', 'WXNRQ', '

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd30fc950024', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0013', 'WXNRQ', '

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd3178710025', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0014', 'WXNRQ', '
    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd31daf00026', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0015', 'WXNRQ', '
    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd324f5e0027', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0016', 'WXNRQ', '
    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd3313660028', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0017', 'WXNRQ', '
    杭州推宝科技




    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd337dc70029', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0018', 'WXNRQ', '
    公告通知

    各位小伙伴们,当小伙伴们看到这个排版技巧的时候,说明我们有缘、首先再开始之前,请使用谷歌浏览器,才能达到和手机端一致的效果,其次部分效果,在其它浏览器中会无效!以免耽误大家宝贵时间


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd341735002a', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0019', 'WXNRQ', '
    \r\n\r\n

    请输入标题

    欢迎使用推宝微信编辑器!\r\n

    \r\n


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd349ce7002b', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0020', 'WXNRQ', '
    输入标题

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd352dcb002c', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0021', 'WXNRQ', '
    欢迎使用推宝微信编辑器!我是IOS7风格,没阴影。


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd35bbe4002d', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0022', 'WXNRQ', '
  • \r\n
    在这输入标题

    欢迎使用推宝微信编辑器!


    \r\n
  • '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd36377e002e', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0023', 'WXNRQ', '
    请在这输入标题

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbce9c2014dbd37aed6002f', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '互推0001', 'WXHTZH', '
    杭州推宝科技ID:wxid

    直接选择需要的样式拷贝到需要的地方,修改其中的文字即可。如果需要跟换颜色或者有其他需求


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd534c520000', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '互推0002', 'WXHTZH', '
    如何关注

    ①复制“微信号或ID”,在“添加朋友”中粘贴搜索号码关注。

    ②点击微信右上角的“+”,会出现“添加朋友”,进入“查找公众号”,输入以下公众号的名字,即可找到。


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd541d300001', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '互推0003', 'WXHTZH', '
    点击上面微信号关注我关注我哟

    定期推送帐号本土文化同城活动吃喝玩乐资讯八卦商家优惠等诸多优质内容,最接地气重服务的本地微信平台!关注我们妥妥没错!(广告合作:186XXXXXXXX)



    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd54d0b60002', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '互推0004', 'WXHTZH', '
    微推宝微信
    微信号:杭州微推宝(←长按复制)

    全力打造杭城微信营销第一品牌


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd55894d0003', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '互推0005', 'WXHTZH', '


    杭州推宝科技

    wxid

    直接选择需要的样式拷贝到需要的地方,修改其中的文字即可。如果需要跟换颜色或者有其他需求。


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd5613e50004', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '互推0006', 'WXHTZH', '

    推宝微信微信号:weixinhao

    欢迎使用推宝微信编辑器!


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd5754490005', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '分割线0001', 'WXFGX', '

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd58d8800006', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '分割线0002', 'WXFGX', '

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd59d2da0007', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '分割线0003', 'WXFGX', '

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd5a71180008', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '分割线0004', 'WXFGX', '

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd5b21670009', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '分割线0005', 'WXFGX', '

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd5ddb44000b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '原文引导0001', 'WXYWYD', '
    \r\n
    \r\n
    \r\n
    \r\n点击下方“阅读原文”查看更多\r\n
    \r\n
    \r\n↓↓↓\r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd5e75f1000c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '原文引导0002', 'WXYWYD', '

    点击左下角查看更多

    \r\n

    \r\n
    \r\n

    \r\n

    \r\n \r\n

    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd649681000d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '原文引导0003', 'WXYWYD', '
    \r\n点击“阅读原文”体验一次简单不过的微信编辑体验,不用太久,不用太难,瞬间即可!\r\n
    \r\n

    \r\n
    \r\n

    \r\n

    \r\n
    \r\n

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd65db39000e', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '其他0001', 'WXQT', '

    阅读本文用了: 秒,转发只需1秒

    ?转载是一种智慧?分享是一种美德?

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd66c488000f', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '其他0002', 'WXQT', '

    左右渐变


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd675c110010', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '其他0003', 'WXQT', '

    左渐变


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd67e5f50011', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '其他0004', 'WXQT', '

    从下到上


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd685d530012', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '其他0005', 'WXQT', '

    从上到下,圆润


    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd74800a0014', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '标题0023', 'WXBT', '

    序号.标题党

    \r\n


    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7673c40015', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0024', 'WXBT', '
    1、这里输入标题


    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7739610016', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0025', 'WXBT', '
    请输入标题
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd77d4880017', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0026', 'WXBT', '

    1第一标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd78b1c10018', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0027', 'WXBT', '

    深色边框标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7969b00019', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0028', 'WXBT', '
    一行短标题
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd79e32e001a', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0029', 'WXBT', '

    请输入标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7a7858001b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0030', 'WXBT', '
    微信编辑器
    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7b1a20001c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0031', 'WXBT', '
    一行短标题
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7bb487001d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0032', 'WXBT', '

    微信编辑器

    操作方便才是硬道理

    \r\n'); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7c92d9001e', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0033', 'WXBT', '

    请输入标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7d1b20001f', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0034', 'WXBT', '
    肆意

    青春,背景色你的地盘你做主

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7d8c2d0020', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0035', 'WXBT', '
    微信编辑器
    做最易用的编辑器
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7e098d0021', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0036', 'WXBT', '

    标题标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7e84ed0022', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0037', 'WXBT', '
    微信编辑器   
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7f10190023', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0038', 'WXBT', '

    请输入标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd7fb7420024', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0039', 'WXBT', '
    两字
    副标题1
    副标题2
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8037160025', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0040', 'WXBT', '

    极简标题

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd81193e0026', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0041', 'WXBT', '
    这里输入标题
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd81cd570027', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '标题0042', 'WXBT', '
    请输入标题
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8628850028', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0024', 'WXNRQ', '

    可在这输入内容,wwei微信编辑器,微信编辑首选。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd86eb350029', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0025', 'WXNRQ', '
    这输入标题

    可在这输入内容,wwei微信编辑器,微信编辑首选。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd878ac3002a', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0026', 'WXNRQ', '
    事项1

    请输入活动内容
    请输入活动内容
    ......

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd887c63002b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0027', 'WXNRQ', '
    请输入名称
    时间
    地点



    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd89181d002c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0028', 'WXNRQ', '

     

    2015年

    wwei更新日志

     

    5月1日

    微信图文编辑

    微信在线编辑器

     

    3月3日

    会员VIP功能

    新增了一大批功能

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd89b0a9002d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0029', 'WXNRQ', '
    四角宽边框的样式
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8a35c1002e', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0030', 'WXNRQ', '

    虚线框内容,作为摘要或段落内容。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8af659002f', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0031', 'WXNRQ', '

    边框阴影内容区域

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8b911f0030', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0032', 'WXNRQ', '

    标题文字

    内容描述.

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8c29da0031', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0033', 'WXNRQ', '
    1

    如何进入【微信编辑器】?

    网页搜索“微信编辑器”,点击第一条搜索结果即可进入编辑器页面

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8dfdc20032', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0034', 'WXNRQ', '

    读而思

    duersi

    编辑完成后,将内容复制粘贴到微信后台素材管理的编辑器中即可。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd8eba1f0033', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0035', 'WXNRQ', '
    公告通知  

    各位小伙伴们,微信图文美化编辑器正式上线了,欢迎大家多使用多提供反馈意见。使用谷歌与火狐浏览器,可获得与手机端一致的显示效果。ie内核的低版本浏览器可能有不兼容的情况


    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd9117560034', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0036', 'WXNRQ', '
    关于微信编辑器  

    非常好用的在线图文编辑工具    

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd92018b0035', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '微信0037', 'WXNRQ', '
    这里插入分号引用样式的内容。
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd9298e30036', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0038', 'WXNRQ', '
    公告

    本背景可以换色哦~


    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd931a120037', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0039', 'WXNRQ', '

    请输入内容内容。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd93dd0b0038', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0040', 'WXNRQ', '

    请输入内容内容。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd94e0ca0039', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0041', 'WXNRQ', '


    雪花动态背景样式,请输入文字

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd958d02003a', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0042', 'WXNRQ', '
    微信编辑器

    秒刷,最易用的图文排版工具

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd95fef4003b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0043', 'WXNRQ', '
    标题

    内容描述

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd9688c7003c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0044', 'WXNRQ', '

    秒刷

    选择需要应用样式的文字,然后选择要使用的样式,即可实现秒刷效果。秒刷支持所有样式,如有使用遇到问题,欢迎加入QQ群390183835,将问题反馈给我们

    回车使下沉占两行的文字独自为一个段落,然后再使用秒刷。建议下沉的为一个或者2个文字,不要多了。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd97145a003d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0045', 'WXNRQ', '
    Wwei Wwei 

    Wwei.cn平台是一个互联网运营平台,为运营者提供图文编辑工具,运营经验,收录公众号,定制开发微网站等服务,让运营更轻松高效。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd97b2e0003e', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0046', 'WXNRQ', '
    Tips

    我是图片不能换色哦

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbd983e95003f', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '内容0047', 'WXNRQ', '

    微信编辑器

    生而排版

    为你而美

    秒刷

    一键排版

    珍惜生命


    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda3444c0040', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0001', 'WXTP', '\r\n '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda458ca0041', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0002', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda4be320042', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0003', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda5228c0043', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0004', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda5b7cc0044', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0005', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda62cf70045', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0006', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda67cc30046', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0007', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda6be240047', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0008', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda721ea0048', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0009', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda768e00049', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0010', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda7bd01004a', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0011', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda81cdd004b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0012', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda86fce004c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0013', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda8f661004d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0014', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbda9bcb2004e', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0015', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdaa18c1004f', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0016', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdaa75f70050', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0017', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdaad1690051', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0018', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdab3b3f0052', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0019', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb012e00053', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '图片0020', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb0a9ea0054', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0021', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb0f0820055', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0022', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb13dbb0056', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0023', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb183e60057', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0024', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb1c6d10058', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0025', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb241f10059', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '图片0026', 'WXTP', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb5eb0d005a', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0004', 'WXGZYD', '
    点击下方“阅读原文”查看更多
    ↓↓↓
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb6a806005b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0005', 'WXGZYD', '
    点击下方“阅读原文”查看更多
    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb71627005c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0006', 'WXGZYD', '

    阅读本文用了:秒,转发只需1秒

    转载是一种智慧分享是一种美德❀

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb79d16005d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0007', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb82de6005e', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0008', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb89e3b005f', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0009', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb92c4d0060', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0010', 'WXGZYD', '

    点击标题下「蓝色微信名」可快速关注

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdb9a1750061', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '关注引导0011', 'WXGZYD', '

    关注一下又不会怀孕!

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbaa1b30062', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0012', 'WXGZYD', '

    点击“阅读全文”,了解详情

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbb88240063', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '关注引导0013', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbc61f70064', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0014', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbcd8eb0065', '管理员', 'admin', '2015-06-04 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '关注引导0015', 'WXGZYD', '
    广州教师微信
    微信号:广州教师(←长按复制)

    全力打造杭城微信营销第一品牌

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbe50db0066', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0016', 'WXGZYD', '
    如何关注

    ①复制“微信号或ID”,在“添加朋友”中粘贴搜索号码关注。

    ②点击微信右上角的“+”,会出现“添加朋友”,进入“查找公众号”,输入以下公众号的名字,即可找到。

    '); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbe9b710067', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0017', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbef6710068', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0018', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbf58560069', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0019', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdbfb636006a', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0020', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdc01c75006b', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0021', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdc085a3006c', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0022', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('402880cd4dbd534c014dbdc14efc006d', '管理员', 'admin', '2015-06-04 00:00:00', null, null, null, '关注引导0023', 'WXGZYD', ''); -INSERT INTO `weixin_template` VALUES ('8af235d44db84b91014db84b91e10000', '管理员', 'admin', '2015-06-03 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '关注引导0001', 'WXGZYD', '
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n 点击「箭头所指处」可快速关注\r\n
    \r\n
    \r\n 微信号:XXXXXXXXX\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n

    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n

    \r\n
    \r\n

    '); -INSERT INTO `weixin_template` VALUES ('8af235d44db84b91014db84c5aed0001', '管理员', 'admin', '2015-06-03 00:00:00', '管理员', 'admin', '2015-06-04 00:00:00', '内容0001', 'WXNRQ', '

    欢迎使用推宝微信编辑器!


    \r\n'); - --- ---------------------------- --- Table structure for `wx_act_invite` --- ---------------------------- -DROP TABLE IF EXISTS `wx_act_invite`; -CREATE TABLE `wx_act_invite` ( - `id` varchar(32) NOT NULL COMMENT 'ID', - `name` varchar(100) NOT NULL COMMENT '活动名称', - `begin_time` datetime default NULL COMMENT '活动开始时间', - `end_time` datetime default NULL COMMENT ' 活动结束时间', - `hdurl` varchar(300) default NULL COMMENT '入口地址', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='红包活动表'; - --- ---------------------------- --- Records of wx_act_invite --- ---------------------------- -INSERT INTO `wx_act_invite` VALUES ('D1D77E34ECAF4BB08EA3CDC08D708BB0', '12', '2016-04-07 14:40:32', '2016-04-07 14:40:34', '12'); -INSERT INTO `wx_act_invite` VALUES ('D64609E2A84341B682E7B6A7C5C07A10', '12', '2016-04-07 15:20:57', '2016-04-07 15:20:59', '12'); -INSERT INTO `wx_act_invite` VALUES ('DBBA9AC5DA3149BCA3A739AC58564A42', '1', '2016-04-09 10:44:07', '2016-04-09 10:44:08', '12'); -INSERT INTO `wx_act_invite` VALUES ('FD7C09923A7147C0A48A8C67EF4A74B7', '123', '2016-03-30 18:41:44', '2016-03-30 18:41:45', ''); - -- ---------------------------- -- Procedure structure for `formDataList` -- ---------------------------- diff --git a/docs/db/jeecg3.6.5-oracle11g-20160718.dmp b/docs/db/jeecg3.6.5-oracle11g-20160718.dmp new file mode 100644 index 0000000000000000000000000000000000000000..5db401e8857cf17a9b8e0a32faeba4728cfe5207 GIT binary patch literal 2111488 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�JpT$?9fVUAo# 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 R2HrF9o`Lra{J&w~{{ZXVxq$!x literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 1d026abe..793ed164 100644 --- a/pom.xml +++ b/pom.xml @@ -3,11 +3,11 @@ 4.0.0 org.jeecgframework jeecg - 3.6.4 + 3.6.5 war UTF-8 - 3.6-SNAPSHOT + 3.6.1-SNAPSHOT 1.6-SNAPSHOT 16.0.1 @@ -937,7 +937,7 @@ ${cxf.version} - + org.p3framework jeecg-p3-core @@ -949,13 +949,21 @@ 1.1-SNAPSHOT jar + org.p3framework jeecg-p3-biz-demo - 1.0.1 + 1.0.2 - - + + org.p3framework + jeecg-p3-biz-mail + 1.0.0 + jar + compile + + - - + --> + diff --git a/src/main/java/org/jeecgframework/core/enums/OnlineGenerateEnum.java b/src/main/java/org/jeecgframework/core/enums/OnlineGenerateEnum.java new file mode 100644 index 00000000..1b143cc8 --- /dev/null +++ b/src/main/java/org/jeecgframework/core/enums/OnlineGenerateEnum.java @@ -0,0 +1,98 @@ +package org.jeecgframework.core.enums; + +import org.jeecgframework.core.util.StringUtil; + + +/** + * 代码生成模板风格配置 + * + * @author zhoujf + */ +public enum OnlineGenerateEnum { + + // + ONLINE_03("03","Table风格(form)","onetomany", "system"), + ONLINE_06("06","bootstrap风格(form)","onetomany","system"), + + ONLINE_01("01","Table风格(form)","single", "system"), + ONLINE_02("02","Div风格(form)","single", "system"), + ONLINE_04("04","自定义word(form)","single", "system"), + ONLINE_05("05","bootstrap风格(form)","single", "system"), + /*ONLINE_07("07","nopopform风格","single","system"),*/ + ONLINE_NOPOP_SINGLE("nopop.single","nopopform风格","single","ext"), + + ONLINE_DEFAULT_SINGLE("default.single","用户扩展风格示例","single","ext"), + ONLINE_DEFAULT_ONETOMANY("default.onetomany","用户扩展风格示例","onetomany","ext"); + + + /** + * 风格 + */ + private String code; + /** + * 描述 + */ + private String desc; + + /** + * 表单类型 single 单表 ,onetomany 一对多 + */ + private String formType; + /** + * 版本 system 系统, ext 用户扩展 + */ + private String version; + + + private OnlineGenerateEnum(String code, String desc, String formType, String version) { + this.code = code; + this.desc = desc; + this.formType = formType; + this.version = version; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getFormType() { + return formType; + } + + public void setFormType(String formType) { + this.formType = formType; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public static OnlineGenerateEnum toEnum(String code) { + if(StringUtil.isEmpty(code)){ + return null; + } + for(OnlineGenerateEnum item : OnlineGenerateEnum.values()) { + if(item.getCode().equals(code)) { + return item; + } + } + return null; + } + +} diff --git a/src/main/java/org/jeecgframework/core/extend/hqlsearch/HqlGenerateUtil.java b/src/main/java/org/jeecgframework/core/extend/hqlsearch/HqlGenerateUtil.java index 25788c44..b269bc6c 100644 --- a/src/main/java/org/jeecgframework/core/extend/hqlsearch/HqlGenerateUtil.java +++ b/src/main/java/org/jeecgframework/core/extend/hqlsearch/HqlGenerateUtil.java @@ -292,7 +292,6 @@ public class HqlGenerateUtil { //---author:jg_xugj----start-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 //这个方法建议去掉,直接调用ResourceUtil.converRuleValue(ruleValue) String value = ResourceUtil.converRuleValue(ruleValue); - //---author:jg_xugj----end-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 return value!= null ? value : ruleValue; } @@ -399,8 +398,6 @@ public class HqlGenerateUtil { } return sb.toString(); } - -// --author:龙金波 ------end---date:20150628--------for:sql组装 /** * 根据字段名称,获取字段的类型字符串 * return: java.lang.Integer @@ -440,7 +437,6 @@ public class HqlGenerateUtil { } return column; } -// --author:陈璞 ------end---date:20150612--------for:sql组装 diff --git a/src/main/java/org/jeecgframework/core/extend/hqlsearch/SysContextSqlConvert.java b/src/main/java/org/jeecgframework/core/extend/hqlsearch/SysContextSqlConvert.java index b4d935d4..faecff6e 100644 --- a/src/main/java/org/jeecgframework/core/extend/hqlsearch/SysContextSqlConvert.java +++ b/src/main/java/org/jeecgframework/core/extend/hqlsearch/SysContextSqlConvert.java @@ -51,7 +51,6 @@ public class SysContextSqlConvert { String tempValue = null; //---author:jg_xugj----start-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 tempValue = ResourceUtil.converRuleValue(ValueTemp); - //---author:jg_xugj----end-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 if(tempValue!=null){ tempValue = tempValue + moshi; diff --git a/src/main/java/org/jeecgframework/core/interceptors/AuthInterceptor.java b/src/main/java/org/jeecgframework/core/interceptors/AuthInterceptor.java index b6b41793..fdac5c01 100644 --- a/src/main/java/org/jeecgframework/core/interceptors/AuthInterceptor.java +++ b/src/main/java/org/jeecgframework/core/interceptors/AuthInterceptor.java @@ -154,7 +154,6 @@ public class AuthInterceptor implements HandlerInterceptor { //---author:jg_xugj----start-----date:20151210--------for:#781 【oracle兼容】兼容问题fun.operation!='' 在oracle 数据下不正确 String hasOperSql="SELECT operation FROM t_s_role_function fun, t_s_role_user role WHERE " + "fun.functionid='"+functionId+"' AND fun.operation is not null AND fun.roleid=role.roleid AND role.userid='"+client.getUser().getId()+"' "; -//---author:jg_xugj----end-----date:20151210--------for:#781 【oracle兼容】兼容问题fun.operation!='' 在oracle 数据下不正确 List hasOperList = this.systemService.findListbySql(hasOperSql); for(String operationIds:hasOperList){ for(String operationId:operationIds.split(",")){ diff --git a/src/main/java/org/jeecgframework/core/util/DynamicDBUtil.java b/src/main/java/org/jeecgframework/core/util/DynamicDBUtil.java index bb3e7ef8..fc14aa50 100644 --- a/src/main/java/org/jeecgframework/core/util/DynamicDBUtil.java +++ b/src/main/java/org/jeecgframework/core/util/DynamicDBUtil.java @@ -25,7 +25,11 @@ public class DynamicDBUtil { String driverClassName = dynamicSourceEntity.getDriverClass(); String url = dynamicSourceEntity.getUrl(); String dbUser = dynamicSourceEntity.getDbUser(); - String dbPassword = dynamicSourceEntity.getDbPassword(); + + //设置数据源的时候,要重新解密 + //String dbPassword = dynamicSourceEntity.getDbPassword(); + String dbPassword = PasswordUtil.decrypt(dynamicSourceEntity.getDbPassword(), dynamicSourceEntity.getDbUser(), PasswordUtil.getStaticSalt());//解密字符串; + dataSource.setDriverClassName(driverClassName); dataSource.setUrl(url); diff --git a/src/main/java/org/jeecgframework/core/util/PasswordUtil.java b/src/main/java/org/jeecgframework/core/util/PasswordUtil.java index 06a00ba9..f8865b64 100644 --- a/src/main/java/org/jeecgframework/core/util/PasswordUtil.java +++ b/src/main/java/org/jeecgframework/core/util/PasswordUtil.java @@ -187,8 +187,8 @@ public class PasswordUtil { } } System.out.print(-1%2==0); - String str = "admin"; - String password = "123456"; + String str = "root"; + String password = "root"; org.jeecgframework.core.util.LogUtil.info("明文:" + str); org.jeecgframework.core.util.LogUtil.info("密码:" + password); @@ -199,6 +199,9 @@ public class PasswordUtil { org.jeecgframework.core.util.LogUtil.info("密文:" + ciphertext); String plaintext = PasswordUtil.decrypt(ciphertext, password, salt); org.jeecgframework.core.util.LogUtil.info("明文:" + plaintext); + + String result = PasswordUtil.decrypt("ea3d519525358e00", "root", salt); + org.jeecgframework.core.util.LogUtil.info("明文:" + result); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/org/jeecgframework/core/util/ResourceUtil.java b/src/main/java/org/jeecgframework/core/util/ResourceUtil.java index 6c5215c7..ca45fa68 100644 --- a/src/main/java/org/jeecgframework/core/util/ResourceUtil.java +++ b/src/main/java/org/jeecgframework/core/util/ResourceUtil.java @@ -304,7 +304,6 @@ public class ResourceUtil { HttpSession session = ContextHolderUtils.getSession(); returnValue = (String) session.getAttribute(key); } -//---author:jg_xugj----end-----date:20151226--------for:修改bug 1、key.contains("${") 应改为 key.contains("#{") 2、StringUtil.isEmpty(key) 判断 不为空 //结果加上${} 后面的值 if(returnValue!=null){returnValue = returnValue + moshi;} @@ -324,7 +323,6 @@ public class ResourceUtil { value = ResourceUtil.getUserSystemData(ruleValue); return value!= null ? value : ruleValue; } - //---author:jg_xugj----end-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 public static void main(String[] args) { org.jeecgframework.core.util.LogUtil.info(getPorjectPath()); diff --git a/src/main/java/org/jeecgframework/tag/core/easyui/BaseTag.java b/src/main/java/org/jeecgframework/tag/core/easyui/BaseTag.java index f47ad9a0..e8f4cfd3 100644 --- a/src/main/java/org/jeecgframework/tag/core/easyui/BaseTag.java +++ b/src/main/java/org/jeecgframework/tag/core/easyui/BaseTag.java @@ -108,6 +108,7 @@ public class BaseTag extends TagSupport { sb.append(SysThemesUtil.getEasyUiIconTheme(sysThemesEnum)); // sb.append(""); sb.append(""); + sb.append(""); sb.append(""); sb.append(""); sb.append(""); diff --git a/src/main/java/org/jeecgframework/tag/core/easyui/ChooseTag.java b/src/main/java/org/jeecgframework/tag/core/easyui/ChooseTag.java index de38cafb..a0d75465 100644 --- a/src/main/java/org/jeecgframework/tag/core/easyui/ChooseTag.java +++ b/src/main/java/org/jeecgframework/tag/core/easyui/ChooseTag.java @@ -72,7 +72,6 @@ public class ChooseTag extends TagSupport { sb.append("var initValue = ").append("$(\'#" + hiddenName + "\').val();"); sb.append("url += ").append("'&ids='+initValue;"); } - // --author:zhoujf------end-----date:20150531--------for: 编辑用户,选择角色,弹出的角色列表页面,默认没选中 标签扩展 sb.append("if(typeof(windowapi) == 'undefined'){"); sb.append("$.dialog({"); sb.append("content: \'url:\'+url,"); diff --git a/src/main/java/org/jeecgframework/tag/core/easyui/DataGridColumnTag.java b/src/main/java/org/jeecgframework/tag/core/easyui/DataGridColumnTag.java index 2a43768c..bbe32055 100644 --- a/src/main/java/org/jeecgframework/tag/core/easyui/DataGridColumnTag.java +++ b/src/main/java/org/jeecgframework/tag/core/easyui/DataGridColumnTag.java @@ -54,6 +54,9 @@ public class DataGridColumnTag extends TagSupport { private String extendParams;//扩展参数 private String langArg; protected String editor;//高级查询用的编辑器 + + private String defaultVal = "";//列默认值 + public String getEditor() { return editor; } @@ -66,7 +69,7 @@ public class DataGridColumnTag extends TagSupport { Tag t = findAncestorWithClass(this, DataGridTag.class); DataGridTag parent = (DataGridTag) t; - parent.setColumn(title,field,width,showLen,rowspan,colspan,align,sortable,checkbox,formatter,formatterjs,hidden,replace,treefield,image,imageSize,query,url,funname,arg,queryMode, dictionary,popup,frozenColumn,extend,style,downloadName,autocomplete,extendParams,editor); + parent.setColumn(title,field,width,showLen,rowspan,colspan,align,sortable,checkbox,formatter,formatterjs,hidden,replace,treefield,image,imageSize,query,url,funname,arg,queryMode, dictionary,popup,frozenColumn,extend,style,downloadName,autocomplete,extendParams,editor,defaultVal); return EVAL_PAGE; } @@ -217,5 +220,15 @@ public class DataGridColumnTag extends TagSupport { public void setShowLen(Integer showLen) { this.showLen = showLen; } + + public String getDefaultVal() { + return defaultVal; + } + + public void setDefaultVal(String defaultVal) { + this.defaultVal = defaultVal; + } + + } diff --git a/src/main/java/org/jeecgframework/tag/core/easyui/DataGridTag.java b/src/main/java/org/jeecgframework/tag/core/easyui/DataGridTag.java index 73de1ade..eb437472 100644 --- a/src/main/java/org/jeecgframework/tag/core/easyui/DataGridTag.java +++ b/src/main/java/org/jeecgframework/tag/core/easyui/DataGridTag.java @@ -294,7 +294,7 @@ public class DataGridTag extends TagSupport { boolean query, String url, String funname, String arg,String queryMode, String dictionary,boolean popup, boolean frozenColumn,String extend, - String style,String downloadName,boolean isAuto,String extendParams,String editor) { + String style,String downloadName,boolean isAuto,String extendParams,String editor,String defaultVal) { DataGridColumn dataGridColumn = new DataGridColumn(); dataGridColumn.setAlign(align); dataGridColumn.setCheckbox(checkbox); @@ -328,6 +328,9 @@ public class DataGridTag extends TagSupport { dataGridColumn.setAutocomplete(isAuto); dataGridColumn.setExtendParams(extendParams); dataGridColumn.setEditor(editor); + + dataGridColumn.setDefaultVal(defaultVal); + columnList.add(dataGridColumn); Set operationCodes = (Set) super.pageContext.getRequest().getAttribute(Globals.OPERATIONCODES); @@ -476,7 +479,6 @@ public class DataGridTag extends TagSupport { out.print(end().toString()); out.flush(); // } -//-----author:jg_longjb----end-----date:20150408--------for:读取cookie主题样式 ace界面下table的输出 }else{ out.print(datatables().toString()); out.flush(); @@ -601,6 +603,7 @@ public class DataGridTag extends TagSupport { if (title != null) { sb.append("title: \'" + title + "\',"); } + if(autoLoadData) sb.append("url:\'" + actionUrl + "&field=" + fields + "\',"); @@ -617,6 +620,24 @@ public class DataGridTag extends TagSupport { } else { sb.append("fit:false,"); } + + if(hasQueryColum(columnList)){ + String queryParams = ""; + queryParams += "queryParams:{"; + for (DataGridColumn col : columnList) { + if (col.isQuery()&&col.getDefaultVal()!=null&&!col.getDefaultVal().trim().equals("")) { + //sb.append("queryParams:{documentTitle:'woniu'},"); + queryParams += col.getField()+":'"+col.getDefaultVal()+"',"; + } + } + if(queryParams.indexOf(",")>-1){ + queryParams = queryParams.substring(0, queryParams.length()-1); + } + queryParams += "},"; + //System.out.println("queryParams===="+queryParams); + sb.append(queryParams); + } + sb.append(StringUtil.replaceAll("loadMsg: \'{0}\',", "{0}", MutiLangUtil.getMutiLangInstance().getLang("common.data.loading"))); sb.append("pageSize: " + pageSize + ","); sb.append("pagination:" + pagination + ","); @@ -1255,7 +1276,6 @@ public class DataGridTag extends TagSupport { sb.append(" if(value.length<=");sb.append(column.getShowLen());sb.append(") {return value}"); sb.append(" else{ return ''+ value.substring(0,");sb.append(column.getShowLen());sb.append(")+'...';}}"); } - //author:xugj-----end-----date:20160512 ---- for: TASK #1080 【UI标签改造】t:dgCol 显示内容长度控制 else if (columnValueList.size() > 0 && !column.getField().equals("opt")) {// 值替換 String testString = ""; for (ColumnValue columnValue : columnValueList) { @@ -1817,7 +1837,6 @@ public class DataGridTag extends TagSupport { } return sb; } - //-----author:jg_longjb----end-----date:20150408--------for:新增封装查询器组件- //-----author:jg_longjb----start-----date:20150427--------for:新增高级查询器queryBuilder diff --git a/src/main/java/org/jeecgframework/tag/vo/easyui/DataGridColumn.java b/src/main/java/org/jeecgframework/tag/vo/easyui/DataGridColumn.java index 6db5c3ff..bd0233fc 100644 --- a/src/main/java/org/jeecgframework/tag/vo/easyui/DataGridColumn.java +++ b/src/main/java/org/jeecgframework/tag/vo/easyui/DataGridColumn.java @@ -42,6 +42,10 @@ public class DataGridColumn { protected boolean autocomplete;//自动补全 protected String extendParams;//扩展参数,easyui有的,但是jeecg没有的参数进行扩展 protected String editor;//高级查询用的编辑器 + + private String defaultVal = "";//列默认值 + + public String getEditor() { return editor; } @@ -286,6 +290,14 @@ public class DataGridColumn { this.formatterjs = formatterjs; } + public String getDefaultVal() { + return defaultVal; + } + public void setDefaultVal(String defaultVal) { + this.defaultVal = defaultVal; + } + + } diff --git a/src/main/java/org/jeecgframework/web/cgform/common/spring-mvc-cgform.xml b/src/main/java/org/jeecgframework/web/cgform/common/spring-mvc-cgform.xml index 62ca4823..9077dbcd 100644 --- a/src/main/java/org/jeecgframework/web/cgform/common/spring-mvc-cgform.xml +++ b/src/main/java/org/jeecgframework/web/cgform/common/spring-mvc-cgform.xml @@ -23,7 +23,6 @@ - @@ -39,7 +38,6 @@ - diff --git a/src/main/java/org/jeecgframework/web/cgform/controller/autoform/AutoFormController.java b/src/main/java/org/jeecgframework/web/cgform/controller/autoform/AutoFormController.java index a940f1a9..6268792f 100644 --- a/src/main/java/org/jeecgframework/web/cgform/controller/autoform/AutoFormController.java +++ b/src/main/java/org/jeecgframework/web/cgform/controller/autoform/AutoFormController.java @@ -742,7 +742,6 @@ public class AutoFormController extends BaseController { if(!flag){ hqlTable.append(autoFormDbFieldEntity.getFieldName()+","); } - //author:jg_renjie----end-----date:20160228--------for:TASK #704 【表单填报预览】针对特殊类型数据,需要进行转换,比如blob } hqlTable.deleteCharAt(hqlTable.length()-1).append(" from "+formDb.getDbTableName()); @@ -873,8 +872,6 @@ public class AutoFormController extends BaseController { } return data; } - - //author:jg_renjie----end-----date:20160228--------for:TASK #704 【表单填报预览】针对特殊类型数据,需要进行转换,比如blob /** * * @param diff --git a/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListController.java b/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListController.java index 10c7db49..7dc0394a 100644 --- a/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListController.java +++ b/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListController.java @@ -640,7 +640,6 @@ public class CgAutoListController extends BaseController{ sysVarName =sysVarName.replace("sys.", ""); //---author:jg_xugj----start-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 return ResourceUtil.converRuleValue(sysVarName); - //---author:jg_xugj----end-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 }else{ return sysVarName; } diff --git a/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListRestController.java b/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListRestController.java index 5cf70906..2a4f5d1e 100644 --- a/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListRestController.java +++ b/src/main/java/org/jeecgframework/web/cgform/controller/autolist/CgAutoListRestController.java @@ -447,7 +447,6 @@ public class CgAutoListRestController extends BaseController{ sysVarName =sysVarName.replace("sys.", ""); //---author:jg_xugj----start-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 return ResourceUtil.converRuleValue(sysVarName); - //---author:jg_xugj----end-----date:20151226--------for:#814 【数据权限】扩展支持写表达式,通过session取值 }else{ return sysVarName; diff --git a/src/main/java/org/jeecgframework/web/cgform/controller/generate/GenerateController.java b/src/main/java/org/jeecgframework/web/cgform/controller/generate/GenerateController.java index 82958826..d63493a1 100644 --- a/src/main/java/org/jeecgframework/web/cgform/controller/generate/GenerateController.java +++ b/src/main/java/org/jeecgframework/web/cgform/controller/generate/GenerateController.java @@ -26,14 +26,17 @@ import org.jeecgframework.codegenerate.util.CodeResourceUtil; import org.jeecgframework.codegenerate.util.CodeStringUtils; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.model.json.AjaxJson; +import org.jeecgframework.core.enums.OnlineGenerateEnum; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.web.cgform.entity.button.CgformButtonEntity; import org.jeecgframework.web.cgform.entity.button.CgformButtonSqlEntity; import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity; import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity; +import org.jeecgframework.web.cgform.entity.enhance.CgformEnhanceJavaEntity; import org.jeecgframework.web.cgform.entity.enhance.CgformEnhanceJsEntity; import org.jeecgframework.web.cgform.entity.generate.GenerateEntity; import org.jeecgframework.web.cgform.entity.generate.GenerateSubListEntity; +import org.jeecgframework.web.cgform.service.build.DataBaseService; import org.jeecgframework.web.cgform.service.button.CgformButtonServiceI; import org.jeecgframework.web.cgform.service.button.CgformButtonSqlServiceI; import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI; @@ -74,6 +77,8 @@ public class GenerateController extends BaseController { private CgformEnhanceJsServiceI cgformEnhanceJsService; @Autowired private TempletContextWord templetContextWord; + @Autowired + private DataBaseService dataBaseService; /** * 代码生成配置页面 * @param request @@ -91,6 +96,7 @@ public class GenerateController extends BaseController { Map entityNameMap = new HashMap(0); if(cgFormHead.getJformType()==1 || cgFormHead.getJformType()==3){ //如果是单表或者附表,则进入单表模型 + request.setAttribute("jspModeList", getOnlineGenerateEnum("single"));// 表单风格 returnModelAndView = "jeecg/cgform/generate/single"; }else{ //如果是主表,则进入一对多模型 @@ -103,6 +109,7 @@ public class GenerateController extends BaseController { entityNameMap.put(subHead.getTableName(), JeecgReadTable.formatFieldCapital(subHead.getTableName())); } } + request.setAttribute("jspModeList", getOnlineGenerateEnum("onetomany"));// 表单风格 request.setAttribute("subTableList", subTableList); returnModelAndView = "jeecg/cgform/generate/one2many"; } @@ -130,6 +137,16 @@ public class GenerateController extends BaseController { request.setAttribute("entityNames",entityNameMap ); return new ModelAndView(returnModelAndView); } + + private List getOnlineGenerateEnum(String type){ + List list = new ArrayList(); + for(OnlineGenerateEnum item : OnlineGenerateEnum.values()) { + if(item.getFormType().equals(type)) { + list.add(item); + } + } + return list; + } /** * 代码生成执行-单表 * @param generateEntity @@ -156,17 +173,28 @@ public class GenerateController extends BaseController { boolean tableexist = new JeecgReadTable().checkTableExist(tableName); if(tableexist){ - //step.3 判断是不是用用户自定义界面 - CgformCodeGenerate generate = new CgformCodeGenerate(createFileProperty,generateEntity); - if(createFileProperty.getJspMode().equals("04")){ - String formhtml = templetContextWord.autoFormGenerateHtml(tableName, null, null); - generate.setCgformJspHtml(formhtml); + OnlineGenerateEnum modeEnum = OnlineGenerateEnum.toEnum(createFileProperty.getJspMode()); + if(modeEnum!=null){ + if("system".equals(modeEnum.getVersion())){ + + //step.3 判断是不是用用户自定义界面 + CgformCodeGenerate generate = new CgformCodeGenerate(createFileProperty,generateEntity); + if(createFileProperty.getJspMode().equals("04")){ + String formhtml = templetContextWord.autoFormGenerateHtml(tableName, null, null); + generate.setCgformJspHtml(formhtml); + } + + //step.4 调用代码生成器 + generate.generateToFile(); + }else if("ext".equals(modeEnum.getVersion())){ + CgformCodeGenerate generate = new CgformCodeGenerate(createFileProperty,generateEntity); + generate.generateToFileUserDefined(); + } + j.setMsg(ftlDescription+":功能生成成功,请刷新项目重启,菜单访问路径:"+CodeStringUtils.getInitialSmall(generateEntity.getEntityName())+"Controller.do?list"); + }else{ + j.setMsg("代码生成器不支持该页面风格"); } - //step.4 调用代码生成器 - generate.generateToFile(); - - j.setMsg(ftlDescription+":功能生成成功,请刷新项目重启,菜单访问路径:"+CodeStringUtils.getInitialSmall(generateEntity.getEntityName())+"Controller.do?list"); }else{ j.setMsg("表["+tableName+"] 在数据库中,不存在"); } @@ -241,16 +269,27 @@ public class GenerateController extends BaseController { subsG.put(sTableName, subG); } codeParamEntityIn.setSubTabParam(subTabParamIn); - //step.5 一对多(父子表)数据模型,代码生成 - if("06".equals(jspMode)){ - CgformCodeGenerateOneToMany.oneToManyCreateBootstap(subTabParamIn, codeParamEntityIn,mainG,subsG); + OnlineGenerateEnum modeEnum = OnlineGenerateEnum.toEnum(jspMode); + if(modeEnum!=null){ + if("system".equals(modeEnum.getVersion())){ + //step.5 一对多(父子表)数据模型,代码生成 + + if("06".equals(jspMode)){ + CgformCodeGenerateOneToMany.oneToManyCreateBootstap(subTabParamIn, codeParamEntityIn,mainG,subsG); + }else{ + CgformCodeGenerateOneToMany.oneToManyCreate(subTabParamIn, codeParamEntityIn,mainG,subsG); + } + + //j.setMsg("成功生成增删改查->功能:"+codeParamEntityIn.getFtlDescription()); + }else if("ext".equals(modeEnum.getVersion())){ + CgformCodeGenerateOneToMany.oneToManyCreateUserDefined(jspMode,subTabParamIn, codeParamEntityIn,mainG,subsG); + } + j.setMsg(codeParamEntityIn.getFtlDescription()+":功能生成成功,请刷新项目重启,菜单访问路径:"+CodeStringUtils.getInitialSmall(codeParamEntityIn.getEntityName())+"Controller.do?list"); }else{ - CgformCodeGenerateOneToMany.oneToManyCreate(subTabParamIn, codeParamEntityIn,mainG,subsG); + j.setMsg("代码生成器不支持该页面风格"); } - //j.setMsg("成功生成增删改查->功能:"+codeParamEntityIn.getFtlDescription()); - j.setMsg(codeParamEntityIn.getFtlDescription()+":功能生成成功,请刷新项目重启,菜单访问路径:"+CodeStringUtils.getInitialSmall(codeParamEntityIn.getEntityName())+"Controller.do?list"); }catch (Exception e) { e.printStackTrace(); j.setMsg(e.getMessage()); @@ -314,6 +353,17 @@ public class GenerateController extends BaseController { buttonSqlMap.put("update", cbsUpdate==null?new String[]{}:cbsUpdate.getCgbSqlStr().replaceAll("(\r\n|\r|\n|\n\r)", "").split(";")); CgformButtonSqlEntity cbsDelete = cgformButtonSqlService.getCgformButtonSqlByCodeFormId("delete", cgFormHead.getId()); buttonSqlMap.put("delete", cbsDelete==null?new String[]{}:cbsDelete.getCgbSqlStr().replaceAll("(\r\n|\r|\n|\n\r)", "").split(";")); + //按钮java增强 + Map buttonJavaMap = new LinkedHashMap(); + List javaList = dataBaseService.getCgformEnhanceJavaEntityByFormId(cgFormHead.getId()); + if(javaList!=null&&javaList.size()>0){ + for(CgformEnhanceJavaEntity e:javaList){ + if(StringUtil.isNotEmpty(e.getCgJavaValue())){ + buttonJavaMap.put(e.getButtonCode(), e); + } + } + } + //JS增强-列表 CgformEnhanceJsEntity listJs = cgformEnhanceJsService.getCgformEnhanceJsByTypeFormId("list", cgFormHead.getId()); CgformEnhanceJsEntity listJsCopy = null; @@ -342,6 +392,7 @@ public class GenerateController extends BaseController { } generateEntity.setButtons(buttons); generateEntity.setButtonSqlMap(buttonSqlMap); + generateEntity.setButtonJavaMap(buttonJavaMap); generateEntity.setCgFormHead(cgFormHead); generateEntity.setListJs(listJsCopy); generateEntity.setFormJs(formJsCopy); diff --git a/src/main/java/org/jeecgframework/web/cgform/entity/generate/GenerateEntity.java b/src/main/java/org/jeecgframework/web/cgform/entity/generate/GenerateEntity.java index 287b0578..f244e4b7 100644 --- a/src/main/java/org/jeecgframework/web/cgform/entity/generate/GenerateEntity.java +++ b/src/main/java/org/jeecgframework/web/cgform/entity/generate/GenerateEntity.java @@ -9,6 +9,7 @@ import java.util.Map; import org.jeecgframework.web.cgform.entity.button.CgformButtonEntity; import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity; +import org.jeecgframework.web.cgform.entity.enhance.CgformEnhanceJavaEntity; import org.jeecgframework.web.cgform.entity.enhance.CgformEnhanceJsEntity; /** @@ -56,6 +57,10 @@ public class GenerateEntity implements java.io.Serializable{ * 表单Js增强 */ private CgformEnhanceJsEntity formJs; + /** + * 表单java增强 + */ + private Map buttonJavaMap; public String getEntityPackage() { return entityPackage; @@ -182,7 +187,15 @@ public class GenerateEntity implements java.io.Serializable{ public Object clone() throws CloneNotSupportedException { return super.clone(); } - + + public Map getButtonJavaMap() { + return buttonJavaMap; + } + + public void setButtonJavaMap(Map buttonJavaMap) { + this.buttonJavaMap = buttonJavaMap; + } + /** * 深度复制 * @return diff --git a/src/main/java/org/jeecgframework/web/cgform/service/build/DataBaseService.java b/src/main/java/org/jeecgframework/web/cgform/service/build/DataBaseService.java index dc2ffe5e..8cb392ea 100644 --- a/src/main/java/org/jeecgframework/web/cgform/service/build/DataBaseService.java +++ b/src/main/java/org/jeecgframework/web/cgform/service/build/DataBaseService.java @@ -3,6 +3,7 @@ package org.jeecgframework.web.cgform.service.build; import java.util.List; import java.util.Map; +import org.jeecgframework.web.cgform.entity.enhance.CgformEnhanceJavaEntity; import org.jeecgframework.web.cgform.exception.BusinessException; /** @@ -39,4 +40,6 @@ public interface DataBaseService { */ public void executeJavaExtend(String formId, String buttonCode,Map data) throws BusinessException; + public List getCgformEnhanceJavaEntityByFormId(String formId); + } diff --git a/src/main/java/org/jeecgframework/web/cgform/service/impl/build/DataBaseServiceImpl.java b/src/main/java/org/jeecgframework/web/cgform/service/impl/build/DataBaseServiceImpl.java index 443ee65f..74592c3b 100644 --- a/src/main/java/org/jeecgframework/web/cgform/service/impl/build/DataBaseServiceImpl.java +++ b/src/main/java/org/jeecgframework/web/cgform/service/impl/build/DataBaseServiceImpl.java @@ -641,5 +641,13 @@ public class DataBaseServiceImpl extends CommonServiceImpl implements DataBaseSe return null; } + public List getCgformEnhanceJavaEntityByFormId( String formId) { + StringBuilder hql = new StringBuilder(""); + hql.append(" from CgformEnhanceJavaEntity t"); + hql.append(" where t.formId='").append(formId).append("'"); + List list = this.findHql(hql.toString()); + return list; + } + } diff --git a/src/main/java/org/jeecgframework/web/onlinedoc/controller/OnlineDocController.java b/src/main/java/org/jeecgframework/web/onlinedoc/controller/OnlineDocController.java deleted file mode 100644 index ca5870c4..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedoc/controller/OnlineDocController.java +++ /dev/null @@ -1,345 +0,0 @@ -package org.jeecgframework.web.onlinedoc.controller; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.log4j.Logger; -import org.jeecgframework.core.common.controller.BaseController; -import org.jeecgframework.core.common.exception.BusinessException; -import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; -import org.jeecgframework.core.common.model.json.AjaxJson; -import org.jeecgframework.core.common.model.json.DataGrid; -import org.jeecgframework.core.constant.Globals; -import org.jeecgframework.core.util.ExceptionUtil; -import org.jeecgframework.core.util.MyBeanUtils; -import org.jeecgframework.core.util.ResourceUtil; -import org.jeecgframework.core.util.StringUtil; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; -import org.jeecgframework.tag.core.easyui.TagUtil; -import org.jeecgframework.web.onlinedoc.entity.OnlineDocEntity; -import org.jeecgframework.web.onlinedoc.service.OnlineDocServiceI; -import org.jeecgframework.web.system.service.SystemService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; - - - -/** - * @Title: Controller - * @Description: 在线文档 - * @author onlineGenerator - * @date 2016-03-19 15:49:59 - * @version V1.0 - * - */ -//@Scope("prototype") -@Controller -@RequestMapping("/onlineDocController") -public class OnlineDocController extends BaseController { - /** - * Logger for this class - */ - private static final Logger logger = Logger.getLogger(OnlineDocController.class); - - @Autowired - private OnlineDocServiceI onlineDocService; - @Autowired - private SystemService systemService; - - - /** - * 在线文档列表 页面跳转 - * - * @return - */ - @RequestMapping(params = "list") - public ModelAndView list(HttpServletRequest request) { - return new ModelAndView("jeecg/onlinedoc/onlineDocList"); - } - - /** - * easyui AJAX请求数据 - * - * @param request - * @param response - * @param dataGrid - * @param user - */ - - @RequestMapping(params = "datagrid") - public void datagrid(OnlineDocEntity onlineDoc,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { - CriteriaQuery cq = new CriteriaQuery(OnlineDocEntity.class, dataGrid); - //查询条件组装器 - org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, onlineDoc, request.getParameterMap()); - try{ - //自定义追加查询条件 - }catch (Exception e) { - throw new BusinessException(e.getMessage()); - } - cq.add(); - this.onlineDocService.getDataGridReturn(cq, true); - TagUtil.datagrid(response, dataGrid); - } - - /** - * 删除在线文档 - * - * @return - */ - @RequestMapping(params = "doDel") - @ResponseBody - public AjaxJson doDel(OnlineDocEntity onlineDoc, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - onlineDoc = systemService.getEntity(OnlineDocEntity.class, onlineDoc.getId()); - message = "在线文档删除成功"; - try{ - onlineDocService.delete(onlineDoc); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "在线文档删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 批量删除在线文档 - * - * @return - */ - @RequestMapping(params = "doBatchDel") - @ResponseBody - public AjaxJson doBatchDel(String ids,HttpServletRequest request){ - String message = null; - AjaxJson j = new AjaxJson(); - message = "在线文档删除成功"; - try{ - for(String id:ids.split(",")){ - OnlineDocEntity onlineDoc = systemService.getEntity(OnlineDocEntity.class, - id - ); - onlineDocService.delete(onlineDoc); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - } - }catch(Exception e){ - e.printStackTrace(); - message = "在线文档删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 添加在线文档 - * - * @param ids - * @return - */ - @RequestMapping(params = "doAdd") - @ResponseBody - public AjaxJson doAdd(OnlineDocEntity onlineDoc, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - message = "在线文档添加成功"; - try{ - onlineDocService.save(onlineDoc); - systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "在线文档添加失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 更新在线文档 - * - * @param ids - * @return - */ - @RequestMapping(params = "doUpdate") - @ResponseBody - public AjaxJson doUpdate(OnlineDocEntity onlineDoc, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - message = "在线文档更新成功"; - OnlineDocEntity t = onlineDocService.get(OnlineDocEntity.class, onlineDoc.getId()); - try { - MyBeanUtils.copyBeanNotNull2Bean(onlineDoc, t); - onlineDocService.saveOrUpdate(t); - systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); - } catch (Exception e) { - e.printStackTrace(); - message = "在线文档更新失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 在线文档新增页面跳转 - * - * @return - */ - @RequestMapping(params = "goAdd") - public ModelAndView goAdd(OnlineDocEntity onlineDoc, HttpServletRequest req) { - if (StringUtil.isNotEmpty(onlineDoc.getId())) { - onlineDoc = onlineDocService.getEntity(OnlineDocEntity.class, onlineDoc.getId()); - req.setAttribute("onlineDocPage", onlineDoc); - } - return new ModelAndView("jeecg/onlinedoc/onlineDoc-add"); - } - /** - * 在线文档编辑页面跳转 - * - * @return - */ - @RequestMapping(params = "goUpdate") - public ModelAndView goUpdate(OnlineDocEntity onlineDoc, HttpServletRequest req) { - if (StringUtil.isNotEmpty(onlineDoc.getId())) { - onlineDoc = onlineDocService.getEntity(OnlineDocEntity.class, onlineDoc.getId()); - req.setAttribute("onlineDocPage", onlineDoc); - } - return new ModelAndView("jeecg/onlinedoc/onlineDoc-update"); - } - - /** - * 导入功能跳转 - * - * @return - */ - @RequestMapping(params = "upload") - public ModelAndView upload(HttpServletRequest req) { - req.setAttribute("controller_name","onlineDocController"); - return new ModelAndView("common/upload/pub_excel_upload"); - } - - /** - * 导出excel - * - * @param request - * @param response - */ - @RequestMapping(params = "exportXls") - public String exportXls(OnlineDocEntity onlineDoc,HttpServletRequest request,HttpServletResponse response - , DataGrid dataGrid,ModelMap modelMap) { - CriteriaQuery cq = new CriteriaQuery(OnlineDocEntity.class, dataGrid); - org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, onlineDoc, request.getParameterMap()); - List onlineDocs = this.onlineDocService.getListByCriteriaQuery(cq,false); - modelMap.put(NormalExcelConstants.FILE_NAME,"在线文档"); - modelMap.put(NormalExcelConstants.CLASS,OnlineDocEntity.class); - modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("在线文档列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(), - "导出信息")); - modelMap.put(NormalExcelConstants.DATA_LIST,onlineDocs); - return NormalExcelConstants.JEECG_EXCEL_VIEW; - } - /** - * 导出excel 使模板 - * - * @param request - * @param response - */ - @RequestMapping(params = "exportXlsByT") - public String exportXlsByT(OnlineDocEntity onlineDoc,HttpServletRequest request,HttpServletResponse response - , DataGrid dataGrid,ModelMap modelMap) { - modelMap.put(NormalExcelConstants.FILE_NAME,"在线文档"); - modelMap.put(NormalExcelConstants.CLASS,OnlineDocEntity.class); - modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("在线文档列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(), - "导出信息")); - modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList()); - return NormalExcelConstants.JEECG_EXCEL_VIEW; - } - - @SuppressWarnings("unchecked") - @RequestMapping(params = "importExcel", method = RequestMethod.POST) - @ResponseBody - public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { - AjaxJson j = new AjaxJson(); - - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map fileMap = multipartRequest.getFileMap(); - for (Map.Entry entity : fileMap.entrySet()) { - MultipartFile file = entity.getValue();// 获取上传文件对象 - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setNeedSave(true); - try { - List listOnlineDocEntitys = ExcelImportUtil.importExcel(file.getInputStream(),OnlineDocEntity.class,params); - for (OnlineDocEntity onlineDoc : listOnlineDocEntitys) { - onlineDocService.save(onlineDoc); - } - j.setMsg("文件导入成功!"); - } catch (Exception e) { - j.setMsg("文件导入失败!"); - logger.error(ExceptionUtil.getExceptionMessage(e)); - }finally{ - try { - file.getInputStream().close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return j; - } - - //上传文件方法 - @RequestMapping(params="ajaxUpload") - @ResponseBody - public String ajaxUpload(HttpServletRequest request) throws IllegalStateException, IOException { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - String fileName = ""; - String uploadPath = "upload/"; - String path =request.getSession().getServletContext().getRealPath("/")+uploadPath; - String realPath = ""; - String oldName = ""; - for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) { - String key = it.next(); - MultipartFile mulfile = multipartRequest.getFile(key); - fileName = mulfile.getOriginalFilename(); - oldName = fileName.substring(0,fileName.lastIndexOf(".")); - fileName = rewriteFileName(fileName); - File file = new File(path + fileName); - mulfile.transferTo(file); - } - realPath = "{\"path\":\""+uploadPath+fileName+"\",\"oldName\":\"" + oldName + "\",\"newName\":\"" + fileName + "\"}"; - return realPath; - } - - //文件名称处理 - private String rewriteFileName(String fileName) { - int pointIndex = fileName.lastIndexOf("."); - StringBuffer fileNameBuffer = new StringBuffer(); - fileNameBuffer.append((new Date()).getTime()+"_"+fileName.substring(0,pointIndex)); - fileNameBuffer.append(fileName.substring(pointIndex)); - return fileNameBuffer.toString(); - } -} diff --git a/src/main/java/org/jeecgframework/web/onlinedoc/entity/OnlineDocEntity.java b/src/main/java/org/jeecgframework/web/onlinedoc/entity/OnlineDocEntity.java deleted file mode 100644 index b0a08623..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedoc/entity/OnlineDocEntity.java +++ /dev/null @@ -1,293 +0,0 @@ -package org.jeecgframework.web.onlinedoc.entity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.hibernate.annotations.GenericGenerator; -import org.jeecgframework.poi.excel.annotation.Excel; - -/** - * @Title: Entity - * @Description: 在线文档 - * @author onlineGenerator - * @date 2016-03-19 15:49:59 - * @version V1.0 - * - */ -@Entity -@Table(name = "t_s_online_doc", schema = "") -@SuppressWarnings("serial") -public class OnlineDocEntity implements java.io.Serializable { - /**主键*/ - private java.lang.String id; - /**创建人名称*/ - private java.lang.String createName; - /**创建人登录名称*/ - private java.lang.String createBy; - /**创建日期*/ - private java.util.Date createDate; - /**更新人名称*/ - private java.lang.String updateName; - /**更新人登录名称*/ - private java.lang.String updateBy; - /**更新日期*/ - private java.util.Date updateDate; - /**所属部门*/ - private java.lang.String sysOrgCode; - /**所属公司*/ - private java.lang.String sysCompanyCode; - /**流程状态*/ - private java.lang.String bpmStatus; - /**文件原名*/ - private java.lang.String oldName; - /**文件名*/ - private java.lang.String newName; - /**描述*/ - @Excel(name="描述") - private java.lang.String description; - /**分类节点*/ - @Excel(name="分类节点") - private java.lang.String treeNode; - /**下载地址*/ - private java.lang.String path; - - /** - *方法: 取得java.lang.String - *@return: java.lang.String 主键 - */ - @Id - @GeneratedValue(generator = "paymentableGenerator") - @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") - @Column(name ="ID",nullable=false,length=36) - public java.lang.String getId(){ - return this.id; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 主键 - */ - public void setId(java.lang.String id){ - this.id = id; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人名称 - */ - @Column(name ="CREATE_NAME",nullable=true,length=50) - public java.lang.String getCreateName(){ - return this.createName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人名称 - */ - public void setCreateName(java.lang.String createName){ - this.createName = createName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人登录名称 - */ - @Column(name ="CREATE_BY",nullable=true,length=50) - public java.lang.String getCreateBy(){ - return this.createBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人登录名称 - */ - public void setCreateBy(java.lang.String createBy){ - this.createBy = createBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 创建日期 - */ - @Column(name ="CREATE_DATE",nullable=true,length=20) - public java.util.Date getCreateDate(){ - return this.createDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 创建日期 - */ - public void setCreateDate(java.util.Date createDate){ - this.createDate = createDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 更新人名称 - */ - @Column(name ="UPDATE_NAME",nullable=true,length=50) - public java.lang.String getUpdateName(){ - return this.updateName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 更新人名称 - */ - public void setUpdateName(java.lang.String updateName){ - this.updateName = updateName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 更新人登录名称 - */ - @Column(name ="UPDATE_BY",nullable=true,length=50) - public java.lang.String getUpdateBy(){ - return this.updateBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 更新人登录名称 - */ - public void setUpdateBy(java.lang.String updateBy){ - this.updateBy = updateBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 更新日期 - */ - @Column(name ="UPDATE_DATE",nullable=true,length=20) - public java.util.Date getUpdateDate(){ - return this.updateDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 更新日期 - */ - public void setUpdateDate(java.util.Date updateDate){ - this.updateDate = updateDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 所属部门 - */ - @Column(name ="SYS_ORG_CODE",nullable=true,length=50) - public java.lang.String getSysOrgCode(){ - return this.sysOrgCode; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 所属部门 - */ - public void setSysOrgCode(java.lang.String sysOrgCode){ - this.sysOrgCode = sysOrgCode; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 所属公司 - */ - @Column(name ="SYS_COMPANY_CODE",nullable=true,length=50) - public java.lang.String getSysCompanyCode(){ - return this.sysCompanyCode; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 所属公司 - */ - public void setSysCompanyCode(java.lang.String sysCompanyCode){ - this.sysCompanyCode = sysCompanyCode; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 流程状态 - */ - @Column(name ="BPM_STATUS",nullable=true,length=32) - public java.lang.String getBpmStatus(){ - return this.bpmStatus; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 流程状态 - */ - public void setBpmStatus(java.lang.String bpmStatus){ - this.bpmStatus = bpmStatus; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 文件原名 - */ - @Column(name ="OLD_NAME",nullable=true,length=50) - public java.lang.String getOldName(){ - return this.oldName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 文件原名 - */ - public void setOldName(java.lang.String oldName){ - this.oldName = oldName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 文件名 - */ - @Column(name ="NEW_NAME",nullable=true,length=50) - public java.lang.String getNewName(){ - return this.newName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 文件名 - */ - public void setNewName(java.lang.String newName){ - this.newName = newName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 描述 - */ - @Column(name ="DESCRIPTION",nullable=true,length=200) - public java.lang.String getDescription(){ - return this.description; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 描述 - */ - public void setDescription(java.lang.String description){ - this.description = description; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 下载地址 - */ - @Column(name ="PATH",nullable=true,length=200) - public java.lang.String getPath(){ - return this.path; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 下载地址 - */ - public void setPath(java.lang.String path){ - this.path = path; - } - - public void setTreeNode(java.lang.String treeNode) { - this.treeNode = treeNode; - } - - @Column(name ="TREE_NODE",nullable=true,length=200) - public java.lang.String getTreeNode() { - return treeNode; - } -} diff --git a/src/main/java/org/jeecgframework/web/onlinedoc/service/OnlineDocServiceI.java b/src/main/java/org/jeecgframework/web/onlinedoc/service/OnlineDocServiceI.java deleted file mode 100644 index 9afc8f49..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedoc/service/OnlineDocServiceI.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.jeecgframework.web.onlinedoc.service; -import java.io.Serializable; - -import org.jeecgframework.core.common.service.CommonService; -import org.jeecgframework.web.onlinedoc.entity.OnlineDocEntity; - -public interface OnlineDocServiceI extends CommonService{ - - public void delete(T entity); - - public Serializable save(T entity); - - public void saveOrUpdate(T entity); - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(OnlineDocEntity t); - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(OnlineDocEntity t); - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(OnlineDocEntity t); -} diff --git a/src/main/java/org/jeecgframework/web/onlinedoc/service/impl/OnlineDocServiceImpl.java b/src/main/java/org/jeecgframework/web/onlinedoc/service/impl/OnlineDocServiceImpl.java deleted file mode 100644 index 33309aa9..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedoc/service/impl/OnlineDocServiceImpl.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.jeecgframework.web.onlinedoc.service.impl; -import java.io.Serializable; -import java.util.UUID; - -import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.web.onlinedoc.entity.OnlineDocEntity; -import org.jeecgframework.web.onlinedoc.service.OnlineDocServiceI; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("onlineDocService") -@Transactional -public class OnlineDocServiceImpl extends CommonServiceImpl implements OnlineDocServiceI { - - - public void delete(T entity) { - super.delete(entity); - //执行删除操作配置的sql增强 - this.doDelSql((OnlineDocEntity)entity); - } - - public Serializable save(T entity) { - Serializable t = super.save(entity); - //执行新增操作配置的sql增强 - this.doAddSql((OnlineDocEntity)entity); - return t; - } - - public void saveOrUpdate(T entity) { - super.saveOrUpdate(entity); - //执行更新操作配置的sql增强 - this.doUpdateSql((OnlineDocEntity)entity); - } - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(OnlineDocEntity t){ - return true; - } - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(OnlineDocEntity t){ - return true; - } - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(OnlineDocEntity t){ - return true; - } - - /** - * 替换sql中的变量 - * @param sql - * @return - */ - public String replaceVal(String sql,OnlineDocEntity t){ - sql = sql.replace("#{id}",String.valueOf(t.getId())); - sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName())); - sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy())); - sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate())); - sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName())); - sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy())); - sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate())); - sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode())); - sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode())); - sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus())); - sql = sql.replace("#{old_name}",String.valueOf(t.getOldName())); - sql = sql.replace("#{new_name}",String.valueOf(t.getNewName())); - sql = sql.replace("#{description}",String.valueOf(t.getDescription())); - sql = sql.replace("#{treeNode}",String.valueOf(t.getTreeNode())); - sql = sql.replace("#{path}",String.valueOf(t.getPath())); - sql = sql.replace("#{UUID}",UUID.randomUUID().toString()); - return sql; - } -} \ No newline at end of file diff --git a/src/main/java/org/jeecgframework/web/onlinedocsort/controller/OnlineDocSortController.java b/src/main/java/org/jeecgframework/web/onlinedocsort/controller/OnlineDocSortController.java deleted file mode 100644 index a50f8c87..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedocsort/controller/OnlineDocSortController.java +++ /dev/null @@ -1,366 +0,0 @@ -package org.jeecgframework.web.onlinedocsort.controller; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang.StringUtils; -import org.apache.log4j.Logger; -import org.jeecgframework.core.common.controller.BaseController; -import org.jeecgframework.core.common.exception.BusinessException; -import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; -import org.jeecgframework.core.common.model.json.AjaxJson; -import org.jeecgframework.core.common.model.json.ComboTree; -import org.jeecgframework.core.common.model.json.DataGrid; -import org.jeecgframework.core.common.model.json.TreeGrid; -import org.jeecgframework.core.constant.Globals; -import org.jeecgframework.core.util.ExceptionUtil; -import org.jeecgframework.core.util.MyBeanUtils; -import org.jeecgframework.core.util.ResourceUtil; -import org.jeecgframework.core.util.StringUtil; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; -import org.jeecgframework.tag.vo.easyui.TreeGridModel; -import org.jeecgframework.web.onlinedocsort.entity.OnlineDocSortEntity; -import org.jeecgframework.web.onlinedocsort.service.OnlineDocSortServiceI; -import org.jeecgframework.web.system.pojo.base.TSCategoryEntity; -import org.jeecgframework.web.system.service.SystemService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; - - - -/** - * @Title: Controller - * @Description: 在线文档分类 - * @author onlineGenerator - * @date 2016-03-20 11:46:20 - * @version V1.0 - * - */ -//@Scope("prototype") -@Controller -@RequestMapping("/onlineDocSortController") -public class OnlineDocSortController extends BaseController { - /** - * Logger for this class - */ - private static final Logger logger = Logger.getLogger(OnlineDocSortController.class); - - @Autowired - private OnlineDocSortServiceI onlineDocSortService; - @Autowired - private SystemService systemService; - - - /** - * 在线文档分类列表 页面跳转 - * - * @return - */ - @RequestMapping(params = "list") - public ModelAndView list(HttpServletRequest request) { - return new ModelAndView("jeecg/onlinedocsort/onlineDocSortList"); - } - - /** - * easyui AJAX请求数据 - * - * @param request - * @param response - * @param dataGrid - * @param user - */ - - @RequestMapping(params = "datagrid") - @ResponseBody - public List datagrid(OnlineDocSortEntity onlineDocSort,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { - CriteriaQuery cq = new CriteriaQuery(OnlineDocSortEntity.class, dataGrid); - if (onlineDocSort.getId() == null || StringUtils.isEmpty(onlineDocSort.getId())) { - cq.isNull("parent"); - } else { - cq.eq("parent.id", onlineDocSort.getId()); - onlineDocSort.setId(null); - } - // 查询条件组装器 - org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, onlineDocSort, request.getParameterMap()); - List list = this.onlineDocSortService.getListByCriteriaQuery(cq, false); - List treeGrids = new ArrayList(); - TreeGridModel treeGridModel = new TreeGridModel(); - treeGridModel.setIdField("id"); - treeGridModel.setSrc("id"); - treeGridModel.setTextField("name"); - treeGridModel.setParentText("parent_name"); - treeGridModel.setParentId("parent_id"); - treeGridModel.setChildList("list"); - treeGrids = systemService.treegrid(list, treeGridModel); - return treeGrids; - } - - @RequestMapping(params = "tree") - @ResponseBody - public List tree(String selfCode,ComboTree comboTree, boolean isNew) { - CriteriaQuery cq = new CriteriaQuery(OnlineDocSortEntity.class); - cq.isNull("parent"); - cq.add(); - List categoryList = systemService.getListByCriteriaQuery(cq, false); - List comboTrees = new ArrayList(); - for (int i = 0; i < categoryList.size(); i++) { - comboTrees.add(onlineDocSortEntityConvertToTree(categoryList.get(i))); - } - return comboTrees; - } - - private ComboTree onlineDocSortEntityConvertToTree(OnlineDocSortEntity entity) { - ComboTree tree = new ComboTree(); - tree.setId(entity.getId()); - tree.setText(entity.getName()); - if (entity.getList() != null && entity.getList().size() > 0) { - List comboTrees = new ArrayList(); - for (int i = 0; i < entity.getList().size(); i++) { - comboTrees.add(onlineDocSortEntityConvertToTree(entity.getList().get(i))); - } - tree.setChildren(comboTrees); - } - return tree; - } - - /** - * 删除在线文档分类 - * - * @return - */ - @RequestMapping(params = "doDel") - @ResponseBody - public AjaxJson doDel(OnlineDocSortEntity onlineDocSort, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - onlineDocSort = systemService.getEntity(OnlineDocSortEntity.class, onlineDocSort.getId()); - message = "在线文档分类删除成功"; - try{ - onlineDocSortService.delete(onlineDocSort); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "在线文档分类删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 批量删除在线文档分类 - * - * @return - */ - @RequestMapping(params = "doBatchDel") - @ResponseBody - public AjaxJson doBatchDel(String ids,HttpServletRequest request){ - String message = null; - AjaxJson j = new AjaxJson(); - message = "在线文档分类删除成功"; - try{ - for(String id:ids.split(",")){ - OnlineDocSortEntity onlineDocSort = systemService.getEntity(OnlineDocSortEntity.class, - id - ); - onlineDocSortService.delete(onlineDocSort); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - } - }catch(Exception e){ - e.printStackTrace(); - message = "在线文档分类删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 添加在线文档分类 - * - * @param ids - * @return - */ - @RequestMapping(params = "doAdd") - @ResponseBody - public AjaxJson doAdd(OnlineDocSortEntity onlineDocSort, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - boolean flag = StringUtil.isEmpty(onlineDocSort.getParent().getId()); - message = "在线文档分类添加成功"; - try{ - if (flag) { - onlineDocSort.setParent(null); - } - onlineDocSortService.save(onlineDocSort); - systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "在线文档分类添加失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 更新在线文档分类 - * - * @param ids - * @return - */ - @RequestMapping(params = "doUpdate") - @ResponseBody - public AjaxJson doUpdate(OnlineDocSortEntity onlineDocSort, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - boolean flag = StringUtil.isEmpty(onlineDocSort.getParent().getId()); - - message = "在线文档分类更新成功"; - OnlineDocSortEntity t = onlineDocSortService.get(OnlineDocSortEntity.class, onlineDocSort.getId()); - try { - MyBeanUtils.copyBeanNotNull2Bean(onlineDocSort, t); - if (flag) { - t.setParent(null); - } - onlineDocSortService.saveOrUpdate(t); - systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); - } catch (Exception e) { - e.printStackTrace(); - message = "在线文档分类更新失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 在线文档分类新增页面跳转 - * - * @return - */ - @RequestMapping(params = "goAdd") - public ModelAndView goAddOrUpdate(OnlineDocSortEntity onlineDocSort,HttpServletRequest request) { - - String id = request.getParameter("id"); - - if (StringUtil.isNotEmpty(id)) { - onlineDocSort = onlineDocSortService.getEntity(OnlineDocSortEntity.class, id); - request.setAttribute("onlineDocSortPage", onlineDocSort); - } - return new ModelAndView("jeecg/onlinedocsort/onlineDocSort-add"); - } - /** - * 在线文档分类编辑页面跳转 - * - * @return - */ - @RequestMapping(params = "goUpdate") - public ModelAndView goUpdate(OnlineDocSortEntity onlineDocSort, HttpServletRequest request) { - - String id = request.getParameter("id"); - - if (StringUtil.isNotEmpty(id)) { - onlineDocSort = onlineDocSortService.getEntity(OnlineDocSortEntity.class, id); - request.setAttribute("onlineDocSortPage", onlineDocSort); - } - return new ModelAndView("jeecg/onlinedocsort/onlineDocSort-update"); - } - - /** - * 导入功能跳转 - * - * @return - */ - @RequestMapping(params = "upload") - public ModelAndView upload(HttpServletRequest req) { - req.setAttribute("controller_name","onlineDocSortController"); - return new ModelAndView("common/upload/pub_excel_upload"); - } - - /** - * 导出excel - * - * @param request - * @param response - */ - @RequestMapping(params = "exportXls") - public String exportXls(OnlineDocSortEntity onlineDocSort,HttpServletRequest request,HttpServletResponse response - , DataGrid dataGrid,ModelMap modelMap) { - CriteriaQuery cq = new CriteriaQuery(OnlineDocSortEntity.class, dataGrid); - org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, onlineDocSort, request.getParameterMap()); - List onlineDocSorts = this.onlineDocSortService.getListByCriteriaQuery(cq,false); - modelMap.put(NormalExcelConstants.FILE_NAME,"在线文档分类"); - modelMap.put(NormalExcelConstants.CLASS,OnlineDocSortEntity.class); - modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("在线文档分类列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(), - "导出信息")); - modelMap.put(NormalExcelConstants.DATA_LIST,onlineDocSorts); - return NormalExcelConstants.JEECG_EXCEL_VIEW; - } - /** - * 导出excel 使模板 - * - * @param request - * @param response - */ - @RequestMapping(params = "exportXlsByT") - public String exportXlsByT(OnlineDocSortEntity onlineDocSort,HttpServletRequest request,HttpServletResponse response - , DataGrid dataGrid,ModelMap modelMap) { - modelMap.put(NormalExcelConstants.FILE_NAME,"在线文档分类"); - modelMap.put(NormalExcelConstants.CLASS,OnlineDocSortEntity.class); - modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("在线文档分类列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(), - "导出信息")); - modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList()); - return NormalExcelConstants.JEECG_EXCEL_VIEW; - } - - @RequestMapping(params = "importExcel", method = RequestMethod.POST) - @ResponseBody - public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { - AjaxJson j = new AjaxJson(); - - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map fileMap = multipartRequest.getFileMap(); - for (Map.Entry entity : fileMap.entrySet()) { - MultipartFile file = entity.getValue();// 获取上传文件对象 - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setNeedSave(true); - try { - List listOnlineDocSortEntitys = ExcelImportUtil.importExcel(file.getInputStream(),OnlineDocSortEntity.class,params); - for (OnlineDocSortEntity onlineDocSort : listOnlineDocSortEntitys) { - onlineDocSortService.save(onlineDocSort); - } - j.setMsg("文件导入成功!"); - } catch (Exception e) { - j.setMsg("文件导入失败!"); - logger.error(ExceptionUtil.getExceptionMessage(e)); - }finally{ - try { - file.getInputStream().close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return j; - } -} diff --git a/src/main/java/org/jeecgframework/web/onlinedocsort/entity/OnlineDocSortEntity.java b/src/main/java/org/jeecgframework/web/onlinedocsort/entity/OnlineDocSortEntity.java deleted file mode 100644 index 2aa59589..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedocsort/entity/OnlineDocSortEntity.java +++ /dev/null @@ -1,249 +0,0 @@ -package org.jeecgframework.web.onlinedocsort.entity; - -import java.util.List; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -import org.hibernate.annotations.GenericGenerator; -import org.jeecgframework.poi.excel.annotation.Excel; - -/** - * @Title: Entity - * @Description: 在线文档分类 - * @author onlineGenerator - * @date 2016-03-20 11:46:20 - * @version V1.0 - * - */ -@Entity -@Table(name = "t_s_online_doc_sort", schema = "") -@SuppressWarnings("serial") -public class OnlineDocSortEntity implements java.io.Serializable { - /**主键*/ - private java.lang.String id; - /**创建人名称*/ - private java.lang.String createName; - /**创建人登录名称*/ - private java.lang.String createBy; - /**创建日期*/ - private java.util.Date createDate; - /**更新人名称*/ - private java.lang.String updateName; - /**更新人登录名称*/ - private java.lang.String updateBy; - /**更新日期*/ - private java.util.Date updateDate; - /**所属部门*/ - private java.lang.String sysOrgCode; - /**所属公司*/ - private java.lang.String sysCompanyCode; - /**流程状态*/ - private java.lang.String bpmStatus; - /**名称*/ - @Excel(name="名称") - private java.lang.String name; - /**父级节点*/ - private OnlineDocSortEntity parent; - - private List list; - - /** - *方法: 取得java.lang.String - *@return: java.lang.String 主键 - */ - @Id - @GeneratedValue(generator = "paymentableGenerator") - @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") - @Column(name ="ID",nullable=false,length=36) - public java.lang.String getId(){ - return this.id; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 主键 - */ - public void setId(java.lang.String id){ - this.id = id; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人名称 - */ - @Column(name ="CREATE_NAME",nullable=true,length=50) - public java.lang.String getCreateName(){ - return this.createName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人名称 - */ - public void setCreateName(java.lang.String createName){ - this.createName = createName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人登录名称 - */ - @Column(name ="CREATE_BY",nullable=true,length=50) - public java.lang.String getCreateBy(){ - return this.createBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人登录名称 - */ - public void setCreateBy(java.lang.String createBy){ - this.createBy = createBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 创建日期 - */ - @Column(name ="CREATE_DATE",nullable=true,length=20) - public java.util.Date getCreateDate(){ - return this.createDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 创建日期 - */ - public void setCreateDate(java.util.Date createDate){ - this.createDate = createDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 更新人名称 - */ - @Column(name ="UPDATE_NAME",nullable=true,length=50) - public java.lang.String getUpdateName(){ - return this.updateName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 更新人名称 - */ - public void setUpdateName(java.lang.String updateName){ - this.updateName = updateName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 更新人登录名称 - */ - @Column(name ="UPDATE_BY",nullable=true,length=50) - public java.lang.String getUpdateBy(){ - return this.updateBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 更新人登录名称 - */ - public void setUpdateBy(java.lang.String updateBy){ - this.updateBy = updateBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 更新日期 - */ - @Column(name ="UPDATE_DATE",nullable=true,length=20) - public java.util.Date getUpdateDate(){ - return this.updateDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 更新日期 - */ - public void setUpdateDate(java.util.Date updateDate){ - this.updateDate = updateDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 所属部门 - */ - @Column(name ="SYS_ORG_CODE",nullable=true,length=50) - public java.lang.String getSysOrgCode(){ - return this.sysOrgCode; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 所属部门 - */ - public void setSysOrgCode(java.lang.String sysOrgCode){ - this.sysOrgCode = sysOrgCode; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 所属公司 - */ - @Column(name ="SYS_COMPANY_CODE",nullable=true,length=50) - public java.lang.String getSysCompanyCode(){ - return this.sysCompanyCode; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 所属公司 - */ - public void setSysCompanyCode(java.lang.String sysCompanyCode){ - this.sysCompanyCode = sysCompanyCode; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 流程状态 - */ - @Column(name ="BPM_STATUS",nullable=true,length=32) - public java.lang.String getBpmStatus(){ - return this.bpmStatus; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 流程状态 - */ - public void setBpmStatus(java.lang.String bpmStatus){ - this.bpmStatus = bpmStatus; - } - - public void setName(java.lang.String name) { - this.name = name; - } - @Column(name ="NAME",nullable=true,length=32) - public java.lang.String getName() { - return name; - } - - public void setParent(OnlineDocSortEntity parent) { - this.parent = parent; - } - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "PARENT_CODE",referencedColumnName = "id") - public OnlineDocSortEntity getParent() { - return parent; - } - - public void setList(List list) { - this.list = list; - } - - @OneToMany(cascade = CascadeType.REMOVE, mappedBy = "parent") - public List getList() { - return list; - } -} diff --git a/src/main/java/org/jeecgframework/web/onlinedocsort/service/OnlineDocSortServiceI.java b/src/main/java/org/jeecgframework/web/onlinedocsort/service/OnlineDocSortServiceI.java deleted file mode 100644 index aaa12ebd..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedocsort/service/OnlineDocSortServiceI.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.jeecgframework.web.onlinedocsort.service; -import java.io.Serializable; - -import org.jeecgframework.core.common.service.CommonService; -import org.jeecgframework.web.onlinedocsort.entity.OnlineDocSortEntity; - -public interface OnlineDocSortServiceI extends CommonService{ - - public void delete(T entity); - - public Serializable save(T entity); - - public void saveOrUpdate(T entity); - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(OnlineDocSortEntity t); - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(OnlineDocSortEntity t); - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(OnlineDocSortEntity t); -} diff --git a/src/main/java/org/jeecgframework/web/onlinedocsort/service/impl/OnlineDocSortServiceImpl.java b/src/main/java/org/jeecgframework/web/onlinedocsort/service/impl/OnlineDocSortServiceImpl.java deleted file mode 100644 index d53b01bd..00000000 --- a/src/main/java/org/jeecgframework/web/onlinedocsort/service/impl/OnlineDocSortServiceImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.jeecgframework.web.onlinedocsort.service.impl; -import java.io.Serializable; -import java.util.UUID; - -import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.web.onlinedocsort.entity.OnlineDocSortEntity; -import org.jeecgframework.web.onlinedocsort.service.OnlineDocSortServiceI; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("onlineDocSortService") -@Transactional -public class OnlineDocSortServiceImpl extends CommonServiceImpl implements OnlineDocSortServiceI { - - - public void delete(T entity) { - super.delete(entity); - //执行删除操作配置的sql增强 - this.doDelSql((OnlineDocSortEntity)entity); - } - - public Serializable save(T entity) { - Serializable t = super.save(entity); - //执行新增操作配置的sql增强 - this.doAddSql((OnlineDocSortEntity)entity); - return t; - } - - public void saveOrUpdate(T entity) { - super.saveOrUpdate(entity); - //执行更新操作配置的sql增强 - this.doUpdateSql((OnlineDocSortEntity)entity); - } - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(OnlineDocSortEntity t){ - return true; - } - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(OnlineDocSortEntity t){ - return true; - } - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(OnlineDocSortEntity t){ - return true; - } - - /** - * 替换sql中的变量 - * @param sql - * @return - */ - public String replaceVal(String sql,OnlineDocSortEntity t){ - sql = sql.replace("#{id}",String.valueOf(t.getId())); - sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName())); - sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy())); - sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate())); - sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName())); - sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy())); - sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate())); - sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode())); - sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode())); - sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus())); - sql = sql.replace("#{name}",String.valueOf(t.getName())); - sql = sql.replace("#{parent}",String.valueOf(t.getParent().getId())); - sql = sql.replace("#{UUID}",UUID.randomUUID().toString()); - return sql; - } -} \ No newline at end of file diff --git a/src/main/java/org/jeecgframework/web/rank/controller/TSTeamPersonController.java b/src/main/java/org/jeecgframework/web/rank/controller/TSTeamPersonController.java deleted file mode 100644 index e2275636..00000000 --- a/src/main/java/org/jeecgframework/web/rank/controller/TSTeamPersonController.java +++ /dev/null @@ -1,422 +0,0 @@ -package org.jeecgframework.web.rank.controller; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.log4j.Logger; -import org.jeecgframework.core.common.controller.BaseController; -import org.jeecgframework.core.common.exception.BusinessException; -import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; -import org.jeecgframework.core.common.model.json.AjaxJson; -import org.jeecgframework.core.common.model.json.DataGrid; -import org.jeecgframework.core.constant.Globals; -import org.jeecgframework.core.util.ExceptionUtil; -import org.jeecgframework.core.util.MyBeanUtils; -import org.jeecgframework.core.util.ResourceUtil; -import org.jeecgframework.core.util.StringUtil; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.entity.TemplateExportParams; -import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.vo.TemplateExcelConstants; -import org.jeecgframework.tag.core.easyui.TagUtil; -import org.jeecgframework.web.cgform.engine.FreemarkerHelper; -import org.jeecgframework.web.rank.entity.TSTeamPersonEntity; -import org.jeecgframework.web.rank.service.TSTeamPersonServiceI; -import org.jeecgframework.web.system.service.SystemService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; - -/** - * @Title: Controller - * @Description: 团队人员榜 - * @author onlineGenerator - * @date 2015-07-04 21:29:29 - * @version V1.0 - * - */ -//@Scope("prototype") -@Controller -@RequestMapping("/tSTeamPersonController") -public class TSTeamPersonController extends BaseController { - /** - * Logger for this class - */ - private static final Logger logger = Logger.getLogger(TSTeamPersonController.class); - - private final String FTL_Teachers="clzcontext/template/cms/rank/html/teachers.ftl"; - private final String FTL_Teacher="clzcontext/template/cms/rank/html/teacher.ftl"; - private final String FTL_Introduce="clzcontext/template/cms/rank/html/introduce.ftl"; - @Autowired - private TSTeamPersonServiceI tSTeamPersonService; - @Autowired - private SystemService systemService; - private String message; - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - - /** - * 团队人员榜列表 页面跳转 - * - * @return - */ - @RequestMapping(params = "tSTeamPerson") - public ModelAndView tSTeamPerson(HttpServletRequest request) { - return new ModelAndView("system/rank/tSTeamPersonList"); - } - - /** - * 外网-师资列表 - * @param request - * @param response - */ - @RequestMapping(params = "getTeacherList") - public void getTeacherList(HttpServletRequest request, HttpServletResponse response){ - FreemarkerHelper viewEngine = new FreemarkerHelper(); - Map map = new HashMap(); - List teamPersonEntities = this.tSTeamPersonService.findByQueryString("from TSTeamPersonEntity order by isJoin desc, jionDate"); - - String path = request.getContextPath(); - String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; - map.put("teachers", teamPersonEntities); - map.put("url", url); - String html = viewEngine.parseTemplate(FTL_Teachers, map); - - PrintWriter writer = null; - try { - response.setContentType("text/html"); - response.setHeader("Cache-Control", "no-store"); - writer = response.getWriter(); - writer.println(html); - writer.flush(); - } catch (IOException e) { - e.printStackTrace(); - }finally{ - try { - writer.close(); - } catch (Exception e2) { - // TODO: handle exception - } - } - } - - /** - * 外网.教师信息 - * @param id - * @param request - * @param response - */ - @RequestMapping(params = "getTeacher") - public void getTeacher(@RequestParam String id, HttpServletRequest request, HttpServletResponse response){ - FreemarkerHelper viewEngine = new FreemarkerHelper(); - - TSTeamPersonEntity teamPersonEntity = this.tSTeamPersonService.get(TSTeamPersonEntity.class, id); - String path = request.getContextPath(); - String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; - - Map map = new HashMap(); - map.put("teacher", teamPersonEntity); - map.put("url", url); - String html = viewEngine.parseTemplate(FTL_Teacher, map); - - PrintWriter writer = null; - try { - response.setContentType("text/html"); - response.setHeader("Cache-Control", "no-store"); - writer = response.getWriter(); - writer.println(html); - writer.flush(); - } catch (IOException e) { - e.printStackTrace(); - }finally{ - try { - writer.close(); - } catch (Exception e2) { - // TODO: handle exception - } - } - } - - - /** - * easyui AJAX请求数据 - * - * @param request - * @param response - * @param dataGrid - * @param user - */ - - @RequestMapping(params = "datagrid") - public void datagrid(TSTeamPersonEntity tSTeamPerson,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { - CriteriaQuery cq = new CriteriaQuery(TSTeamPersonEntity.class, dataGrid); - //查询条件组装器 - org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSTeamPerson, request.getParameterMap()); - cq.add(); - this.systemService.getDataGridReturn(cq, true); - TagUtil.datagrid(response, dataGrid); - } - - /** - * 删除团队人员榜 - * - * @return - */ - @RequestMapping(params = "doDel") - @ResponseBody - public AjaxJson doDel(TSTeamPersonEntity tSTeamPerson, HttpServletRequest request) { - AjaxJson j = new AjaxJson(); - tSTeamPerson = systemService.getEntity(TSTeamPersonEntity.class, tSTeamPerson.getId()); - message = "团队人员榜删除成功"; - try{ - tSTeamPersonService.delete(tSTeamPerson); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "团队人员榜删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 批量删除团队人员榜 - * - * @return - */ - @RequestMapping(params = "doBatchDel") - @ResponseBody - public AjaxJson doBatchDel(String ids,HttpServletRequest request){ - AjaxJson j = new AjaxJson(); - message = "团队人员榜删除成功"; - try{ - for(String id:ids.split(",")){ - TSTeamPersonEntity tSTeamPerson = systemService.getEntity(TSTeamPersonEntity.class, - id - ); - tSTeamPersonService.delete(tSTeamPerson); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - } - }catch(Exception e){ - e.printStackTrace(); - message = "团队人员榜删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 添加团队人员榜 - * - * @param ids - * @return - */ - @RequestMapping(params = "doAdd") - @ResponseBody - public AjaxJson doAdd(TSTeamPersonEntity tSTeamPerson, HttpServletRequest request) { - AjaxJson j = new AjaxJson(); - message = "团队人员榜添加成功"; - try{ - tSTeamPersonService.save(tSTeamPerson); - systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "团队人员榜添加失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 更新团队人员榜 - * - * @param ids - * @return - */ - @RequestMapping(params = "doUpdate") - @ResponseBody - public AjaxJson doUpdate(TSTeamPersonEntity tSTeamPerson, HttpServletRequest request) { - AjaxJson j = new AjaxJson(); - message = "团队人员榜更新成功"; - TSTeamPersonEntity t = tSTeamPersonService.get(TSTeamPersonEntity.class, tSTeamPerson.getId()); - try { - MyBeanUtils.copyBeanNotNull2Bean(tSTeamPerson, t); - tSTeamPersonService.saveOrUpdate(t); - systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); - } catch (Exception e) { - e.printStackTrace(); - message = "团队人员榜更新失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 团队人员榜新增页面跳转 - * - * @return - */ - @RequestMapping(params = "goAdd") - public ModelAndView goAdd(TSTeamPersonEntity tSTeamPerson, HttpServletRequest req) { - if (StringUtil.isNotEmpty(tSTeamPerson.getId())) { - tSTeamPerson = tSTeamPersonService.getEntity(TSTeamPersonEntity.class, tSTeamPerson.getId()); - req.setAttribute("tSTeamPersonPage", tSTeamPerson); - } - return new ModelAndView("system/rank/tSTeamPerson-add"); - } - /** - * 团队人员榜编辑页面跳转 - * - * @return - */ - @RequestMapping(params = "goUpdate") - public ModelAndView goUpdate(TSTeamPersonEntity tSTeamPerson, HttpServletRequest req) { - if (StringUtil.isNotEmpty(tSTeamPerson.getId())) { - tSTeamPerson = tSTeamPersonService.getEntity(TSTeamPersonEntity.class, tSTeamPerson.getId()); - req.setAttribute("tSTeamPersonPage", tSTeamPerson); - } - return new ModelAndView("system/rank/tSTeamPerson-update"); - } - - /** - * 导入功能跳转 - * - * @return - */ - @RequestMapping(params = "upload") - public ModelAndView upload(HttpServletRequest req) { - req.setAttribute("controller_name","tSTeamPersonController"); - return new ModelAndView("common/upload/pub_excel_upload"); - } - - /** - * 导出excel - * - * @param request - * @param response - */ - @RequestMapping(params = "exportXls") - public String exportXls(TSTeamPersonEntity tSTeamPerson,HttpServletRequest request,HttpServletResponse response - , DataGrid dataGrid,ModelMap modelMap) { - CriteriaQuery cq = new CriteriaQuery(TSTeamPersonEntity.class, dataGrid); - org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSTeamPerson, request.getParameterMap()); - List tSTeamPersons = this.tSTeamPersonService.getListByCriteriaQuery(cq,false); - modelMap.put(NormalExcelConstants.FILE_NAME,"团队人员榜"); - modelMap.put(NormalExcelConstants.CLASS,TSTeamPersonEntity.class); - modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("团队人员榜列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(), - "导出信息")); - modelMap.put(NormalExcelConstants.DATA_LIST, tSTeamPersons); - return NormalExcelConstants.JEECG_EXCEL_VIEW; - } - /** - * 导出excel 使模板 - * - * @param request - * @param response - */ - @RequestMapping(params = "exportXlsByT") - public String exportXlsByT(TSTeamPersonEntity tSTeamPerson,HttpServletRequest request,HttpServletResponse response - , DataGrid dataGrid,ModelMap modelMap) { - modelMap.put(TemplateExcelConstants.FILE_NAME, "团队人员榜"); - modelMap.put(TemplateExcelConstants.PARAMS,new TemplateExportParams("Excel模板地址")); - modelMap.put(TemplateExcelConstants.MAP_DATA,null); - modelMap.put(TemplateExcelConstants.CLASS,TSTeamPersonEntity.class); - modelMap.put(TemplateExcelConstants.LIST_DATA,null); - return TemplateExcelConstants.JEECG_TEMPLATE_EXCEL_VIEW; - } - - @RequestMapping(params = "importExcel", method = RequestMethod.POST) - @ResponseBody - public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { - AjaxJson j = new AjaxJson(); - - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map fileMap = multipartRequest.getFileMap(); - for (Map.Entry entity : fileMap.entrySet()) { - MultipartFile file = entity.getValue();// 获取上传文件对象 - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setNeedSave(true); - try { - List listTSTeamPersonEntitys = ExcelImportUtil.importExcel(file.getInputStream(),TSTeamPersonEntity.class,params); - for (TSTeamPersonEntity tSTeamPerson : listTSTeamPersonEntitys) { - tSTeamPersonService.save(tSTeamPerson); - } - j.setMsg("文件导入成功!"); - } catch (Exception e) { - j.setMsg("文件导入失败!"); - logger.error(ExceptionUtil.getExceptionMessage(e)); - }finally{ - try { - file.getInputStream().close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return j; - } - - /** - * 社区介绍 - * @param - * @return - */ - @RequestMapping(params = "introduce") - public void introduce(HttpServletRequest request,HttpServletResponse response) { - FreemarkerHelper viewEngine = new FreemarkerHelper(); - String path = request.getContextPath(); - String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; - Map map = new HashMap(); - map.put("url", url); - String html = viewEngine.parseTemplate(FTL_Introduce, map); - PrintWriter writer = null; - try { - response.setContentType("text/html"); - response.setHeader("Cache-Control", "no-store"); - writer = response.getWriter(); - writer.println(html); - writer.flush(); - } catch (IOException e) { - e.printStackTrace(); - }finally{ - try { - writer.close(); - } catch (Exception e2) { - // TODO: handle exception - } - } - } - -} diff --git a/src/main/java/org/jeecgframework/web/rank/entity/TSTeamPersonEntity.java b/src/main/java/org/jeecgframework/web/rank/entity/TSTeamPersonEntity.java deleted file mode 100644 index 64cf2200..00000000 --- a/src/main/java/org/jeecgframework/web/rank/entity/TSTeamPersonEntity.java +++ /dev/null @@ -1,279 +0,0 @@ -package org.jeecgframework.web.rank.entity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.hibernate.annotations.GenericGenerator; -import org.jeecgframework.poi.excel.annotation.Excel; - -/** - * @Title: Entity - * @Description: 团队人员榜 - * @author onlineGenerator - * @date 2015-07-04 21:29:29 - * @version V1.0 - * - */ -@Entity -@Table(name = "t_s_team_person", schema = "") -@SuppressWarnings("serial") -public class TSTeamPersonEntity implements java.io.Serializable { - /**主键*/ - private java.lang.String id; - /**创建人名称*/ - private java.lang.String createName; - /**创建人登录名称*/ - private java.lang.String createBy; - /**创建日期*/ - private java.util.Date createDate; - /**更新人名称*/ - private java.lang.String updateName; - /**更新人登录名称*/ - private java.lang.String updateBy; - /**更新日期*/ - private java.util.Date updateDate; - /**所属部门*/ - private java.lang.String sysOrgCode; - /**所属公司*/ - private java.lang.String sysCompanyCode; - /**名称*/ - @Excel(name="名称") - private java.lang.String name; - /**头像路径*/ - @Excel(name="头像", type=2,height=15,width=20) - private java.lang.String imgSrc; - /**简介*/ - @Excel(name="简介") - private java.lang.String introduction; - /**加入时间*/ - @Excel(name="加入时间", importFormat="yyyy-MM-dd HH:mm:ss") - private java.util.Date jionDate; - - /**是否参与*/ - private Integer isJoin; - - /** - *方法: 取得java.lang.String - *@return: java.lang.String 主键 - */ - @Id - @GeneratedValue(generator = "paymentableGenerator") - @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") - @Column(name ="ID",nullable=false,length=36) - public java.lang.String getId(){ - return this.id; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 主键 - */ - public void setId(java.lang.String id){ - this.id = id; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人名称 - */ - @Column(name ="CREATE_NAME",nullable=true,length=50) - public java.lang.String getCreateName(){ - return this.createName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人名称 - */ - public void setCreateName(java.lang.String createName){ - this.createName = createName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人登录名称 - */ - @Column(name ="CREATE_BY",nullable=true,length=50) - public java.lang.String getCreateBy(){ - return this.createBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人登录名称 - */ - public void setCreateBy(java.lang.String createBy){ - this.createBy = createBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 创建日期 - */ - @Column(name ="CREATE_DATE",nullable=true,length=20) - public java.util.Date getCreateDate(){ - return this.createDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 创建日期 - */ - public void setCreateDate(java.util.Date createDate){ - this.createDate = createDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 更新人名称 - */ - @Column(name ="UPDATE_NAME",nullable=true,length=50) - public java.lang.String getUpdateName(){ - return this.updateName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 更新人名称 - */ - public void setUpdateName(java.lang.String updateName){ - this.updateName = updateName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 更新人登录名称 - */ - @Column(name ="UPDATE_BY",nullable=true,length=50) - public java.lang.String getUpdateBy(){ - return this.updateBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 更新人登录名称 - */ - public void setUpdateBy(java.lang.String updateBy){ - this.updateBy = updateBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 更新日期 - */ - @Column(name ="UPDATE_DATE",nullable=true,length=20) - public java.util.Date getUpdateDate(){ - return this.updateDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 更新日期 - */ - public void setUpdateDate(java.util.Date updateDate){ - this.updateDate = updateDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 所属部门 - */ - @Column(name ="SYS_ORG_CODE",nullable=true,length=50) - public java.lang.String getSysOrgCode(){ - return this.sysOrgCode; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 所属部门 - */ - public void setSysOrgCode(java.lang.String sysOrgCode){ - this.sysOrgCode = sysOrgCode; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 所属公司 - */ - @Column(name ="SYS_COMPANY_CODE",nullable=true,length=50) - public java.lang.String getSysCompanyCode(){ - return this.sysCompanyCode; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 所属公司 - */ - public void setSysCompanyCode(java.lang.String sysCompanyCode){ - this.sysCompanyCode = sysCompanyCode; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 名称 - */ - @Column(name ="NAME",nullable=true,length=32) - public java.lang.String getName(){ - return this.name; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 名称 - */ - public void setName(java.lang.String name){ - this.name = name; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 头像路径 - */ - @Column(name ="IMG_SRC",nullable=true,length=50) - public java.lang.String getImgSrc(){ - return this.imgSrc; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 头像路径 - */ - public void setImgSrc(java.lang.String imgSrc){ - this.imgSrc = imgSrc; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 简介 - */ - @Column(name ="INTRODUCTION",nullable=true,length=500) - public java.lang.String getIntroduction(){ - return this.introduction; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 简介 - */ - public void setIntroduction(java.lang.String introduction){ - this.introduction = introduction; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 加入时间 - */ - @Column(name ="JION_DATE",nullable=true,length=20) - public java.util.Date getJionDate(){ - return this.jionDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 加入时间 - */ - public void setJionDate(java.util.Date jionDate){ - this.jionDate = jionDate; - } - - @Column(name ="is_join") - public Integer getIsJoin() { - return isJoin; - } - - public void setIsJoin(Integer isJoin) { - this.isJoin = isJoin; - } - -} diff --git a/src/main/java/org/jeecgframework/web/rank/service/TSTeamPersonServiceI.java b/src/main/java/org/jeecgframework/web/rank/service/TSTeamPersonServiceI.java deleted file mode 100644 index 4ccedc14..00000000 --- a/src/main/java/org/jeecgframework/web/rank/service/TSTeamPersonServiceI.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.jeecgframework.web.rank.service; -import org.jeecgframework.web.rank.entity.TSTeamPersonEntity; -import org.jeecgframework.core.common.service.CommonService; - -import java.io.Serializable; - -public interface TSTeamPersonServiceI extends CommonService{ - - public void delete(T entity); - - public Serializable save(T entity); - - public void saveOrUpdate(T entity); - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(TSTeamPersonEntity t); - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(TSTeamPersonEntity t); - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(TSTeamPersonEntity t); -} diff --git a/src/main/java/org/jeecgframework/web/rank/service/impl/TSTeamPersonServiceImpl.java b/src/main/java/org/jeecgframework/web/rank/service/impl/TSTeamPersonServiceImpl.java deleted file mode 100644 index 5f67627a..00000000 --- a/src/main/java/org/jeecgframework/web/rank/service/impl/TSTeamPersonServiceImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.jeecgframework.web.rank.service.impl; -import org.jeecgframework.web.rank.service.TSTeamPersonServiceI; -import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.web.rank.entity.TSTeamPersonEntity; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import java.util.UUID; -import java.io.Serializable; - -@Service("tSTeamPersonService") -@Transactional -public class TSTeamPersonServiceImpl extends CommonServiceImpl implements TSTeamPersonServiceI { - - - public void delete(T entity) { - super.delete(entity); - //执行删除操作配置的sql增强 - this.doDelSql((TSTeamPersonEntity)entity); - } - - public Serializable save(T entity) { - Serializable t = super.save(entity); - //执行新增操作配置的sql增强 - this.doAddSql((TSTeamPersonEntity)entity); - return t; - } - - public void saveOrUpdate(T entity) { - super.saveOrUpdate(entity); - //执行更新操作配置的sql增强 - this.doUpdateSql((TSTeamPersonEntity)entity); - } - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(TSTeamPersonEntity t){ - return true; - } - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(TSTeamPersonEntity t){ - return true; - } - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(TSTeamPersonEntity t){ - return true; - } - - /** - * 替换sql中的变量 - * @param sql - * @return - */ - public String replaceVal(String sql,TSTeamPersonEntity t){ - sql = sql.replace("#{id}",String.valueOf(t.getId())); - sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName())); - sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy())); - sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate())); - sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName())); - sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy())); - sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate())); - sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode())); - sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode())); - sql = sql.replace("#{name}",String.valueOf(t.getName())); - sql = sql.replace("#{img_src}",String.valueOf(t.getImgSrc())); - sql = sql.replace("#{introduction}",String.valueOf(t.getIntroduction())); - sql = sql.replace("#{jion_date}",String.valueOf(t.getJionDate())); - sql = sql.replace("#{UUID}",UUID.randomUUID().toString()); - return sql; - } -} \ No newline at end of file diff --git a/src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTaskJob.java b/src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTaskJob.java deleted file mode 100644 index 6eb36c12..00000000 --- a/src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTaskJob.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.jeecgframework.web.sms.util.task; - -public class SmsSendTaskJob { - -} diff --git a/src/main/java/org/jeecgframework/web/system/controller/core/DepartController.java b/src/main/java/org/jeecgframework/web/system/controller/core/DepartController.java index 690e6232..fb9e4a61 100644 --- a/src/main/java/org/jeecgframework/web/system/controller/core/DepartController.java +++ b/src/main/java/org/jeecgframework/web/system/controller/core/DepartController.java @@ -329,6 +329,11 @@ public class DepartController extends BaseController { */ @RequestMapping(params = "userDatagrid") public void userDatagrid(TSUser user,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { + + if(user!=null&&user.getDepartid()!=null){ + user.setDepartid(null);//设置用户的所属部门的查询条件为空; + } + CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid); //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, user); diff --git a/src/main/java/org/jeecgframework/web/system/controller/core/DynamicDataSourceController.java b/src/main/java/org/jeecgframework/web/system/controller/core/DynamicDataSourceController.java index a2c49d57..ac26a61d 100644 --- a/src/main/java/org/jeecgframework/web/system/controller/core/DynamicDataSourceController.java +++ b/src/main/java/org/jeecgframework/web/system/controller/core/DynamicDataSourceController.java @@ -18,6 +18,7 @@ import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.enums.SysDatabaseEnum; import org.jeecgframework.core.util.MutiLangUtil; import org.jeecgframework.core.util.MyBeanUtils; +import org.jeecgframework.core.util.PasswordUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.web.system.pojo.base.DynamicDataSourceEntity; @@ -126,6 +127,9 @@ public class DynamicDataSourceController extends BaseController { DynamicDataSourceEntity t = dynamicDataSourceService.get(DynamicDataSourceEntity.class, dbSource.getId()); try { MyBeanUtils.copyBeanNotNull2Bean(dbSource, t); + + t.setDbPassword(PasswordUtil.encrypt(t.getDbPassword(), t.getDbUser(), PasswordUtil.getStaticSalt())); + dynamicDataSourceService.saveOrUpdate(t); dynamicDataSourceService.refleshCache(); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); @@ -136,6 +140,12 @@ public class DynamicDataSourceController extends BaseController { } else { message = MutiLangUtil.paramAddSuccess("common.datasource.manage"); + try { + dbSource.setDbPassword(PasswordUtil.encrypt(dbSource.getDbPassword(), dbSource.getDbUser(), PasswordUtil.getStaticSalt())); + } catch (Exception e) { + e.printStackTrace(); + } + dynamicDataSourceService.save(dbSource); dynamicDataSourceService.refleshCache(); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); @@ -153,6 +163,15 @@ public class DynamicDataSourceController extends BaseController { public ModelAndView addorupdate(DynamicDataSourceEntity dbSource, HttpServletRequest req) { if (StringUtil.isNotEmpty(dbSource.getId())) { dbSource = dynamicDataSourceService.getEntity(DynamicDataSourceEntity.class, dbSource.getId()); + + try { + //String result = PasswordUtil.decrypt(d.getDbPassword(), d.getDbUser(), PasswordUtil.getStaticSalt()); + //System.out.println("==result"+result); + dbSource.setDbPassword(PasswordUtil.decrypt(dbSource.getDbPassword(), dbSource.getDbUser(), PasswordUtil.getStaticSalt()));//解密字符串,密文展示 + } catch (Exception e) { + e.printStackTrace(); + } + req.setAttribute("dbSourcePage", dbSource); } return new ModelAndView("system/dbsource/dbSource"); diff --git a/src/main/java/org/jeecgframework/web/system/controller/core/JformInnerMailController.java b/src/main/java/org/jeecgframework/web/system/controller/core/JformInnerMailController.java deleted file mode 100644 index 21b63c62..00000000 --- a/src/main/java/org/jeecgframework/web/system/controller/core/JformInnerMailController.java +++ /dev/null @@ -1,501 +0,0 @@ -package org.jeecgframework.web.system.controller.core; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; -import org.jeecgframework.core.common.controller.BaseController; -import org.jeecgframework.core.common.exception.BusinessException; -import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; -import org.jeecgframework.core.common.model.common.UploadFile; -import org.jeecgframework.core.common.model.json.AjaxJson; -import org.jeecgframework.core.common.model.json.DataGrid; -import org.jeecgframework.core.constant.Globals; -import org.jeecgframework.core.util.DateUtils; -import org.jeecgframework.core.util.MyBeanUtils; -import org.jeecgframework.core.util.StringUtil; -import org.jeecgframework.core.util.oConvertUtils; -import org.jeecgframework.tag.core.easyui.TagUtil; -import org.jeecgframework.web.system.manager.ClientManager; -import org.jeecgframework.web.system.pojo.base.JformInnerMailAttach; -import org.jeecgframework.web.system.pojo.base.JformInnerMailEntity; -import org.jeecgframework.web.system.pojo.base.JformInnerMailReceiverEntity; -import org.jeecgframework.web.system.pojo.base.TSUser; -import org.jeecgframework.web.system.service.JformInnerMailServiceI; -import org.jeecgframework.web.system.service.SystemService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.servlet.ModelAndView; - - - -/** - * @Title: Controller - * @Description: 内部邮件 - * @author onlineGenerator - * @date 2016-03-12 14:43:11 - * @version V1.0 - * - */ -//@Scope("prototype") -@Controller -@RequestMapping("/jformInnerMailController") -public class JformInnerMailController extends BaseController { - /** - * Logger for this class - */ - private static final Logger logger = Logger.getLogger(JformInnerMailController.class); - - @Autowired - private JformInnerMailServiceI jformInnerMailService; - @Autowired - private SystemService systemService; - - - /** - * 保存内部邮件 - * @param ids - * @return - */ - @RequestMapping(params = "doSave") - @ResponseBody - public AjaxJson doSave(JformInnerMailEntity jformInnerMail,HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - message = "内部邮件添加成功"; - //更新 - try { - if(!StringUtils.isEmpty(jformInnerMail.getId())){ - JformInnerMailEntity t = jformInnerMailService.get(JformInnerMailEntity.class, jformInnerMail.getId()); - MyBeanUtils.copyBeanNotNull2Bean(jformInnerMail, t); - jformInnerMailService.saveOrUpdate(t); - } - //新增 - else{ - jformInnerMailService.save(jformInnerMail); - } - //更新收件人 - this.saveMailReceiver(jformInnerMail); - } catch (Exception e) { - e.printStackTrace(); - message = "内部邮件保存失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - j.setObj(jformInnerMail); - return j; - } - - /** - * 选择收件人跳转页面 - * - * @return - */ - @RequestMapping(params = "receivers") - public ModelAndView roles(HttpServletRequest request) { - ModelAndView mv = new ModelAndView("system/mail/selectReceiver"); - String ids = oConvertUtils.getString(request.getParameter("ids")); - mv.addObject("ids", ids); - return mv; - } - - /**保存邮件接收人信息 - * 先删除原来的,再添加新的记录。 - * @param mail - */ - protected void saveMailReceiver(JformInnerMailEntity mail) { - String[] userids = mail.getReceiverIds().split(","); - //先删除原来的邮件 收件人 记录 - systemService.deleteAllEntitie(systemService.findByProperty(JformInnerMailReceiverEntity.class, "JMail.id", mail.getId())); - for (int i = 0; i < userids.length; i++) { - JformInnerMailReceiverEntity mailReceiver = new JformInnerMailReceiverEntity(); - mailReceiver.setJMail(mail); - mailReceiver.setCreateDate(new Date()); - mailReceiver.setStatus(Globals.MAILRECEIVER_STATUS_UNREAD); - TSUser tsUser = new TSUser(); - tsUser.setId(userids[i]); - mailReceiver.setTSUser(tsUser); - this.systemService.save(mailReceiver); - } - } - - /** - * 内部邮件 新增或者更新 - * - * @return - */ - @RequestMapping(params = "goAddOrUpdate") - public ModelAndView goAddOrUpdate(JformInnerMailEntity jformInnerMail, HttpServletRequest req) { - if (StringUtil.isNotEmpty(jformInnerMail.getId())) { - jformInnerMail = jformInnerMailService.getEntity(JformInnerMailEntity.class, jformInnerMail.getId()); - List documents = systemService.findByProperty(JformInnerMailAttach.class, "mailid", jformInnerMail.getId()); - req.setAttribute("documents", documents); - req.setAttribute("jformInnerMailPage", jformInnerMail); - } - String clickFunctionId = req.getParameter("clickFunctionId"); - req.setAttribute("clickFunctionId", clickFunctionId); - return new ModelAndView("system/mail/jformInnerMail-update"); - } - - /** - * 内部邮件 查看详情 - * - * @return - */ - @RequestMapping(params = "goDetail") - public ModelAndView goDetail(JformInnerMailEntity jformInnerMail, HttpServletRequest req) { - if (StringUtil.isNotEmpty(jformInnerMail.getId())) { - jformInnerMail = jformInnerMailService.getEntity(JformInnerMailEntity.class, jformInnerMail.getId()); - List documents = systemService.findByProperty(JformInnerMailAttach.class, "mailid", jformInnerMail.getId()); - req.setAttribute("documents", documents); - req.setAttribute("jformInnerMailPage", jformInnerMail); - } - return new ModelAndView("system/mail/jformInnerMail-detail"); - } - - /** - * 发信箱 邮件列表 页面跳转 - * @return - */ - @RequestMapping(params = "goSendMails") - public ModelAndView goSendMails(HttpServletRequest request,String type) { - return new ModelAndView("system/mail/jformInnerMailSendList"); - } - /** - * 发信箱 邮件列表 - * @return - */ - @RequestMapping(params = "getSendMails") - @ResponseBody - public List> getSendMails(String title){ - String account = ClientManager.getInstance().getClient().getUser().getUserName(); - - StringBuffer sqlb =new StringBuffer("from JformInnerMailEntity where status ='"+Globals.MAIL_STATUS_SEND+"' and createBy ='"+account +"'"); - if(StringUtils.isNotEmpty(title)){ - sqlb.append(" and title like '%"+title+"%'"); - } - - List mails =this.systemService.findByQueryString(sqlb.toString()); - List> ret = new ArrayList>(); - for(int i=0;i< mails.size();i++){ - Map m = new HashMap(); - m.put("id", mails.get(i).getId()); - m.put("title", mails.get(i).getTitle()); - m.put("receiverNames", mails.get(i).getReceiverNames()); - m.put("createTime", DateUtils.date2Str(mails.get(i).getCreateDate(), DateUtils.time_sdf)); - m.put("status", mails.get(i).getStatus()); - ret.add(m); - } - return ret; - } - - - - /** - * 草稿箱 邮件列表 页面跳转 - * @return - */ - @RequestMapping(params = "goUnSendMails") - public ModelAndView goUnSendMails(HttpServletRequest request,String type) { - return new ModelAndView("system/mail/jformInnerMailUnSendList"); - } - /** - * 草稿箱 邮件列表 - * @return - */ - @RequestMapping(params = "getUnSendMails") - @ResponseBody - public List> getUnSendMails(String title){ - String account = ClientManager.getInstance().getClient().getUser().getUserName(); - - StringBuffer sqlb =new StringBuffer("from JformInnerMailEntity where status ='"+Globals.MAIL_STATUS_UNSEND+"' and createBy ='"+account +"'"); - if(StringUtils.isNotEmpty(title)){ - sqlb.append(" and title like '%"+title+"%'"); - } - - List mails =this.systemService.findByQueryString(sqlb.toString()); - List> ret = new ArrayList>(); - for(int i=0;i< mails.size();i++){ - Map m = new HashMap(); - m.put("id", mails.get(i).getId()); - m.put("title", mails.get(i).getTitle()); - m.put("receiverNames", mails.get(i).getReceiverNames()); - m.put("createTime", DateUtils.date2Str(mails.get(i).getCreateDate(), DateUtils.time_sdf)); - m.put("status", mails.get(i).getStatus()); - ret.add(m); - } - sqlb.setLength(0); - return ret; - } - - - /** - * 删除草稿箱、发件箱 邮件 - * - * @return - */ - @RequestMapping(params = "doDelMail") - @ResponseBody - public AjaxJson doDelMail(JformInnerMailEntity innerMailEntity, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - innerMailEntity = systemService.getEntity(JformInnerMailEntity.class, innerMailEntity.getId()); - message = "删除成功"; - try{ - // 未发送 直接删除 - if(innerMailEntity.getStatus().equals(Globals.MAIL_STATUS_UNSEND)){ - systemService.delete(innerMailEntity); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - } - // 已经发送的 更新状态 - else{ - innerMailEntity.setStatus(Globals.MAIL_STATUS_DEL); - systemService.updateEntitie(innerMailEntity); - systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); - } - }catch(Exception e){ - e.printStackTrace(); - message = "删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 删除草稿箱、发件箱 邮件 - * - * @return - */ - @RequestMapping(params = "doDelMails") - @ResponseBody - public AjaxJson doDelMails(String ids, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - message = "删除成功"; - try{ - for(String id :ids.split(",")){ - JformInnerMailEntity innerMailEntity = systemService.getEntity(JformInnerMailEntity.class, id); - // 未发送 直接删除 - if(innerMailEntity.getStatus().equals(Globals.MAIL_STATUS_UNSEND)){ - systemService.delete(innerMailEntity); - } - // 已经发送的 更新状态 - else{ - innerMailEntity.setStatus(Globals.MAIL_STATUS_DEL); - systemService.updateEntitie(innerMailEntity); - } - } - } - catch(Exception e){ - e.printStackTrace(); - message = "删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - - /** - * 收件箱 邮件列表 页面跳转 - * @return - */ - @RequestMapping(params = "goReceivedMails") - public ModelAndView goReceivedMails(HttpServletRequest request,String type) { - return new ModelAndView("system/mail/jformInnerMailReceiveList"); - } - - /** - * 收件箱 邮件列表 - * @return - */ - @RequestMapping(params = "getReceivedMails") - @ResponseBody - public List> getReceivedMails(HttpServletRequest request, String senderName,String title,DataGrid dataGrid){ - String userId = ClientManager.getInstance().getClient().getUser().getId(); - StringBuffer sqlb =new StringBuffer("from JformInnerMailReceiverEntity where TSUser.id ='"+userId +"'and JMail.status !='"+Globals.MAIL_STATUS_UNSEND+"'"); - - if(StringUtils.isNotEmpty(senderName)){ - sqlb.append(" and JMail.createName like '%"+senderName+"%'"); - } - - if(StringUtils.isNotEmpty(title)){ - sqlb.append(" and JMail.title like '%"+title+"%'"); - } - - //收件状态不为删除,且邮件为已发送状态 - List receivers =this.systemService.findByQueryString(sqlb.toString()); - List> ret = new ArrayList>(); - for(int i=0;i< receivers.size();i++){ - Map m = new HashMap(); - m.put("id", receivers.get(i).getId()); - m.put("mailId", receivers.get(i).getJMail().getId()); - m.put("title", receivers.get(i).getJMail().getTitle()); - m.put("senderName", receivers.get(i).getJMail().getCreateName()); - m.put("senderAccount", receivers.get(i).getJMail().getCreateBy()); - m.put("sendTime", DateUtils.date2Str(receivers.get(i).getCreateDate(), DateUtils.time_sdf)); - m.put("status", receivers.get(i).getStatus()); - ret.add(m); - } - return ret; - } - - /** - * 删除收件箱邮件 - * @return - */ - @RequestMapping(params = "doDelReceivedMail") - @ResponseBody - public AjaxJson doDelReceivedMail(JformInnerMailReceiverEntity jformInnerMailReceiverEntity, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - jformInnerMailReceiverEntity = systemService.getEntity(JformInnerMailReceiverEntity.class, jformInnerMailReceiverEntity.getId()); - message = "删除成功"; - try{ - systemService.delete(jformInnerMailReceiverEntity); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 删除收件箱邮件 - * @return - */ - @RequestMapping(params = "doDelReceivedMails") - @ResponseBody - public AjaxJson doDelReceivedMails(String ids, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - message = "删除成功"; - - for(String id :ids.split(",")){ - JformInnerMailReceiverEntity jformInnerMailReceiverEntity = systemService.getEntity(JformInnerMailReceiverEntity.class, id); - systemService.delete(jformInnerMailReceiverEntity); - } - - j.setMsg(message); - return j; - } - - - /** - * 删除邮件附件 - * - * @return - */ - @RequestMapping(params = "delFile") - @ResponseBody - public AjaxJson delFile(JformInnerMailAttach jformInnerMailAttach, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - String id = request.getParameter("id"); - JformInnerMailAttach file = systemService.getEntity(JformInnerMailAttach.class, id); - message = "" + file.getAttachmenttitle() + "被删除成功"; - jformInnerMailService.deleteFile(file); - systemService.addLog(message, Globals.Log_Type_DEL, - Globals.Log_Leavel_INFO); - j.setSuccess(true); - j.setMsg(message); - return j; - } - /** - * 上传邮件附件 - * - * @return - */ - @RequestMapping(params = "saveFile") - @ResponseBody - public AjaxJson saveFile(HttpServletRequest request, HttpServletResponse response) { - AjaxJson j = new AjaxJson(); - - JformInnerMailAttach jformInnerMailAttach = new JformInnerMailAttach(); - - String fileKey = oConvertUtils.getString(request.getParameter("fileKey"));// 文件ID - - String mailId = oConvertUtils.getString(request.getParameter("mailId"));//邮件id - - if (StringUtil.isNotEmpty(fileKey)) { - jformInnerMailAttach.setId(fileKey); - jformInnerMailAttach = systemService.getEntity(JformInnerMailAttach.class, fileKey); - - } - jformInnerMailAttach.setMailid(mailId); - - UploadFile uploadFile = new UploadFile(request, jformInnerMailAttach); - uploadFile.setCusPath("files"); - uploadFile.setSwfpath("swfpath"); - uploadFile.setByteField(null);//不存二进制内容 - jformInnerMailAttach = systemService.uploadFile(uploadFile); - - j.setMsg("文件添加成功"); - return j; - } - /** - * 删除内部邮件 - * - * @return - */ - @RequestMapping(params = "doDel") - @ResponseBody - public AjaxJson doDel(JformInnerMailEntity jformInnerMail, HttpServletRequest request) { - String message = null; - AjaxJson j = new AjaxJson(); - jformInnerMail = systemService.getEntity(JformInnerMailEntity.class, jformInnerMail.getId()); - message = "内部邮件删除成功"; - try{ - jformInnerMailService.delete(jformInnerMail); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - }catch(Exception e){ - e.printStackTrace(); - message = "内部邮件删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - - /** - * 批量删除内部邮件 - * - * @return - */ - @RequestMapping(params = "doBatchDel") - @ResponseBody - public AjaxJson doBatchDel(String ids,HttpServletRequest request){ - String message = null; - AjaxJson j = new AjaxJson(); - message = "内部邮件删除成功"; - try{ - for(String id:ids.split(",")){ - JformInnerMailEntity jformInnerMail = systemService.getEntity(JformInnerMailEntity.class, - id - ); - jformInnerMailService.delete(jformInnerMail); - systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); - } - }catch(Exception e){ - e.printStackTrace(); - message = "内部邮件删除失败"; - throw new BusinessException(e.getMessage()); - } - j.setMsg(message); - return j; - } - -} diff --git a/src/main/java/org/jeecgframework/web/system/controller/core/LoginController.java b/src/main/java/org/jeecgframework/web/system/controller/core/LoginController.java index 1d5bd0de..0cfab29f 100644 --- a/src/main/java/org/jeecgframework/web/system/controller/core/LoginController.java +++ b/src/main/java/org/jeecgframework/web/system/controller/core/LoginController.java @@ -132,7 +132,9 @@ public class LoginController extends BaseController{ saveLoginSuccessInfo(req, u, orgId); } } else { - j.setMsg(mutiLangService.getLang("common.username.or.password.error")); + + j.setMsg(mutiLangService.getLang("common.lock.user")); + j.setSuccess(false); } } diff --git a/src/main/java/org/jeecgframework/web/system/controller/core/UserController.java b/src/main/java/org/jeecgframework/web/system/controller/core/UserController.java index a721df32..7fa8e64c 100644 --- a/src/main/java/org/jeecgframework/web/system/controller/core/UserController.java +++ b/src/main/java/org/jeecgframework/web/system/controller/core/UserController.java @@ -610,7 +610,6 @@ public class UserController extends BaseController { String ids = oConvertUtils.getString(request.getParameter("ids")); mv.addObject("ids", ids); return mv; - //--author:zhoujf-----end------date:20150531--------for: 编辑用户,选择角色,弹出的角色列表页面,默认没选中 } /** diff --git a/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailAttach.java b/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailAttach.java deleted file mode 100644 index 2cd6f9ae..00000000 --- a/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailAttach.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.jeecgframework.web.system.pojo.base; -// default package - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.PrimaryKeyJoinColumn; -import javax.persistence.Table; - -/** - * 邮件附件 - * @author 许国杰 - */ -@Entity -@Table(name = "jform_inner_mail_attach") -@PrimaryKeyJoinColumn(name = "id") -public class JformInnerMailAttach extends TSAttachment implements java.io.Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - private String mailid;// 邮件id - - @Column(name = "mailid", length = 100) - public String getMailid() { - return mailid; - } - public void setMailid(String mailid) { - this.mailid = mailid; - } - - -} \ No newline at end of file diff --git a/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailEntity.java b/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailEntity.java deleted file mode 100644 index 864dbbb1..00000000 --- a/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailEntity.java +++ /dev/null @@ -1,212 +0,0 @@ -package org.jeecgframework.web.system.pojo.base; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.hibernate.annotations.GenericGenerator; -import org.jeecgframework.poi.excel.annotation.Excel; - -/** - * @Title: Entity - * @Description: 内部邮件 - * @author onlineGenerator - * @date 2016-03-13 20:09:29 - * @version V1.0 - * - */ -@Entity -@Table(name = "jform_inner_mail", schema = "") -@SuppressWarnings("serial") -public class JformInnerMailEntity implements java.io.Serializable { - /**主键*/ - private java.lang.String id; - /**创建人名称*/ - private java.lang.String createName; - /**创建人登录名称*/ - private java.lang.String createBy; - /**创建日期*/ - private java.util.Date createDate; - /**主题*/ - @Excel(name="主题") - private java.lang.String title; - /**附件*/ - @Excel(name="附件") - private java.lang.String attachment; - /**内容*/ - @Excel(name="内容") - private java.lang.String content; - /**状态*/ - private java.lang.String status; - /**接收者姓名列表*/ - private java.lang.String receiverNames; - /**收件人标识列表*/ - @Excel(name="收件人标识列表") - private java.lang.String receiverIds; - - /** - *方法: 取得java.lang.String - *@return: java.lang.String 主键 - */ - @Id - @GeneratedValue(generator = "paymentableGenerator") - @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") - @Column(name ="ID",nullable=false,length=36) - public java.lang.String getId(){ - return this.id; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 主键 - */ - public void setId(java.lang.String id){ - this.id = id; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人名称 - */ - @Column(name ="CREATE_NAME",nullable=true,length=50) - public java.lang.String getCreateName(){ - return this.createName; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人名称 - */ - public void setCreateName(java.lang.String createName){ - this.createName = createName; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 创建人登录名称 - */ - @Column(name ="CREATE_BY",nullable=true,length=50) - public java.lang.String getCreateBy(){ - return this.createBy; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 创建人登录名称 - */ - public void setCreateBy(java.lang.String createBy){ - this.createBy = createBy; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 创建日期 - */ - @Column(name ="CREATE_DATE",nullable=true,length=20) - public java.util.Date getCreateDate(){ - return this.createDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 创建日期 - */ - public void setCreateDate(java.util.Date createDate){ - this.createDate = createDate; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 主题 - */ - @Column(name ="TITLE",nullable=true,length=100) - public java.lang.String getTitle(){ - return this.title; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 主题 - */ - public void setTitle(java.lang.String title){ - this.title = title; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 附件 - */ - @Column(name ="ATTACHMENT",nullable=true,length=1000) - public java.lang.String getAttachment(){ - return this.attachment; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 附件 - */ - public void setAttachment(java.lang.String attachment){ - this.attachment = attachment; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 内容 - */ - @Column(name ="CONTENT",nullable=true,length=2000) - public java.lang.String getContent(){ - return this.content; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 内容 - */ - public void setContent(java.lang.String content){ - this.content = content; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 状态 - */ - @Column(name ="STATUS",nullable=true,length=50) - public java.lang.String getStatus(){ - return this.status; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 状态 - */ - public void setStatus(java.lang.String status){ - this.status = status; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 接收者姓名列表 - */ - @Column(name ="RECEIVER_NAMES",nullable=true,length=300) - public java.lang.String getReceiverNames(){ - return this.receiverNames; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 接收者姓名列表 - */ - public void setReceiverNames(java.lang.String receiverNames){ - this.receiverNames = receiverNames; - } - /** - *方法: 取得java.lang.String - *@return: java.lang.String 收件人标识列表 - */ - @Column(name ="RECEIVER_IDS",nullable=true,length=300) - public java.lang.String getReceiverIds(){ - return this.receiverIds; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 收件人标识列表 - */ - public void setReceiverIds(java.lang.String receiverIds){ - this.receiverIds = receiverIds; - } -} diff --git a/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailReceiverEntity.java b/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailReceiverEntity.java deleted file mode 100644 index 0c08e543..00000000 --- a/src/main/java/org/jeecgframework/web/system/pojo/base/JformInnerMailReceiverEntity.java +++ /dev/null @@ -1,131 +0,0 @@ -package org.jeecgframework.web.system.pojo.base; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -import org.hibernate.annotations.GenericGenerator; -import org.jeecgframework.poi.excel.annotation.Excel; - -/** - * @Title: Entity - * @Description: 邮件接收人关系表 - * @author onlineGenerator - * @date 2016-03-13 20:05:55 - * @version V1.0 - * - */ -@Entity -@Table(name = "jform_inner_mail_receiver", schema = "") -@SuppressWarnings("serial") -public class JformInnerMailReceiverEntity implements java.io.Serializable { - /**主键*/ - private java.lang.String id; - /**创建日期*/ - private java.util.Date createDate; - /**更新日期*/ - private java.util.Date updateDate; - - /**收件状态*/ - @Excel(name="收件状态") - private java.lang.String status; - - - - private TSUser TSUser = new TSUser(); - private JformInnerMailEntity JMail = new JformInnerMailEntity(); - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "user_id") - public TSUser getTSUser() { - return this.TSUser; - } - - public void setTSUser(TSUser TSUser) { - this.TSUser = TSUser; - } - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "mail_id") - public JformInnerMailEntity getJMail() { - return JMail; - } - - public void setJMail(JformInnerMailEntity jMail) { - JMail = jMail; - } - - /** - *方法: 取得java.lang.String - *@return: java.lang.String 主键 - */ - @Id - @GeneratedValue(generator = "paymentableGenerator") - @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") - @Column(name ="ID",nullable=false,length=36) - public java.lang.String getId(){ - return this.id; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 主键 - */ - public void setId(java.lang.String id){ - this.id = id; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 创建日期 - */ - @Column(name ="CREATE_DATE",nullable=true,length=20) - public java.util.Date getCreateDate(){ - return this.createDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 创建日期 - */ - public void setCreateDate(java.util.Date createDate){ - this.createDate = createDate; - } - /** - *方法: 取得java.util.Date - *@return: java.util.Date 更新日期 - */ - @Column(name ="UPDATE_DATE",nullable=true,length=20) - public java.util.Date getUpdateDate(){ - return this.updateDate; - } - - /** - *方法: 设置java.util.Date - *@param: java.util.Date 更新日期 - */ - public void setUpdateDate(java.util.Date updateDate){ - this.updateDate = updateDate; - } - - /** - *方法: 取得java.lang.String - *@return: java.lang.String 收件状态 - */ - @Column(name ="STATUS",nullable=true,length=50) - public java.lang.String getStatus(){ - return this.status; - } - - /** - *方法: 设置java.lang.String - *@param: java.lang.String 收件状态 - */ - public void setStatus(java.lang.String status){ - this.status = status; - } -} diff --git a/src/main/java/org/jeecgframework/web/system/service/JformInnerMailServiceI.java b/src/main/java/org/jeecgframework/web/system/service/JformInnerMailServiceI.java deleted file mode 100644 index dae8f0e7..00000000 --- a/src/main/java/org/jeecgframework/web/system/service/JformInnerMailServiceI.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.jeecgframework.web.system.service; -import java.io.Serializable; -import java.util.Map; - -import org.jeecgframework.core.common.service.CommonService; -import org.jeecgframework.core.util.ContextHolderUtils; -import org.jeecgframework.core.util.FileUtils; -import org.jeecgframework.web.demo.entity.test.TFinanceFilesEntity; -import org.jeecgframework.web.system.pojo.base.JformInnerMailAttach; -import org.jeecgframework.web.system.pojo.base.JformInnerMailEntity; - -public interface JformInnerMailServiceI extends CommonService{ - - /** - * 附件删除 - */ - public void deleteFile(JformInnerMailAttach file); - - public void delete(T entity); - - public Serializable save(T entity); - - public void saveOrUpdate(T entity); - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(JformInnerMailEntity t); - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(JformInnerMailEntity t); - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(JformInnerMailEntity t); -} diff --git a/src/main/java/org/jeecgframework/web/system/service/impl/JformInnerMailServiceImpl.java b/src/main/java/org/jeecgframework/web/system/service/impl/JformInnerMailServiceImpl.java deleted file mode 100644 index f0788cec..00000000 --- a/src/main/java/org/jeecgframework/web/system/service/impl/JformInnerMailServiceImpl.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.jeecgframework.web.system.service.impl; -import java.io.Serializable; -import java.util.Map; -import java.util.UUID; - -import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.core.util.ContextHolderUtils; -import org.jeecgframework.core.util.FileUtils; -import org.jeecgframework.web.demo.entity.test.TFinanceFilesEntity; -import org.jeecgframework.web.system.pojo.base.JformInnerMailAttach; -import org.jeecgframework.web.system.pojo.base.JformInnerMailEntity; -import org.jeecgframework.web.system.service.JformInnerMailServiceI; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("jformInnerMailService") -@Transactional -public class JformInnerMailServiceImpl extends CommonServiceImpl implements JformInnerMailServiceI { - - /** - * 附件删除 - */ - public void deleteFile(JformInnerMailAttach file) { - - //[1].删除附件 - String sql = "select * from t_s_attachment where id = ?"; - Map attachmentMap = commonDao.findOneForJdbc(sql, file.getId()); - //附件相对路径 - String realpath = (String) attachmentMap.get("realpath"); - String fileName = FileUtils.getFilePrefix2(realpath); - - //获取部署项目绝对地址 - String realPath = ContextHolderUtils.getSession().getServletContext().getRealPath("/"); - FileUtils.delete(realPath+realpath); - FileUtils.delete(realPath+fileName+".pdf"); - FileUtils.delete(realPath+fileName+".swf"); - //[2].删除数据 - commonDao.delete(file); - } - - public void delete(T entity) { - super.delete(entity); - //执行删除操作配置的sql增强 - this.doDelSql((JformInnerMailEntity)entity); - } - - public Serializable save(T entity) { - Serializable t = super.save(entity); - //执行新增操作配置的sql增强 - this.doAddSql((JformInnerMailEntity)entity); - return t; - } - - public void saveOrUpdate(T entity) { - super.saveOrUpdate(entity); - //执行更新操作配置的sql增强 - this.doUpdateSql((JformInnerMailEntity)entity); - } - - /** - * 默认按钮-sql增强-新增操作 - * @param id - * @return - */ - public boolean doAddSql(JformInnerMailEntity t){ - return true; - } - /** - * 默认按钮-sql增强-更新操作 - * @param id - * @return - */ - public boolean doUpdateSql(JformInnerMailEntity t){ - return true; - } - /** - * 默认按钮-sql增强-删除操作 - * @param id - * @return - */ - public boolean doDelSql(JformInnerMailEntity t){ - return true; - } - - /** - * 替换sql中的变量 - * @param sql - * @return - */ - public String replaceVal(String sql,JformInnerMailEntity t){ - sql = sql.replace("#{id}",String.valueOf(t.getId())); - sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName())); - sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy())); - sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate())); - sql = sql.replace("#{title}",String.valueOf(t.getTitle())); - sql = sql.replace("#{attachment}",String.valueOf(t.getAttachment())); - sql = sql.replace("#{content}",String.valueOf(t.getContent())); - sql = sql.replace("#{status}",String.valueOf(t.getStatus())); - sql = sql.replace("#{receiver_names}",String.valueOf(t.getReceiverNames())); - sql = sql.replace("#{receiver_ids}",String.valueOf(t.getReceiverIds())); - sql = sql.replace("#{UUID}",UUID.randomUUID().toString()); - return sql; - } -} \ No newline at end of file diff --git a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsController.java b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsController.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/controller/TSSmsController.java rename to src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsController.java index 1dd0784b..e2896a15 100644 --- a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsController.java +++ b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsController.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.controller; +package org.jeecgframework.web.system.sms.controller; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -24,8 +24,8 @@ import org.jeecgframework.core.util.MyBeanUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.tag.core.easyui.TagUtil; -import org.jeecgframework.web.sms.entity.TSSmsEntity; -import org.jeecgframework.web.sms.service.TSSmsServiceI; +import org.jeecgframework.web.system.sms.entity.TSSmsEntity; +import org.jeecgframework.web.system.sms.service.TSSmsServiceI; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; diff --git a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsSqlController.java b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsSqlController.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/controller/TSSmsSqlController.java rename to src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsSqlController.java index 4beb44a5..a07f833b 100644 --- a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsSqlController.java +++ b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsSqlController.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.controller; +package org.jeecgframework.web.system.sms.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -21,8 +21,8 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; -import org.jeecgframework.web.sms.entity.TSSmsSqlEntity; -import org.jeecgframework.web.sms.service.TSSmsSqlServiceI; +import org.jeecgframework.web.system.sms.entity.TSSmsSqlEntity; +import org.jeecgframework.web.system.sms.service.TSSmsSqlServiceI; diff --git a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsTemplateController.java b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsTemplateController.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/controller/TSSmsTemplateController.java rename to src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsTemplateController.java index c1cf9298..5b0ab590 100644 --- a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsTemplateController.java +++ b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsTemplateController.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.controller; +package org.jeecgframework.web.system.sms.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -21,8 +21,8 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; -import org.jeecgframework.web.sms.entity.TSSmsTemplateEntity; -import org.jeecgframework.web.sms.service.TSSmsTemplateServiceI; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateEntity; +import org.jeecgframework.web.system.sms.service.TSSmsTemplateServiceI; diff --git a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsTemplateSqlController.java b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsTemplateSqlController.java similarity index 97% rename from src/main/java/org/jeecgframework/web/sms/controller/TSSmsTemplateSqlController.java rename to src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsTemplateSqlController.java index 2dc1ae4b..382b749d 100644 --- a/src/main/java/org/jeecgframework/web/sms/controller/TSSmsTemplateSqlController.java +++ b/src/main/java/org/jeecgframework/web/system/sms/controller/TSSmsTemplateSqlController.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.controller; +package org.jeecgframework.web.system.sms.controller; import java.util.HashMap; import java.util.Map; @@ -25,9 +25,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; -import org.jeecgframework.web.sms.entity.TSSmsTemplateSqlEntity; -import org.jeecgframework.web.sms.service.TSSmsTemplateSqlServiceI; -import org.jeecgframework.web.sms.util.TuiSongMsgUtil; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateSqlEntity; +import org.jeecgframework.web.system.sms.service.TSSmsTemplateSqlServiceI; +import org.jeecgframework.web.system.sms.util.TuiSongMsgUtil; diff --git a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsEntity.java b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsEntity.java similarity index 99% rename from src/main/java/org/jeecgframework/web/sms/entity/TSSmsEntity.java rename to src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsEntity.java index 1d9e87db..8823cb60 100644 --- a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsEntity.java +++ b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsEntity.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.entity; +package org.jeecgframework.web.system.sms.entity; import java.math.BigDecimal; import java.util.Date; diff --git a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsSqlEntity.java b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsSqlEntity.java similarity index 99% rename from src/main/java/org/jeecgframework/web/sms/entity/TSSmsSqlEntity.java rename to src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsSqlEntity.java index dc0d147d..89744f16 100644 --- a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsSqlEntity.java +++ b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsSqlEntity.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.entity; +package org.jeecgframework.web.system.sms.entity; import java.math.BigDecimal; import java.util.Date; diff --git a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsTemplateEntity.java b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsTemplateEntity.java similarity index 99% rename from src/main/java/org/jeecgframework/web/sms/entity/TSSmsTemplateEntity.java rename to src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsTemplateEntity.java index 718871e6..6e99c8b2 100644 --- a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsTemplateEntity.java +++ b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsTemplateEntity.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.entity; +package org.jeecgframework.web.system.sms.entity; import java.math.BigDecimal; import java.util.Date; diff --git a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsTemplateSqlEntity.java b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsTemplateSqlEntity.java similarity index 99% rename from src/main/java/org/jeecgframework/web/sms/entity/TSSmsTemplateSqlEntity.java rename to src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsTemplateSqlEntity.java index d4450a71..fbce6f93 100644 --- a/src/main/java/org/jeecgframework/web/sms/entity/TSSmsTemplateSqlEntity.java +++ b/src/main/java/org/jeecgframework/web/system/sms/entity/TSSmsTemplateSqlEntity.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.entity; +package org.jeecgframework.web.system.sms.entity; import java.math.BigDecimal; import java.util.Date; diff --git a/src/main/java/org/jeecgframework/web/sms/service/TSSmsServiceI.java b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsServiceI.java similarity index 91% rename from src/main/java/org/jeecgframework/web/sms/service/TSSmsServiceI.java rename to src/main/java/org/jeecgframework/web/system/sms/service/TSSmsServiceI.java index d762522a..6ad7a887 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/TSSmsServiceI.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsServiceI.java @@ -1,5 +1,5 @@ -package org.jeecgframework.web.sms.service; -import org.jeecgframework.web.sms.entity.TSSmsEntity; +package org.jeecgframework.web.system.sms.service; +import org.jeecgframework.web.system.sms.entity.TSSmsEntity; import org.jeecgframework.core.common.service.CommonService; import java.io.Serializable; diff --git a/src/main/java/org/jeecgframework/web/sms/service/TSSmsSqlServiceI.java b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsSqlServiceI.java similarity index 89% rename from src/main/java/org/jeecgframework/web/sms/service/TSSmsSqlServiceI.java rename to src/main/java/org/jeecgframework/web/system/sms/service/TSSmsSqlServiceI.java index d5e7cdaa..c4606203 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/TSSmsSqlServiceI.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsSqlServiceI.java @@ -1,5 +1,5 @@ -package org.jeecgframework.web.sms.service; -import org.jeecgframework.web.sms.entity.TSSmsSqlEntity; +package org.jeecgframework.web.system.sms.service; +import org.jeecgframework.web.system.sms.entity.TSSmsSqlEntity; import org.jeecgframework.core.common.service.CommonService; import java.io.Serializable; diff --git a/src/main/java/org/jeecgframework/web/sms/service/TSSmsTemplateServiceI.java b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsTemplateServiceI.java similarity index 84% rename from src/main/java/org/jeecgframework/web/sms/service/TSSmsTemplateServiceI.java rename to src/main/java/org/jeecgframework/web/system/sms/service/TSSmsTemplateServiceI.java index b8f9cd22..f360f2a7 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/TSSmsTemplateServiceI.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsTemplateServiceI.java @@ -1,5 +1,5 @@ -package org.jeecgframework.web.sms.service; -import org.jeecgframework.web.sms.entity.TSSmsTemplateEntity; +package org.jeecgframework.web.system.sms.service; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateEntity; import org.jeecgframework.core.common.service.CommonService; import java.io.Serializable; diff --git a/src/main/java/org/jeecgframework/web/sms/service/TSSmsTemplateSqlServiceI.java b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsTemplateSqlServiceI.java similarity index 84% rename from src/main/java/org/jeecgframework/web/sms/service/TSSmsTemplateSqlServiceI.java rename to src/main/java/org/jeecgframework/web/system/sms/service/TSSmsTemplateSqlServiceI.java index a57a3254..a98f4323 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/TSSmsTemplateSqlServiceI.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/TSSmsTemplateSqlServiceI.java @@ -1,5 +1,5 @@ -package org.jeecgframework.web.sms.service; -import org.jeecgframework.web.sms.entity.TSSmsTemplateSqlEntity; +package org.jeecgframework.web.system.sms.service; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateSqlEntity; import org.jeecgframework.core.common.service.CommonService; import java.io.Serializable; diff --git a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsServiceImpl.java b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsServiceImpl.java similarity index 94% rename from src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsServiceImpl.java rename to src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsServiceImpl.java index 1ec7065a..f960fc7e 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsServiceImpl.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsServiceImpl.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.service.impl; +package org.jeecgframework.web.system.sms.service.impl; import java.io.PrintWriter; import java.io.Serializable; import java.net.ConnectException; @@ -17,11 +17,11 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.jeecgframework.web.sms.entity.TSSmsEntity; -import org.jeecgframework.web.sms.service.TSSmsServiceI; -import org.jeecgframework.web.sms.util.CMPPSenderUtil; -import org.jeecgframework.web.sms.util.Constants; -import org.jeecgframework.web.sms.util.MailUtil; +import org.jeecgframework.web.system.sms.entity.TSSmsEntity; +import org.jeecgframework.web.system.sms.service.TSSmsServiceI; +import org.jeecgframework.web.system.sms.util.CMPPSenderUtil; +import org.jeecgframework.web.system.sms.util.Constants; +import org.jeecgframework.web.system.sms.util.MailUtil; import com.sun.mail.smtp.SMTPAddressFailedException; diff --git a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsSqlServiceImpl.java b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsSqlServiceImpl.java similarity index 84% rename from src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsSqlServiceImpl.java rename to src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsSqlServiceImpl.java index 8cbc1f2a..a8ad2953 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsSqlServiceImpl.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsSqlServiceImpl.java @@ -1,7 +1,7 @@ -package org.jeecgframework.web.sms.service.impl; -import org.jeecgframework.web.sms.service.TSSmsSqlServiceI; +package org.jeecgframework.web.system.sms.service.impl; +import org.jeecgframework.web.system.sms.service.TSSmsSqlServiceI; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.web.sms.entity.TSSmsSqlEntity; +import org.jeecgframework.web.system.sms.entity.TSSmsSqlEntity; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsTemplateServiceImpl.java b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsTemplateServiceImpl.java similarity index 92% rename from src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsTemplateServiceImpl.java rename to src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsTemplateServiceImpl.java index e6bbf3c8..0ca740d3 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsTemplateServiceImpl.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsTemplateServiceImpl.java @@ -1,7 +1,7 @@ -package org.jeecgframework.web.sms.service.impl; -import org.jeecgframework.web.sms.service.TSSmsTemplateServiceI; +package org.jeecgframework.web.system.sms.service.impl; +import org.jeecgframework.web.system.sms.service.TSSmsTemplateServiceI; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.web.sms.entity.TSSmsTemplateEntity; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.UUID; diff --git a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsTemplateSqlServiceImpl.java b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsTemplateSqlServiceImpl.java similarity index 92% rename from src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsTemplateSqlServiceImpl.java rename to src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsTemplateSqlServiceImpl.java index f7fea0c1..4a546e6c 100644 --- a/src/main/java/org/jeecgframework/web/sms/service/impl/TSSmsTemplateSqlServiceImpl.java +++ b/src/main/java/org/jeecgframework/web/system/sms/service/impl/TSSmsTemplateSqlServiceImpl.java @@ -1,7 +1,7 @@ -package org.jeecgframework.web.sms.service.impl; -import org.jeecgframework.web.sms.service.TSSmsTemplateSqlServiceI; +package org.jeecgframework.web.system.sms.service.impl; +import org.jeecgframework.web.system.sms.service.TSSmsTemplateSqlServiceI; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; -import org.jeecgframework.web.sms.entity.TSSmsTemplateSqlEntity; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateSqlEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.UUID; diff --git a/src/main/java/org/jeecgframework/web/sms/util/CMPPSenderUtil.java b/src/main/java/org/jeecgframework/web/system/sms/util/CMPPSenderUtil.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/util/CMPPSenderUtil.java rename to src/main/java/org/jeecgframework/web/system/sms/util/CMPPSenderUtil.java index 8d53fc8f..f11a2ac9 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/CMPPSenderUtil.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/CMPPSenderUtil.java @@ -1,5 +1,5 @@ // ~ CopyRight © 2012 USTC SINOVATE SOFTWARE CO.LTD All Rights Reserved. -package org.jeecgframework.web.sms.util; +package org.jeecgframework.web.system.sms.util; import java.io.IOException; import java.net.URLEncoder; @@ -12,7 +12,7 @@ import org.apache.commons.httpclient.params.HttpMethodParams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.jeecgframework.web.sms.util.msg.util.MsgContainer; +import org.jeecgframework.web.system.sms.util.msg.util.MsgContainer; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; diff --git a/src/main/java/org/jeecgframework/web/sms/util/Constants.java b/src/main/java/org/jeecgframework/web/system/sms/util/Constants.java similarity index 95% rename from src/main/java/org/jeecgframework/web/sms/util/Constants.java rename to src/main/java/org/jeecgframework/web/system/sms/util/Constants.java index f73dac93..44ec5083 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/Constants.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/Constants.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util; +package org.jeecgframework.web.system.sms.util; /** * * @author skycc diff --git a/src/main/java/org/jeecgframework/web/sms/util/MailUtil.java b/src/main/java/org/jeecgframework/web/system/sms/util/MailUtil.java similarity index 99% rename from src/main/java/org/jeecgframework/web/sms/util/MailUtil.java rename to src/main/java/org/jeecgframework/web/system/sms/util/MailUtil.java index 1b2f5859..798a80b3 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/MailUtil.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/MailUtil.java @@ -1,6 +1,6 @@ // ~ CopyRight © 2012 USTC SINOVATE SOFTWARE CO.LTD All Rights Reserved. -package org.jeecgframework.web.sms.util; +package org.jeecgframework.web.system.sms.util; import java.util.Date; import java.util.Properties; diff --git a/src/main/java/org/jeecgframework/web/sms/util/TuiSongMsgUtil.java b/src/main/java/org/jeecgframework/web/system/sms/util/TuiSongMsgUtil.java similarity index 92% rename from src/main/java/org/jeecgframework/web/sms/util/TuiSongMsgUtil.java rename to src/main/java/org/jeecgframework/web/system/sms/util/TuiSongMsgUtil.java index ccba2ebd..7fe47e3d 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/TuiSongMsgUtil.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/TuiSongMsgUtil.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util; +package org.jeecgframework.web.system.sms.util; import java.io.BufferedWriter; import java.io.File; @@ -15,14 +15,14 @@ import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.SqlParameterSource; -import org.jeecgframework.web.sms.entity.TSSmsEntity; -import org.jeecgframework.web.sms.entity.TSSmsSqlEntity; -import org.jeecgframework.web.sms.entity.TSSmsTemplateEntity; -import org.jeecgframework.web.sms.entity.TSSmsTemplateSqlEntity; -import org.jeecgframework.web.sms.service.TSSmsServiceI; -import org.jeecgframework.web.sms.service.TSSmsSqlServiceI; -import org.jeecgframework.web.sms.service.TSSmsTemplateServiceI; -import org.jeecgframework.web.sms.service.TSSmsTemplateSqlServiceI; +import org.jeecgframework.web.system.sms.entity.TSSmsEntity; +import org.jeecgframework.web.system.sms.entity.TSSmsSqlEntity; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateEntity; +import org.jeecgframework.web.system.sms.entity.TSSmsTemplateSqlEntity; +import org.jeecgframework.web.system.sms.service.TSSmsServiceI; +import org.jeecgframework.web.system.sms.service.TSSmsSqlServiceI; +import org.jeecgframework.web.system.sms.service.TSSmsTemplateServiceI; +import org.jeecgframework.web.system.sms.service.TSSmsTemplateSqlServiceI; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.Template; diff --git a/src/main/java/org/jeecgframework/web/sms/util/XmlResolve.java b/src/main/java/org/jeecgframework/web/system/sms/util/XmlResolve.java similarity index 62% rename from src/main/java/org/jeecgframework/web/sms/util/XmlResolve.java rename to src/main/java/org/jeecgframework/web/system/sms/util/XmlResolve.java index 364c5b9e..c7cd0e0c 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/XmlResolve.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/XmlResolve.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util; +package org.jeecgframework.web.system.sms.util; /** * * @author cmzcheng xml报文解析 diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgActiveTestResp.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgActiveTestResp.java similarity index 95% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgActiveTestResp.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgActiveTestResp.java index 4a6876ec..f29bdce4 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgActiveTestResp.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgActiveTestResp.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayInputStream; import java.io.DataInputStream; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgCommand.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgCommand.java similarity index 94% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgCommand.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgCommand.java index 4d1e8417..b4cf898f 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgCommand.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgCommand.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; /** * 短信命令代码标识. * 链接请求、终止连接请求、提交短信请求、长链接激活等 diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgConnect.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgConnect.java similarity index 96% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgConnect.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgConnect.java index 55cd342c..738279a4 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgConnect.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgConnect.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; @@ -6,7 +6,7 @@ import java.io.IOException; import org.apache.log4j.Logger; -import org.jeecgframework.web.sms.util.msg.util.MsgUtils; +import org.jeecgframework.web.system.sms.util.msg.util.MsgUtils; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgConnectResp.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgConnectResp.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgConnectResp.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgConnectResp.java index f37bdbfe..dd54fb46 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgConnectResp.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgConnectResp.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayInputStream; import java.io.DataInputStream; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgDeliver.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgDeliver.java similarity index 99% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgDeliver.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgDeliver.java index 4bc3884c..4ca352d6 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgDeliver.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgDeliver.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayInputStream; import java.io.DataInputStream; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgDeliverResp.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgDeliverResp.java similarity index 96% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgDeliverResp.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgDeliverResp.java index f3a43503..655c8c54 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgDeliverResp.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgDeliverResp.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgHead.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgHead.java similarity index 97% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgHead.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgHead.java index d7298817..84bd7ac6 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgHead.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgHead.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgSubmit.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgSubmit.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgSubmit.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgSubmit.java index 0fcee8b0..453bbe8b 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgSubmit.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgSubmit.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; @@ -6,7 +6,7 @@ import java.io.IOException; import org.apache.log4j.Logger; -import org.jeecgframework.web.sms.util.msg.util.MsgUtils; +import org.jeecgframework.web.system.sms.util.msg.util.MsgUtils; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgSubmitResp.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgSubmitResp.java similarity index 97% rename from src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgSubmitResp.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgSubmitResp.java index 86435ad4..0933ffec 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/domain/MsgSubmitResp.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/domain/MsgSubmitResp.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.domain; +package org.jeecgframework.web.system.sms.util.msg.domain; import java.io.ByteArrayInputStream; import java.io.DataInputStream; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/util/CmppSender.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/CmppSender.java similarity index 92% rename from src/main/java/org/jeecgframework/web/sms/util/msg/util/CmppSender.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/util/CmppSender.java index 4a9bc993..44f7061b 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/util/CmppSender.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/CmppSender.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.util; +package org.jeecgframework.web.system.sms.util.msg.util; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -11,13 +11,13 @@ import java.util.List; import org.apache.log4j.Logger; -import org.jeecgframework.web.sms.util.msg.domain.MsgActiveTestResp; -import org.jeecgframework.web.sms.util.msg.domain.MsgCommand; -import org.jeecgframework.web.sms.util.msg.domain.MsgConnectResp; -import org.jeecgframework.web.sms.util.msg.domain.MsgDeliver; -import org.jeecgframework.web.sms.util.msg.domain.MsgDeliverResp; -import org.jeecgframework.web.sms.util.msg.domain.MsgHead; -import org.jeecgframework.web.sms.util.msg.domain.MsgSubmitResp; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgActiveTestResp; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgCommand; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgConnectResp; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgDeliver; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgDeliverResp; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgHead; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgSubmitResp; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgActivityTimer.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgActivityTimer.java similarity index 95% rename from src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgActivityTimer.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgActivityTimer.java index e5cf7436..c6c53072 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgActivityTimer.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgActivityTimer.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.util; +package org.jeecgframework.web.system.sms.util.msg.util; import org.jeecgframework.core.util.LogUtil; import org.quartz.JobExecutionContext; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgConfig.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgConfig.java similarity index 96% rename from src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgConfig.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgConfig.java index 08e3663b..5946e51b 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgConfig.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgConfig.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.util; +package org.jeecgframework.web.system.sms.util.msg.util; import java.util.ResourceBundle; diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgContainer.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgContainer.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgContainer.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgContainer.java index 3a0468c0..12719985 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgContainer.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgContainer.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.util; +package org.jeecgframework.web.system.sms.util.msg.util; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -12,10 +12,10 @@ import java.util.List; import org.apache.log4j.Logger; -import org.jeecgframework.web.sms.util.msg.domain.MsgCommand; -import org.jeecgframework.web.sms.util.msg.domain.MsgConnect; -import org.jeecgframework.web.sms.util.msg.domain.MsgHead; -import org.jeecgframework.web.sms.util.msg.domain.MsgSubmit; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgCommand; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgConnect; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgHead; +import org.jeecgframework.web.system.sms.util.msg.domain.MsgSubmit; /** diff --git a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgUtils.java b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgUtils.java similarity index 98% rename from src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgUtils.java rename to src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgUtils.java index 1852523f..30dd6918 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/msg/util/MsgUtils.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/msg/util/MsgUtils.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.msg.util; +package org.jeecgframework.web.system.sms.util.msg.util; import java.io.DataOutputStream; import java.io.IOException; diff --git a/src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTask.java b/src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTask.java similarity index 89% rename from src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTask.java rename to src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTask.java index 9edd6a0f..443efa99 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/task/SmsSendTask.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTask.java @@ -1,10 +1,10 @@ -package org.jeecgframework.web.sms.util.task; +package org.jeecgframework.web.system.sms.util.task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; -import org.jeecgframework.web.sms.service.TSSmsServiceI; +import org.jeecgframework.web.system.sms.service.TSSmsServiceI; diff --git a/src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTaskJob.java b/src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTaskJob.java new file mode 100644 index 00000000..93c622ff --- /dev/null +++ b/src/main/java/org/jeecgframework/web/system/sms/util/task/SmsSendTaskJob.java @@ -0,0 +1,5 @@ +package org.jeecgframework.web.system.sms.util.task; + +public class SmsSendTaskJob { + +} diff --git a/src/main/java/org/jeecgframework/web/sms/util/webservice/XmlConstant.java b/src/main/java/org/jeecgframework/web/system/sms/util/webservice/XmlConstant.java similarity index 91% rename from src/main/java/org/jeecgframework/web/sms/util/webservice/XmlConstant.java rename to src/main/java/org/jeecgframework/web/system/sms/util/webservice/XmlConstant.java index eae402b3..0ea64d26 100644 --- a/src/main/java/org/jeecgframework/web/sms/util/webservice/XmlConstant.java +++ b/src/main/java/org/jeecgframework/web/system/sms/util/webservice/XmlConstant.java @@ -1,4 +1,4 @@ -package org.jeecgframework.web.sms.util.webservice; +package org.jeecgframework.web.system.sms.util.webservice; /** * * @author skycc diff --git a/src/main/resources/clzcontext/template/cms/rank/css/bootstrap-extends.css-osf_6.0.4.css b/src/main/resources/clzcontext/template/cms/rank/css/bootstrap-extends.css-osf_6.0.4.css deleted file mode 100644 index 952e6860..00000000 --- a/src/main/resources/clzcontext/template/cms/rank/css/bootstrap-extends.css-osf_6.0.4.css +++ /dev/null @@ -1,402 +0,0 @@ -.text-sm { - font-size: 12px; -} - -.text-lg { - font-size: 16px; -} - -.panel-lg .panel-heading { - padding: 15px 20px; - -} - -.panel-lg h1 { - margin: 0px 0; - font-size: 20px; - font-weight: bold; - line-height: 1.5; -} - -.btn-muted { - color: #999999; -} - -.clear-modal-dialog .modal-body { - padding: 30px; -} - -.clear-modal-dialog .close { - position: absolute; - top: 20px; - right: 20px; - float: none; - z-index: 1060; -} - -/*! - * Datetimepicker for Bootstrap - * - * Copyright 2012 Stefan Petre - * Improvements by Andrew Rowls - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */ -.datetimepicker { - padding: 4px; - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - direction: ltr; - /*.dow { - border-top: 1px solid #ddd !important; - }*/ - -} -.datetimepicker-inline { - width: 220px; -} -.datetimepicker.datetimepicker-rtl { - direction: rtl; -} -.datetimepicker.datetimepicker-rtl table tr td span { - float: right; -} -.datetimepicker-dropdown, .datetimepicker-dropdown-left { - top: 0; - left: 0; -} -[class*=" datetimepicker-dropdown"]:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; -} -[class*=" datetimepicker-dropdown"]:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - position: absolute; -} -[class*=" datetimepicker-dropdown-top"]:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-top: 7px solid #ccc; - border-top-color: rgba(0, 0, 0, 0.2); - border-bottom: 0; -} -[class*=" datetimepicker-dropdown-top"]:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-top: 6px solid #ffffff; - border-bottom: 0; -} -.datetimepicker-dropdown-bottom-right:before { - top: -7px; - right: 6px; -} -.datetimepicker-dropdown-bottom-right:after { - top: -6px; - right: 7px; -} -.datetimepicker-dropdown-bottom-left:before { - top: -7px; - left: 6px; -} -.datetimepicker-dropdown-bottom-left:after { - top: -6px; - left: 7px; -} -.datetimepicker-dropdown-top-right:before { - bottom: -7px; - right: 6px; -} -.datetimepicker-dropdown-top-right:after { - bottom: -6px; - right: 7px; -} -.datetimepicker-dropdown-top-left:before { - bottom: -7px; - left: 6px; -} -.datetimepicker-dropdown-top-left:after { - bottom: -6px; - left: 7px; -} -.datetimepicker > div { - display: none; -} -.datetimepicker.minutes div.datetimepicker-minutes { - display: block; -} -.datetimepicker.hours div.datetimepicker-hours { - display: block; -} -.datetimepicker.days div.datetimepicker-days { - display: block; -} -.datetimepicker.months div.datetimepicker-months { - display: block; -} -.datetimepicker.years div.datetimepicker-years { - display: block; -} -.datetimepicker table { - margin: 0; -} -.datetimepicker td, -.datetimepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - border: none; -} -.table-striped .datetimepicker table tr td, -.table-striped .datetimepicker table tr th { - background-color: transparent; -} -.datetimepicker table tr td.minute:hover { - background: #eeeeee; - cursor: pointer; -} -.datetimepicker table tr td.hour:hover { - background: #eeeeee; - cursor: pointer; -} -.datetimepicker table tr td.day:hover { - background: #eeeeee; - cursor: pointer; -} -.datetimepicker table tr td.old, -.datetimepicker table tr td.new { - color: #999999; -} -.datetimepicker table tr td.disabled, -.datetimepicker table tr td.disabled:hover { - background: none; - color: #999999; - cursor: default; -} -.datetimepicker table tr td.today, -.datetimepicker table tr td.today:hover, -.datetimepicker table tr td.today.disabled, -.datetimepicker table tr td.today.disabled:hover { - background-color: #fde19a; - background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); - background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); - background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a); - background-image: -o-linear-gradient(top, #fdd49a, #fdf59a); - background-image: linear-gradient(top, #fdd49a, #fdf59a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); - border-color: #fdf59a #fdf59a #fbed50; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} -.datetimepicker table tr td.today:hover, -.datetimepicker table tr td.today:hover:hover, -.datetimepicker table tr td.today.disabled:hover, -.datetimepicker table tr td.today.disabled:hover:hover, -.datetimepicker table tr td.today:active, -.datetimepicker table tr td.today:hover:active, -.datetimepicker table tr td.today.disabled:active, -.datetimepicker table tr td.today.disabled:hover:active, -.datetimepicker table tr td.today.active, -.datetimepicker table tr td.today:hover.active, -.datetimepicker table tr td.today.disabled.active, -.datetimepicker table tr td.today.disabled:hover.active, -.datetimepicker table tr td.today.disabled, -.datetimepicker table tr td.today:hover.disabled, -.datetimepicker table tr td.today.disabled.disabled, -.datetimepicker table tr td.today.disabled:hover.disabled, -.datetimepicker table tr td.today[disabled], -.datetimepicker table tr td.today:hover[disabled], -.datetimepicker table tr td.today.disabled[disabled], -.datetimepicker table tr td.today.disabled:hover[disabled] { - background-color: #fdf59a; -} -.datetimepicker table tr td.today:active, -.datetimepicker table tr td.today:hover:active, -.datetimepicker table tr td.today.disabled:active, -.datetimepicker table tr td.today.disabled:hover:active, -.datetimepicker table tr td.today.active, -.datetimepicker table tr td.today:hover.active, -.datetimepicker table tr td.today.disabled.active, -.datetimepicker table tr td.today.disabled:hover.active { - background-color: #fbf069 \9; -} -.datetimepicker table tr td.active, -.datetimepicker table tr td.active:hover, -.datetimepicker table tr td.active.disabled, -.datetimepicker table tr td.active.disabled:hover { - background-color: #006dcc; - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-image: -ms-linear-gradient(top, #0088cc, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(top, #0088cc, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datetimepicker table tr td.active:hover, -.datetimepicker table tr td.active:hover:hover, -.datetimepicker table tr td.active.disabled:hover, -.datetimepicker table tr td.active.disabled:hover:hover, -.datetimepicker table tr td.active:active, -.datetimepicker table tr td.active:hover:active, -.datetimepicker table tr td.active.disabled:active, -.datetimepicker table tr td.active.disabled:hover:active, -.datetimepicker table tr td.active.active, -.datetimepicker table tr td.active:hover.active, -.datetimepicker table tr td.active.disabled.active, -.datetimepicker table tr td.active.disabled:hover.active, -.datetimepicker table tr td.active.disabled, -.datetimepicker table tr td.active:hover.disabled, -.datetimepicker table tr td.active.disabled.disabled, -.datetimepicker table tr td.active.disabled:hover.disabled, -.datetimepicker table tr td.active[disabled], -.datetimepicker table tr td.active:hover[disabled], -.datetimepicker table tr td.active.disabled[disabled], -.datetimepicker table tr td.active.disabled:hover[disabled] { - background-color: #0044cc; -} -.datetimepicker table tr td.active:active, -.datetimepicker table tr td.active:hover:active, -.datetimepicker table tr td.active.disabled:active, -.datetimepicker table tr td.active.disabled:hover:active, -.datetimepicker table tr td.active.active, -.datetimepicker table tr td.active:hover.active, -.datetimepicker table tr td.active.disabled.active, -.datetimepicker table tr td.active.disabled:hover.active { - background-color: #003399 \9; -} -.datetimepicker table tr td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.datetimepicker .datetimepicker-hours span { - height: 26px; - line-height: 26px; -} -.datetimepicker .datetimepicker-hours table tr td span.hour_am, -.datetimepicker .datetimepicker-hours table tr td span.hour_pm { - width: 14.6%; -} -.datetimepicker .datetimepicker-hours fieldset legend, -.datetimepicker .datetimepicker-minutes fieldset legend { - margin-bottom: inherit; - line-height: 30px; -} -.datetimepicker .datetimepicker-minutes span { - height: 26px; - line-height: 26px; -} -.datetimepicker table tr td span:hover { - background: #eeeeee; -} -.datetimepicker table tr td span.disabled, -.datetimepicker table tr td span.disabled:hover { - background: none; - color: #999999; - cursor: default; -} -.datetimepicker table tr td span.active, -.datetimepicker table tr td span.active:hover, -.datetimepicker table tr td span.active.disabled, -.datetimepicker table tr td span.active.disabled:hover { - background-color: #006dcc; - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-image: -ms-linear-gradient(top, #0088cc, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(top, #0088cc, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datetimepicker table tr td span.active:hover, -.datetimepicker table tr td span.active:hover:hover, -.datetimepicker table tr td span.active.disabled:hover, -.datetimepicker table tr td span.active.disabled:hover:hover, -.datetimepicker table tr td span.active:active, -.datetimepicker table tr td span.active:hover:active, -.datetimepicker table tr td span.active.disabled:active, -.datetimepicker table tr td span.active.disabled:hover:active, -.datetimepicker table tr td span.active.active, -.datetimepicker table tr td span.active:hover.active, -.datetimepicker table tr td span.active.disabled.active, -.datetimepicker table tr td span.active.disabled:hover.active, -.datetimepicker table tr td span.active.disabled, -.datetimepicker table tr td span.active:hover.disabled, -.datetimepicker table tr td span.active.disabled.disabled, -.datetimepicker table tr td span.active.disabled:hover.disabled, -.datetimepicker table tr td span.active[disabled], -.datetimepicker table tr td span.active:hover[disabled], -.datetimepicker table tr td span.active.disabled[disabled], -.datetimepicker table tr td span.active.disabled:hover[disabled] { - background-color: #0044cc; -} -.datetimepicker table tr td span.active:active, -.datetimepicker table tr td span.active:hover:active, -.datetimepicker table tr td span.active.disabled:active, -.datetimepicker table tr td span.active.disabled:hover:active, -.datetimepicker table tr td span.active.active, -.datetimepicker table tr td span.active:hover.active, -.datetimepicker table tr td span.active.disabled.active, -.datetimepicker table tr td span.active.disabled:hover.active { - background-color: #003399 \9; -} -.datetimepicker table tr td span.old { - color: #999999; -} -.datetimepicker th.switch { - width: 145px; -} -.datetimepicker thead tr:first-child th, -.datetimepicker tfoot tr:first-child th { - cursor: pointer; -} -.datetimepicker thead tr:first-child th:hover, -.datetimepicker tfoot tr:first-child th:hover { - background: #eeeeee; -} -.input-append.date .add-on i, -.input-prepend.date .add-on i { - cursor: pointer; - width: 14px; - height: 14px; -} \ No newline at end of file diff --git a/src/main/resources/clzcontext/template/cms/rank/css/bootstrap.css-osf_6.0.4.css b/src/main/resources/clzcontext/template/cms/rank/css/bootstrap.css-osf_6.0.4.css deleted file mode 100644 index b109cb2a..00000000 --- a/src/main/resources/clzcontext/template/cms/rank/css/bootstrap.css-osf_6.0.4.css +++ /dev/null @@ -1,6538 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - box-shadow: none !important; - text-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url("glyphicons-halflings-regular.eot")/*tpa=http://www.osforce.cn/assets/v2/bootstrap/fonts/glyphicons-halflings-regular.eot*/; - src: url("glyphicons-halflings-regular.eot-#iefix")/*tpa=http://www.osforce.cn/assets/v2/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix*/ format('embedded-opentype'), url("glyphicons-halflings-regular.woff2")/*tpa=http://www.osforce.cn/assets/v2/bootstrap/fonts/glyphicons-halflings-regular.woff2*/ format('woff2'), url("glyphicons-halflings-regular.woff")/*tpa=http://www.osforce.cn/assets/v2/bootstrap/fonts/glyphicons-halflings-regular.woff*/ format('woff'), url("glyphicons-halflings-regular.ttf")/*tpa=http://www.osforce.cn/assets/v2/bootstrap/fonts/glyphicons-halflings-regular.ttf*/ format('truetype'), url("glyphicons-halflings-regular.svg#glyphicons_halflingsregular")/*tpa=http://www.osforce.cn/assets/v2/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular*/ format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.glyphicon-cd:before { - content: "\e201"; -} -.glyphicon-save-file:before { - content: "\e202"; -} -.glyphicon-open-file:before { - content: "\e203"; -} -.glyphicon-level-up:before { - content: "\e204"; -} -.glyphicon-copy:before { - content: "\e205"; -} -.glyphicon-paste:before { - content: "\e206"; -} -.glyphicon-alert:before { - content: "\e209"; -} -.glyphicon-equalizer:before { - content: "\e210"; -} -.glyphicon-king:before { - content: "\e211"; -} -.glyphicon-queen:before { - content: "\e212"; -} -.glyphicon-pawn:before { - content: "\e213"; -} -.glyphicon-bishop:before { - content: "\e214"; -} -.glyphicon-knight:before { - content: "\e215"; -} -.glyphicon-baby-formula:before { - content: "\e216"; -} -.glyphicon-tent:before { - content: "\26fa"; -} -.glyphicon-blackboard:before { - content: "\e218"; -} -.glyphicon-bed:before { - content: "\e219"; -} -.glyphicon-apple:before { - content: "\f8ff"; -} -.glyphicon-erase:before { - content: "\e221"; -} -.glyphicon-hourglass:before { - content: "\231b"; -} -.glyphicon-lamp:before { - content: "\e223"; -} -.glyphicon-duplicate:before { - content: "\e224"; -} -.glyphicon-piggy-bank:before { - content: "\e225"; -} -.glyphicon-scissors:before { - content: "\e226"; -} -.glyphicon-bitcoin:before { - content: "\e227"; -} -.glyphicon-btc:before { - content: "\e227"; -} -.glyphicon-xbt:before { - content: "\e227"; -} -.glyphicon-yen:before { - content: "\00a5"; -} -.glyphicon-jpy:before { - content: "\00a5"; -} -.glyphicon-ruble:before { - content: "\20bd"; -} -.glyphicon-rub:before { - content: "\20bd"; -} -.glyphicon-scale:before { - content: "\e230"; -} -.glyphicon-ice-lolly:before { - content: "\e231"; -} -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} -.glyphicon-education:before { - content: "\e233"; -} -.glyphicon-option-horizontal:before { - content: "\e234"; -} -.glyphicon-option-vertical:before { - content: "\e235"; -} -.glyphicon-menu-hamburger:before { - content: "\e236"; -} -.glyphicon-modal-window:before { - content: "\e237"; -} -.glyphicon-oil:before { - content: "\e238"; -} -.glyphicon-grain:before { - content: "\e239"; -} -.glyphicon-sunglasses:before { - content: "\e240"; -} -.glyphicon-text-size:before { - content: "\e241"; -} -.glyphicon-text-color:before { - content: "\e242"; -} -.glyphicon-text-background:before { - content: "\e243"; -} -.glyphicon-object-align-top:before { - content: "\e244"; -} -.glyphicon-object-align-bottom:before { - content: "\e245"; -} -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} -.glyphicon-object-align-left:before { - content: "\e247"; -} -.glyphicon-object-align-vertical:before { - content: "\e248"; -} -.glyphicon-object-align-right:before { - content: "\e249"; -} -.glyphicon-triangle-right:before { - content: "\e250"; -} -.glyphicon-triangle-left:before { - content: "\e251"; -} -.glyphicon-triangle-bottom:before { - content: "\e252"; -} -.glyphicon-triangle-top:before { - content: "\e253"; -} -.glyphicon-console:before { - content: "\e254"; -} -.glyphicon-superscript:before { - content: "\e255"; -} -.glyphicon-subscript:before { - content: "\e256"; -} -.glyphicon-menu-left:before { - content: "\e257"; -} -.glyphicon-menu-right:before { - content: "\e258"; -} -.glyphicon-menu-down:before { - content: "\e259"; -} -.glyphicon-menu-up:before { - content: "\e260"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #616161; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #AB0B08; - text-decoration: none; -} -a:hover, -a:focus { - color: #710301; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #f5f5f5; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -[role="button"] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #e0e0e0; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 24px; -} -h2, -.h2 { - font-size: 22px; -} -h3, -.h3 { - font-size: 18px; -} -h4, -.h4 { - font-size: 16px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #9e9e9e; -} -.text-primary { - color: #37b97d; -} -a.text-primary:hover { - color: #2b9262; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #37b97d; -} -a.bg-primary:hover { - background-color: #2b9262; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #f5f5f5; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #e0e0e0; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #f5f5f5; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #e0e0e0; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #f5f5f5; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - word-break: break-all; - word-wrap: break-word; - color: #616161; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: 10px; - padding-right: 10px; -} -@media (min-width: 768px) { - .container { - width: 740px; - } -} -@media (min-width: 992px) { - .container { - width: 960px; - } -} -@media (min-width: 1200px) { - .container { - width: 1160px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 10px; - padding-right: 10px; -} -.row { - margin-left: -10px; - margin-right: -10px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 10px; - padding-right: 10px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #9e9e9e; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #dddddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #dddddd; -} -.table .table { - background-color: #ffffff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #dddddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #dddddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #616161; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #9e9e9e; -} -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #9e9e9e; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #37b97d; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(55, 185, 125, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(55, 185, 125, 0.6); -} -.form-control::-moz-placeholder { - color: #999999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999999; -} -.form-control::-webkit-input-placeholder { - color: #999999; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: #f5f5f5; - opacity: 1; -} -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - line-height: 34px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 46px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; - min-height: 34px; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-left: 0; - padding-right: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.form-group-sm .form-control { - height: 30px; - line-height: 30px; -} -textarea.form-group-sm .form-control, -select[multiple].form-group-sm .form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - min-height: 32px; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.form-group-lg .form-control { - height: 46px; - line-height: 46px; -} -textarea.form-group-lg .form-control, -select[multiple].form-group-lg .form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - min-height: 38px; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; -} -.input-sm + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - border-color: #3c763d; - background-color: #dff0d8; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - border-color: #8a6d3b; - background-color: #fcf8e3; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - border-color: #a94442; - background-color: #f2dede; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #a1a1a1; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-left: -10px; - margin-right: -10px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 7px; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 10px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 14.333333px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - } -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 24px; - font-size: 14px; - line-height: 1.42857143; - border-radius: 20px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #bdbdbd; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-default { - color: #bdbdbd; - background-color: #ffffff; - border-color: #bdbdbd; -} -.btn-default:hover, -.btn-default:focus, -.btn-default.focus, -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #bdbdbd; - background-color: #e6e6e6; - border-color: #9e9e9e; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #ffffff; - border-color: #bdbdbd; -} -.btn-default .badge { - color: #ffffff; - background-color: #bdbdbd; -} -.btn-primary { - color: #ffffff; - background-color: #37b97d; - border-color: #37b97d; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #2b9262; - border-color: #298a5d; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #37b97d; - border-color: #37b97d; -} -.btn-primary .badge { - color: #37b97d; - background-color: #ffffff; -} -.btn-success { - color: #ffffff; - background-color: #1abc9c; - border-color: #1abc9c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success.focus, -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #148f77; - border-color: #13866f; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #1abc9c; - border-color: #1abc9c; -} -.btn-success .badge { - color: #1abc9c; - background-color: #ffffff; -} -.btn-info { - color: #ffffff; - background-color: #39aef1; - border-color: #39aef1; -} -.btn-info:hover, -.btn-info:focus, -.btn-info.focus, -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #1099e7; - border-color: #1092dd; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #39aef1; - border-color: #39aef1; -} -.btn-info .badge { - color: #39aef1; - background-color: #ffffff; -} -.btn-warning { - color: #ffffff; - background-color: #e67e22; - border-color: #e67e22; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning.focus, -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #bf6516; - border-color: #b66015; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #e67e22; - border-color: #e67e22; -} -.btn-warning .badge { - color: #e67e22; - background-color: #ffffff; -} -.btn-danger { - color: #ffffff; - background-color: #e74c3c; - border-color: #e74c3c; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger.focus, -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #d62c1a; - border-color: #cd2a19; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #e74c3c; - border-color: #e74c3c; -} -.btn-danger .badge { - color: #e74c3c; - background-color: #ffffff; -} -.btn-link { - color: #37b97d; - font-weight: normal; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #257e55; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #e0e0e0; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 30px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 24px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 18px; - font-size: 12px; - line-height: 1.5; - border-radius: 16px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 2px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 16px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 0; - list-style: none; - font-size: 14px; - text-align: left; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #616161; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #545454; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #37b97d; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #e0e0e0; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #e0e0e0; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-bottom-left-radius: 4px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #9e9e9e; - text-align: center; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background: none; -} -.nav > li.disabled > a { - color: #e0e0e0; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #e0e0e0; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background: none; - border-color: #37b97d; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #dddddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #f5f5f5 #f5f5f5 #dddddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #9e9e9e; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #37b97d; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - overflow-x: visible; - padding-right: 10px; - padding-left: 10px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -10px; - margin-left: -10px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - padding: 5px 15px; - font-size: 18px; - line-height: 40px; - height: 50px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; - height: 40px; - width: auto; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -10px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 10px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -10px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } -} -.navbar-form { - margin-left: -10px; - margin-right: -10px; - padding: 10px 10px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 8px; - margin-bottom: 8px; -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 10px; - margin-right: 10px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -10px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777777; -} -.navbar-default .navbar-nav > li > a { - color: #777777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #dddddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #dddddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: #e7e7e7; - color: #555555; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777777; -} -.navbar-default .navbar-link:hover { - color: #333333; -} -.navbar-default .btn-link { - color: #777777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #cccccc; -} -.navbar-inverse { - background-color: #222222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #ffffff; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #ffffff; -} -.navbar-inverse .navbar-nav > li > a { - color: #ffffff; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: #080808; - color: #ffffff; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #ffffff; -} -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} -.navbar-inverse .btn-link { - color: #ffffff; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #ffffff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #cccccc; -} -.breadcrumb > .active { - color: #e0e0e0; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 2px 8px; - line-height: 1.42857143; - text-decoration: none; - color: #9e9e9e; - background-color: #ffffff; - border: 1px solid #dddddd; - margin: 4px; - border-radius: 40px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #37b97d; - background-color: #fff; - border-color: #37b97d; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - cursor: default; - color: #fff; - background-color: #37b97d; - border-color: #37b97d; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #e0e0e0; - background-color: #ffffff; - border-color: #dddddd; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 6px; - border-top-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #f5f5f5; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #e0e0e0; - background-color: #ffffff; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #e0e0e0; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #c7c7c7; -} -.label-primary { - background-color: #37b97d; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #2b9262; -} -.label-success { - background-color: #1abc9c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #148f77; -} -.label-info { - background-color: #39aef1; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #1099e7; -} -.label-warning { - background-color: #e67e22; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #bf6516; -} -.label-danger { - background-color: #e74c3c; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #d62c1a; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: #ffffff; - line-height: 1; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: #e0e0e0; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #37b97d; - background-color: #ffffff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px 15px; - margin-bottom: 30px; - color: inherit; - background-color: #f5f5f5; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #dcdcdc; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding: 48px 0; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #37b97d; -} -.thumbnail .caption { - padding: 9px; - color: #616161; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #3c763d; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #31708f; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - background-color: #fcf8e3; - border-color: #faebcc; - color: #8a6d3b; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - background-color: #f2dede; - border-color: #ebccd1; - color: #a94442; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #ffffff; - text-align: center; - background-color: #37b97d; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #1abc9c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #39aef1; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #e67e22; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #e74c3c; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - zoom: 1; - overflow: hidden; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom: 20px; - padding-left: 0; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} -.list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item { - color: #555555; -} -a.list-group-item .list-group-item-heading { - color: #333333; -} -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - color: #555555; - background-color: #f5f5f5; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - background-color: #f5f5f5; - color: #e0e0e0; - cursor: not-allowed; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #e0e0e0; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #37b97d; - border-color: #37b97d; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #ccf0df; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #dddddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #dddddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; -} -.panel-default { - border-color: #e0e0e0; -} -.panel-default > .panel-heading { - color: #616161; - background-color: #f5f5f5; - border-color: #e0e0e0; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #e0e0e0; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #616161; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #e0e0e0; -} -.panel-primary { - border-color: #e0e0e0; -} -.panel-primary > .panel-heading { - color: #37b97d; - background-color: #37b97d; - border-color: #e0e0e0; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #e0e0e0; -} -.panel-primary > .panel-heading .badge { - color: #37b97d; - background-color: #37b97d; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #e0e0e0; -} -.panel-success { - border-color: #e0e0e0; -} -.panel-success > .panel-heading { - color: #1abc9c; - background-color: #dff0d8; - border-color: #e0e0e0; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #e0e0e0; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #1abc9c; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #e0e0e0; -} -.panel-info { - border-color: #e0e0e0; -} -.panel-info > .panel-heading { - color: #39aef1; - background-color: #d9edf7; - border-color: #e0e0e0; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #e0e0e0; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #39aef1; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #e0e0e0; -} -.panel-warning { - border-color: #e0e0e0; -} -.panel-warning > .panel-heading { - color: #e67e22; - background-color: #fcf8e3; - border-color: #e0e0e0; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #e0e0e0; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #e67e22; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #e0e0e0; -} -.panel-danger { - border-color: #e0e0e0; -} -.panel-danger > .panel-heading { - color: #e74c3c; - background-color: #f2dede; - border-color: #e0e0e0; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #e0e0e0; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #e74c3c; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #e0e0e0; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover, -.close:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: 0; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; - min-height: 16.42857143px; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; - font-size: 12px; - font-weight: normal; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} -.tooltip.top { - margin-top: -3px; - padding: 5px 0; -} -.tooltip.right { - margin-left: 3px; - padding: 0 5px; -} -.tooltip.bottom { - margin-top: 3px; - padding: 5px 0; -} -.tooltip.left { - margin-left: -3px; - padding: 0 5px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - background-color: #ffffff; - background-clip: padding-box; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - white-space: normal; -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - border-width: 10px; - content: ""; -} -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #ffffff; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #ffffff; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #ffffff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #ffffff; - bottom: -10px; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -moz-transition: -moz-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000; - -moz-perspective: 1000; - perspective: 1000; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} -.carousel-control:hover, -.carousel-control:focus { - outline: 0; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - line-height: 1; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; -} -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} diff --git a/src/main/resources/clzcontext/template/cms/rank/css/common.css-osf_6.0.4.css b/src/main/resources/clzcontext/template/cms/rank/css/common.css-osf_6.0.4.css deleted file mode 100644 index 521dca3f..00000000 --- a/src/main/resources/clzcontext/template/cms/rank/css/common.css-osf_6.0.4.css +++ /dev/null @@ -1,1910 +0,0 @@ -.placeholder { - color: #999; -} -.text-sm { - font-size: 12px; -} - -.text-xs { - font-size: 10px; -} - -.text-lg { - font-size: 18px; -} - -.money-text { - color: #f40; -} - -.short-long-text .trigger { - visibility: hidden; - _visibility: visible; -} - -.short-long-text .short-text:hover .trigger, -.short-long-text .long-text:hover .trigger { - visibility: visible; - font-size: 12px; - color: #999; -} - -.short-long-text .short-text { - cursor: pointer; -} - -.short-long-text .long-text { - cursor: pointer; - display: none; -} - - -.social-share-icon-weibo, -.social-share-icon-qq, -.social-share-icon-qzone, -.social-share-icon-weixin - { - width: 16px; - height: 16px; - display: inline-block; - *display: inline-block; - *zoom: 1; - background: url("social-share-icons.png")/*tpa=http://www.osforce.cn/assets/img/common/social-share-icons.png*/ 0 0 no-repeat; - vertical-align: middle; - margin-right: 6px; -} - -.social-share-icon-qzone { - background-position: 0 -00px; -} - -.social-share-icon-weibo { - background-position: 0 -30px; -} - -.social-share-icon-weixin { - background-position: 0 -60px; -} - -.social-share-icon-qq { - background-position: 0 -90px; -} - - -.social-icon-weibo, -.social-icon-qq, -.social-icon-renren, -.social-icon-douban - { - width: 24px; - height: 24px; - display: inline-block; - *display: inline-block; - *zoom: 1; - background: url("social-icons.png")/*tpa=http://www.osforce.cn/assets/img/social/social-icons.png*/ 0 0 no-repeat; - vertical-align: middle; -} - -.social-icon-weibo { - background-position: 0 -00px; -} - -.social-icon-qq { - background-position: 0 -40px; -} - -.social-icon-renren { - background-position: 0 -80px; -} - -.social-icon-douban { - background-position: 0 -120px; -} - -.stars-0, .stars-1, .stars-2, .stars-3, .stars-4, .stars-5 { - display:inline-block; - *display:inline; - *zoom:1; - overflow:hidden; - width:85px; - height:16px; - background:url("stars.png")/*tpa=http://www.osforce.cn/assets/img/common/stars.png*/ no-repeat; -} - -.stars-5 { - background-position:0 0px; -} - -.stars-4 { - background-position:0 -16px; -} - -.stars-3 { - background-position:0 -32px; -} - -.stars-2 { - background-position:0 -48px; -} - -.stars-1 { - background-position:0 -64px; -} - -.stars-0 { - background-position:0 -80px; -} - -@font-face {font-family: "esicon"; - src: url("iconfont.eot")/*tpa=http://www.osforce.cn/assets/css/font/iconfont.eot*/; /* IE9*/ - src: url("iconfont.eot-#iefix")/*tpa=http://www.osforce.cn/assets/css/font/iconfont.eot?#iefix*/ format('embedded-opentype'), /* IE6-IE8 */ - url("iconfont.woff")/*tpa=http://www.osforce.cn/assets/css/font/iconfont.woff*/ format('woff'), /* chrome、firefox */ - url("iconfont.ttf")/*tpa=http://www.osforce.cn/assets/css/font/iconfont.ttf*/ format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ - url("iconfont.svg#iconfont")/*tpa=http://www.osforce.cn/assets/css/font/iconfont.svg#iconfont*/ format('svg'); /* iOS 4.1- */ -} - -.esicon { - font-family:"esicon" !important; - font-style:normal; - -webkit-font-smoothing: antialiased; - -webkit-text-stroke-width: 0.2px; - -moz-osx-font-smoothing: grayscale; -} - -.esicon-safety:before { content: "\e600"; } -.esicon-share:before { content: "\e601"; } -.esicon-setting:before { content: "\e603"; } -.esicon-like:before { content: "\e605"; } -.esicon-exit:before { content: "\e602"; } -.esicon-user:before { content: "\e607"; } - - - - -/*! define gallery2/video-js/4.2.1/video-js-debug.css */ -/*! -Video.js Default Styles (http://videojs.com) -Version 4.2.1 -Create your own skin at http://designer.videojs.com -*/ -/* SKIN -================================================================================ -The main class name for all skin-specific styles. To make your own skin, -replace all occurances of 'vjs-default-skin' with a new name. Then add your new -skin name to your video tag instead of the default skin. -e.g.