autolist2.ftl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <#setting number_format="0.#####################">
  2. <!DOCTYPE html>
  3. <html class="not-ie" lang="en">
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <title>列表</title>
  8. <link href="online/template/${this_olstylecode}/css/bootstrap.min.css" rel="stylesheet">
  9. <link href="online/template/${this_olstylecode}/css/scojs.css" rel="stylesheet">
  10. <link href="online/template/${this_olstylecode}/css/sco.message.css" rel="stylesheet">
  11. <link href="online/template/${this_olstylecode}/css/style.css" rel="stylesheet">
  12. <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  13. <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  14. <!--[if lt IE 9]>
  15. <script src="plug-in/Formdesign/js/html5shiv.min.js"></script>
  16. <script src="plug-in/Formdesign/js/respond.min.js"></script>
  17. <![endif]-->
  18. <script type="text/javascript" src="online/template/${this_olstylecode}/js/jquery-1.9.1.js"></script>
  19. <script type="text/javascript" src="online/template/${this_olstylecode}/js/respond.min.js"></script>
  20. <script type="text/javascript" src="online/template/${this_olstylecode}/js/bootstrap.js"></script>
  21. <script type="text/javascript" src="online/template/${this_olstylecode}/js/sco.message.js"></script>
  22. <script type="text/javascript" src="online/template/${this_olstylecode}/js/sco.confirm.js"></script>
  23. <script type="text/javascript" src="plug-in/tools/curdtools_zh-cn.js"></script>
  24. <script type="text/javascript" src="plug-in/tools/dataformat.js"></script>
  25. <script type="text/javascript" src="plug-in/My97DatePicker/WdatePicker.js"></script>
  26. <script type="text/javascript">
  27. var totalPage=-1;
  28. //需要显示的列
  29. var fields=new Array();
  30. <#list config_fieldList as x>
  31. <#if x['field_isShow'] != "N" >
  32. fields.push("${x['field_id']}");
  33. </#if>
  34. </#list>
  35. $(function(){
  36. //判断表单是否生成
  37. $.get("cgFormHeadController.do?checkIsExit&checkIsTableCreate&name=${config_id}",
  38. function(data){
  39. data = $.parseJSON(data);
  40. if(data.success){
  41. loadData(1);
  42. }else{
  43. alertTip('表:<span style="color:red;">${config_id}</span>还没有生成,请到表单配置生成表');
  44. }
  45. });
  46. });
  47. //加载表单数据
  48. function loadData(page){
  49. if(page&&page!=''){
  50. page=parseInt(page);
  51. if(page&&(totalPage==-1||page<totalPage))
  52. $("#page").val(page);
  53. }
  54. var initUrl = 'cgAutoListController.do?datagrid&configId=${config_id}&field=${fileds}${initquery}';
  55. initUrl = encodeURI(initUrl);
  56. $("formPage").val($("#page").val());
  57. $("formRows").val($("#rows").val());
  58. $.ajax({
  59. url:initUrl,
  60. type:"get",
  61. data:$("#dataForm").serialize(),
  62. dataType:"json",
  63. success:function(data){
  64. $("#dataBody").empty();
  65. pagination(data.total);
  66. $.each(data.rows,function(i,f){
  67. $("#dataBody").append(getDataTr(f));
  68. })
  69. }
  70. })
  71. }
  72. //生成数据tr条目
  73. function getDataTr(data){
  74. var item="<tr>";
  75. <#if config_ischeckbox=="Y">
  76. item+="<td><input type='checkbox'class='item' name='ck' value='"+data['id']+"'/></td>";
  77. </#if>
  78. $.each(fields,function(i,f){
  79. item+="<td>"+ ((data[f]&&data[f]!='null')?data[f]:'')+"</td>";
  80. });
  81. item+="<td><button class='btn btn-danger' onclick='del(\'"+data['id']+"\')'>删除</button></td>";
  82. item+="</tr>";
  83. return item;
  84. }
  85. //设置页码信息
  86. function pagination(totalCount){
  87. if(totalCount){
  88. var rows=parseInt($("#rows").val());
  89. totalPage=Math.ceil(totalCount*1.0/rows);
  90. $("#pageInfo").text("共"+totalPage+"页,"+totalCount+"条,当前为第"+$("#page").val()+"页");
  91. }
  92. }
  93. //选中 反选
  94. function checkAll(obj){
  95. $(".item").each(function(){
  96. this.checked=obj.checked;
  97. });
  98. }
  99. //重置
  100. function searchReset(){
  101. $("#dataForm").find("[type!='hidden']").val("");
  102. }
  103. //删除单条
  104. function del(id){
  105. $.ajax({
  106. url: "cgAutoListController.do?delBatch",
  107. data: {'ids': id, 'configId': '${config_id}'},
  108. type: "Post",
  109. dataType: "json",
  110. success: function (data) {
  111. $.scojs_message(data.msg, $.scojs_message.TYPE_OK);
  112. loadData();
  113. },
  114. error: function (data) {
  115. $.scojs_message(data.msg, $.scojs_message.TYPE_ERROR);
  116. }
  117. });
  118. }
  119. //批量删除
  120. function delBatch() {
  121. //获取选中的ID串
  122. var idChecked = $(".item:checked");
  123. var ids="";
  124. if (idChecked.length <= 0) {
  125. $.scojs_message('请选择至少一条信息', $.scojs_message.TYPE_ERROR);
  126. return false;
  127. }
  128. $.each(idChecked,function(i,f){
  129. ids+= f.value+",";
  130. });
  131. $.ajax({
  132. url: "cgAutoListController.do?delBatch",
  133. data: {'ids': ids, 'configId': '${config_id}'},
  134. type: "Post",
  135. dataType: "json",
  136. success: function (data) {
  137. $.scojs_message(data.msg, $.scojs_message.TYPE_OK);
  138. loadData();
  139. },
  140. error: function (data) {
  141. $.scojs_message(data.msg, $.scojs_message.TYPE_ERROR);
  142. }
  143. });
  144. }
  145. //excel导出
  146. function ExportExcel(){
  147. var queryParams=getQueryParam();
  148. var params = '&';
  149. $.each(queryParams, function(key, val){
  150. params+='&'+key+'='+val;
  151. });
  152. var fields = '&field=';
  153. <#list config_fieldList as x>
  154. <#if x['field_isShow'] != "N" >
  155. fields+="${x['field_id']},";
  156. </#if>
  157. </#list>
  158. window.location.href = "excelTempletController.do?exportXls&tableName=${config_id}"+encodeURI(params+fields)
  159. }
  160. function getQueryParam(){
  161. var formArray=$("#dataForm").serializeArray();
  162. var params={};
  163. $.each(formArray,function(i,f){
  164. params[f["name"]]=f["value"];
  165. })
  166. return params;
  167. }
  168. //JS增强
  169. ${config_jsenhance}
  170. </script>
  171. </head>
  172. <body>
  173. <div class="panel panel-default">
  174. <div class="panel-heading">
  175. <h3 class="panel-title">${config_name}列表</h3>
  176. </div>
  177. <div class="panel-body">
  178. <form id="dataForm" role="form" class="form-inline">
  179. <input type="hidden" id="formPage" name="page" value="1" />
  180. <input type="hidden" id="formRows" name="rows" value="10" />
  181. <#if config_querymode == "group">
  182. <#list config_queryList as x>
  183. <#if x['field_isQuery']=="Y">
  184. <div class="form-group col-sm-6 col-md-4">
  185. <label for="exampleInputEmail1" class="control-label col-sm-4 col-md-4 line34">${x['field_title']}:</label>
  186. <#if x['field_queryMode']=="group">
  187. <div class="col-sm-8 col-md-8">
  188. <#if x['field_isQuery']=="Y">
  189. <input type="text" name="${x['field_id']}_begin" style="min-width: 94px;" class="col-sm-5 col-md-5" <#if x['field_type']=="Date">class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"</#if> value="${x['field_value_begin']}" />
  190. <span class="col-sm-2 col-md-2" style="display:-moz-inline-box;display:inline-block;width: 8px !important;text-align:right;">~</span>
  191. <input type="text" name="${x['field_id']}_end" style="min-width: 94px;" class="col-sm-5 col-md-5" <#if x['field_type']=="Date">class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"</#if> value="${x['field_value_end']}"/>
  192. <#else>
  193. <input type="hidden" name="${x['field_id']}_begin" value="${x['field_value_begin']}"/>
  194. <input type="hidden" name="${x['field_id']}_end" value="${x['field_value_end']}"/>
  195. </#if>
  196. </div>
  197. </#if>
  198. <#if x['field_queryMode']=="single">
  199. <#if x['field_isQuery']=="Y">
  200. <#if (x['field_dictlist']?size >0)>
  201. <select name = "${x['field_id']}" class="col-sm-8 col-md-8">
  202. <option value = "">---请选择---</option>
  203. <#list x['field_dictlist'] as xd>
  204. <option value = "${xd['typecode']}">${xd['typename']}</option>
  205. </#list>
  206. </select>
  207. </#if>
  208. <#if (x['field_dictlist']?size <= 0)>
  209. <#if x['field_showType']!='popup'>
  210. <input type="text" name="${x['field_id']}" <#if x['field_type']=="Date">class="col-sm-8 col-md-8 Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"<#else> class="col-sm-8 col-md-8"</#if> value="${x['field_value']?if_exists?default('')}" />
  211. <#else>
  212. <input type="text" name="${x['field_id']}" class="col-sm-8 col-md-8"
  213. class="searchbox-inputtext" value="${x['field_value']?if_exists?default('')}"
  214. onClick="inputClick(this,'${x['field_dictField']?if_exists?html}','${x['field_dictTable']?if_exists?html}');" />
  215. </#if>
  216. </#if>
  217. <#else>
  218. <input type="hidden" name="${x['field_id']}" value="${x['field_value']?if_exists?default('')}" />
  219. </#if>
  220. </#if>
  221. </div>
  222. </#if>
  223. </#list>
  224. <div class="clearfix"></div>
  225. <button type="button" class="btn btn-primary" onclick="loadData()">搜 索</button>
  226. <button type="button" class="btn btn-info" onclick="searchReset()">重置</button>
  227. </#if>
  228. <#if config_querymode == "single">
  229. <div class="col-md-5 col-md-offset-2">
  230. <input id="${config_id}Listsearchbox" class="form-control" placeholder="请输入关键字" </input>
  231. <div id="${config_id}Listmm" style="width:120px">
  232. <#list config_queryList as x>
  233. <#if x['field_isQuery']=="Y">
  234. <div data-options="name:'${x['field_id']}',iconCls:'icon-ok' ">${x['field_title']}</div>
  235. <#else>
  236. </#if>
  237. </#list>
  238. </div>
  239. </div>
  240. <div class="col-md-3"><button type="submit" class="btn btn-primary" onclick="loadData()">搜 索</button>
  241. <button type="button" class="btn btn-info" onclick="searchReset()">重置</button>
  242. </div>
  243. </#if>
  244. </form>
  245. <div id="legend">
  246. <legend class="le">数据列表</legend>
  247. </div>
  248. <div class="btn-group">
  249. <button type="button" class="btn btn-default">录入</button>
  250. <button type="button" class="btn btn-default">编辑</button>
  251. <button type="button" class="btn btn-default" onclick="delBatch()">批量删除</button>
  252. <button type="button" class="btn btn-default">查看</button>
  253. <button type="button" class="btn btn-default" onclick="ExportExcel()">Excel导出</button>
  254. </div>
  255. <table id="${config_id}List" class="table table-striped">
  256. <thead>
  257. <tr>
  258. <#if config_ischeckbox=="Y"><th><input type="checkbox" class="checkAll" onclick="checkAll(this)" /></th></#if>
  259. <#list config_fieldList as x>
  260. <#if x['field_isShow'] != "N" >
  261. <th>${x['field_title']}</th>
  262. </#if>
  263. </#list>
  264. <th>操作</th>
  265. </tr>
  266. </thead>
  267. <tbody id="dataBody">
  268. </tbody>
  269. </table>
  270. <div class="text-right">
  271. <ul class="pagination">
  272. <li><span style="height: 40px" id="pageInfo">共0页,0条</span>
  273. <input type="hidden" id="page" name="page" value="1" />
  274. </li>
  275. <li><a href="#" style="height: 40px" onclick="loadData(parseInt($('#page').val())-1)">上一页</a></li>
  276. <li><span style="height: 40px">跳转到 <input type="text" id="goTo" value="">&nbsp;<button class="btn btn-default btn-sm" onclick="loadData(parseInt($('#goTo').val()))">GO</button></span></li>
  277. <li><a href="#" style="height: 40px" onclick="loadData(parseInt($('#page').val())+1)">下一页</a></li>
  278. <li><span style="height: 40px">每页显示
  279. <select id="rows" onchange="loadData()">
  280. <option value="10">10</option>
  281. <option value="20">20</option>
  282. <option value="30">30</option>
  283. <option value="40">40</option>
  284. </select>
  285. </span>
  286. </li>
  287. </ul>
  288. </div>
  289. </div>
  290. </div>
  291. </body>
  292. </html>