autolist.ftl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  1. ${config_iframe}
  2. <script type="text/javascript">
  3. /**
  4. *表单的高度,表单的宽度
  5. **/
  6. var ${config_id}Fw = 900,${config_id}Fh = 600;
  7. $(function(){
  8. $.get("cgFormHeadController.do?checkIsExit&checkIsTableCreate&name=${config_id}",
  9. function(data){
  10. data = $.parseJSON(data);
  11. if(data.success){
  12. createDataGrid${config_id}();
  13. }else{
  14. alertTip('表:<span style="color:red;">${config_id}</span>还没有生成,请到表单配置生成表');
  15. }
  16. });
  17. });
  18. function createDataGrid${config_id}(){
  19. var initUrl = 'cgAutoListController.do?datagrid&configId=${config_id}&field=${fileds}${initquery}';
  20. initUrl = encodeURI(initUrl);
  21. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>(
  22. {
  23. <#if config_istree=="Y">treeField:'text',</#if>
  24. url:initUrl,
  25. idField: 'id', <#if config_istree=="Y">treeField:"${tree_fieldname}",</#if>
  26. title: '${config_name}',
  27. fit:true,
  28. fitColumns:true,
  29. striped:true,
  30. autoRowHeight:true,
  31. pageSize: 10,
  32. <#if config_ispagination =="Y">pagination:true,</#if>
  33. <#if config_ischeckbox=="Y">singleSelect:false,<#else>singleSelect:true,</#if>
  34. <#if fileds?index_of("create_datetime")!=-1 >
  35. sortName:'create_datetime',
  36. <#elseif fileds?index_of("create_date")!=-1 && fileds?index_of("create_datetime")==-1>
  37. sortName:'create_date',
  38. <#else>
  39. sortName:'id',
  40. </#if>
  41. pageList:[10,30,50,100],
  42. sortOrder:'desc',
  43. rownumbers:true,
  44. showFooter:true,
  45. frozenColumns:[[]],
  46. columns:[
  47. [
  48. <#if config_istree=="Y">
  49. <#list config_fieldList as x>
  50. <#if x_index==0>{field:"id", title:"${x['field_title']}", hidden:true}, </#if>
  51. <#if x_index!=0>{field:"${x['field_id']}", title:"${x['field_title']}",<#if x['field_isShow'] == "N" >hidden:true,</#if><#if x['field_href'] != "">formatter:function(value,rec,index){var href='';href+="<a href='javascript:void(0)' onclick=\"addOneTab('字段链接','${x['field_href']}')\" ><u>"+value+"</u></a>";return href;},</#if> width:100}, </#if>
  52. </#list>
  53. <#else>
  54. <#if config_ischeckbox=="Y">{field:'ck',checkbox:true},</#if>
  55. <#list config_fieldList as x>
  56. { field:'${x['field_id']}',
  57. title:'${x['field_title']}',
  58. <#if x['field_isShow'] == "N" >hidden:true,
  59. </#if>
  60. <#if x['field_href'] != "">
  61. formatter:function(value,rec,index){
  62. var href='';
  63. href+=applyHref('字段链接','${x['field_href']}',value,rec,index);
  64. return href;
  65. },
  66. </#if>
  67. <#if x['field_showType']=="file">
  68. formatter:function(value,rec,index){
  69. var href='';
  70. if(value==null || value.length==0){
  71. return href;
  72. }
  73. if(value.indexOf(".jpg")>-1 || value.indexOf(".gif")>-1 || value.indexOf(".png")>-1){
  74. <#-- update--begin--author:zhangjiaqiang date:20170606 for:TASK #2056 【上传附件功能】Online 一对多对上传组件支持 -->
  75. href+="<img src='"+value+"' onmouseover='tipImg(this)' onmouseout='moveTipImg()' width=50 height=50 />";
  76. <#-- update--begin--author:zhangjiaqiang date:20170606 for:TASK #2056 【上传附件功能】Online 一对多对上传组件支持 -->
  77. }else{
  78. <#-- //update-begin--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  79. href+="<a href='"+value+"' class='ace_button' target=_blank><u><i class='fa fa-download'></i>点击下载</u></a>";
  80. <#-- //update-begin--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  81. }
  82. return href;
  83. },
  84. </#if>
  85. sortable:true,
  86. width:${x['field_length']}
  87. },
  88. </#list>
  89. </#if>
  90. {field:'opt',title:'操作',width:200,formatter:function(value,rec,index){
  91. if(!rec.id){return '';}
  92. var href='';
  93. <#if config_noliststr?index_of("delete")==-1>
  94. href+="[<a href='javascript:void(0)' onclick=delObj('cgAutoListController.do?del&configId=${config_id}&id="+rec.id+"','${config_id}List')>";
  95. href+="删除</a>]";
  96. </#if>
  97. <#list config_buttons as x>
  98. <#if x['buttonStyle'] == 'link' && x['buttonStatus']=='1' && config_noliststr?index_of("${x['buttonCode']}")==-1>
  99. <#-- //update-begin--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  100. href+="<a style='margin-left:5px;' href='javascript:void(0)' class='ace_button' buttonCode='${x['buttonCode']}' formId ='${x['formId']}' ";
  101. <#-- //update-end--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  102. <#if x['optType'] == 'action'>
  103. href+=" onclick=\"doBusButtonForLink('cgFormBuildController.do?doButton&formId=${x['formId']}&buttonCode=${x['buttonCode']}&tableName=${config_id}','${x['buttonName']}','${config_id}List','"+rec.id+"')\"";
  104. <#else>
  105. href+=" onclick=\"${x['buttonCode']}('"+rec.id+"');\"";
  106. </#if>
  107. href+=" id=\"${x['buttonCode']}\">";
  108. <#-- //update-begin--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  109. <#if x['buttonName']?index_of("测试") gt -1>
  110. href+="<i class='fa fa-wrench'></i>${x['buttonName']}</a>";
  111. <#elseif x['buttonName']?index_of("配置") gt -1 || x['buttonName']?index_of("设置") gt -1>
  112. href+="<i class='fa fa-cog'></i>${x['buttonName']}</a>";
  113. <#elseif x['buttonName']?index_of("导入") gt -1 || x['buttonName']?index_of("下载") gt -1>
  114. href+="<i class='fa fa-download'></i>${x['buttonName']}</a>";
  115. <#elseif x['buttonName']?index_of("导出") gt -1 || x['buttonName']?index_of("上传") gt -1>
  116. href+="<i class='fa fa-upload'></i>${x['buttonName']}</a>";
  117. <#elseif x['buttonName']?index_of("复制") gt -1>
  118. href+="<i class='fa fa-copy'></i>${x['buttonName']}</a>";
  119. <#elseif x['buttonName']?index_of("剪切") gt -1>
  120. href+="<i class='fa fa-cut'></i>${x['buttonName']}</a>";
  121. <#else>
  122. href+="<i class='fa fa-wrench'></i>${x['buttonName']}</a>";
  123. </#if>
  124. <#-- //update-end--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  125. </#if>
  126. </#list>
  127. return href;
  128. }
  129. }
  130. ]
  131. ],
  132. onLoadSuccess:function(data){
  133. $("#${config_id}List").<#if config_istree=="Y">treegrid<#else>datagrid</#if>("clearSelections");
  134. },
  135. onClickRow:function(rowIndex,rowData)
  136. {rowid=rowData.id;gridname='${config_id}List';}
  137. });
  138. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getPager').pagination({beforePageText:'',afterPageText:'/{pages}',displayMsg:'{from}-{to}共{total}条',showPageList:true,showRefresh:true});
  139. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getPager').pagination({onBeforeRefresh:function(pageNumber, pageSize){ $(this).pagination('loading');$(this).pagination('loaded'); }});
  140. //将没有权限的按钮屏蔽掉
  141. <#list config_nolist as x>
  142. $("#${config_id}Listtb").find("${x}").hide();
  143. </#list>
  144. }
  145. //列表刷新
  146. function reloadTable(){
  147. try{
  148. <#if config_istree=="Y">
  149. $('#'+gridname).treegrid('reload');
  150. <#else>
  151. $('#'+gridname).datagrid('reload');
  152. </#if>
  153. }catch(ex){
  154. //donothing
  155. }
  156. }
  157. //列表刷新-推荐使用
  158. function reload${config_id}List(){
  159. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('reload');
  160. }
  161. /**
  162. * 获取列表中选中行的数据-推荐使用
  163. * @param field 数据中字段名
  164. * @return 选中行的给定字段值
  165. */
  166. function get${config_id}ListSelected(field){
  167. var row = $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getSelected');
  168. if(row!=null){value= row[field];
  169. }else{
  170. value='';
  171. }
  172. return value;
  173. }
  174. /**
  175. * 获取列表中选中行的数据
  176. * @param field 数据中字段名
  177. * @return 选中行的给定字段值
  178. */
  179. function getSelected(field){
  180. var row = $('#'+gridname).<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getSelected');
  181. if(row!=null){value= row[field];
  182. }else{
  183. value='';
  184. }
  185. return value;
  186. }
  187. /**
  188. * 获取表格对象
  189. * @return 表格对象
  190. */
  191. function getDataGrid(){
  192. var datagrid = $('#'+gridname);
  193. return datagrid;
  194. }
  195. /**
  196. * 获取列表中选中行的数据(多行)
  197. * @param field 数据中字段名-不传此参数则获取全部数据
  198. * @return 选中行的给定字段值,以逗号分隔
  199. */
  200. function get${config_id}ListSelections(field){
  201. var ids = '';
  202. var rows = $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getSelections');
  203. for(var i=0;i<rows.length;i++){
  204. ids+=rows[i][field];
  205. ids+=',';
  206. }
  207. ids = ids.substring(0,ids.length-1);
  208. return ids;
  209. }
  210. /**
  211. * 列表查询
  212. */
  213. function ${config_id}Listsearch(){
  214. var queryParams=$('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('options').queryParams;
  215. $('#${config_id}Listtb').find('*').each(
  216. function(){
  217. queryParams[$(this).attr('name')]=$(this).val();});
  218. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>({url:'cgAutoListController.do?datagrid&configId=${config_id}&field=${fileds}',pageNumber:1});
  219. }
  220. function dosearch(params){
  221. var jsonparams=$.parseJSON(params);
  222. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>({url:'cgAutoListController.do?datagrid&configId=${config_id}&field=${fileds},',queryParams:jsonparams});
  223. }
  224. function ${config_id}Listsearchbox(value,name){
  225. var queryParams=$('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('options').queryParams;
  226. queryParams[name]=value;
  227. queryParams.searchfield=name;
  228. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('reload');
  229. }
  230. $('#${config_id}Listsearchbox').searchbox({
  231. searcher:function(value,name){
  232. ${config_id}Listsearchbox(value,name);
  233. },
  234. menu:'#${config_id}Listmm',
  235. prompt:'请输入查询关键字'
  236. });
  237. //查询重置
  238. function ${config_id}searchReset(name){
  239. $("#"+name+"tb").find("input[type!='hidden']").val("");
  240. <#if config_istree=="Y">
  241. //为树形表单时,删除id查询参数
  242. delete $('#${config_id}List').treegrid('options').queryParams.id;
  243. </#if>
  244. ${config_id}Listsearch();
  245. }
  246. //将字段href中的变量替换掉
  247. function applyHref(tabname,href,value,rec,index){
  248. //addOneTab(tabname,href);
  249. var hrefnew = href;
  250. var re = "";
  251. var p1 = /\#\{(\w+)\}/g;
  252. try{
  253. var vars =hrefnew.match(p1);
  254. for(var i=0;i<vars.length;i++){
  255. var keyt = vars[i];
  256. var p2 = /\#\{(\w+)\}/g;
  257. var key = p2.exec(keyt);
  258. hrefnew = hrefnew.replace(keyt,rec[key[1]]);
  259. }
  260. }catch(ex){
  261. }
  262. re += "<a href = '#' onclick=\"addOneTab('"+tabname+"','"+ hrefnew+"')\" ><u>"+value+"</u></a>";
  263. return re;
  264. }
  265. //SQL增强入口-按钮
  266. function doBusButton(url,content,gridname){
  267. var rowData = $('#'+gridname).datagrid('getSelected');
  268. if (!rowData) {
  269. tip('请选择一条信息');
  270. return;
  271. }
  272. url = url + '&id='+rowData.id;
  273. createdialog('确认 ', '确定'+content+'吗 ?', url,gridname);
  274. }
  275. //SQL增强入口-操作列里的链接
  276. function doBusButtonForLink(url,content,gridname,rowData){
  277. if (!rowData) {
  278. tip('请选择一条信息');
  279. return;
  280. }
  281. url = url + '&id='+rowData;
  282. createdialog('确认 ', '确定'+content+'吗 ?', url,gridname);
  283. }
  284. //新增
  285. function ${config_id}add(){
  286. add('${config_name}录入','cgFormBuildController/ftlForm/${config_id}/goAdd.do?olstylecode=${_olstylecode}','${config_id}List',${config_id}Fw,${config_id}Fh);
  287. }
  288. //修改
  289. function ${config_id}update(){
  290. update('${config_name}编辑','cgFormBuildController/ftlForm/${config_id}/goUpdate.do?olstylecode=${_olstylecode}','${config_id}List',${config_id}Fw,${config_id}Fh);
  291. }
  292. //查看
  293. function ${config_id}view(){
  294. detail('查看','cgFormBuildController/ftlForm/${config_id}/goDetail.do?olstylecode=${_olstylecode}','${config_id}List',${config_id}Fw,${config_id}Fh);
  295. }
  296. //批量删除
  297. function ${config_id}delBatch(){
  298. //获取选中的ID串
  299. var ids = get${config_id}ListSelections('id');
  300. if(ids.length<=0){
  301. tip('请选择至少一条信息');
  302. return;
  303. }
  304. $.dialog.confirm('确定删除吗?', function(r) {
  305. if(!r){return;}
  306. $.ajax({
  307. url:"cgAutoListController.do?delBatch",
  308. data:{'ids':ids,'configId':'${config_id}'},
  309. type:"Post",
  310. dataType:"json",
  311. success:function(data){
  312. tip(data.msg);
  313. reload${config_id}List();
  314. },
  315. error:function(data){
  316. $.messager.alert('错误',data.msg);
  317. }
  318. });
  319. }
  320. );
  321. }
  322. function ${config_id}ExportExcel(){
  323. var queryParams = $('#${config_id}List').datagrid('options').queryParams;
  324. $('#${config_id}Listtb').find('*').each(function() {
  325. queryParams[$(this).attr('name')] = $(this).val();
  326. });
  327. var params = '&';
  328. $.each(queryParams, function(key, val){
  329. params+='&'+key+'='+val;
  330. });
  331. var fields = '&field=';
  332. $.each($('#${config_id}List').datagrid('options').columns[0], function(i, val){
  333. if(val.field != 'opt'&&val.field != 'ck'){
  334. fields+=val.field+',';
  335. }
  336. });
  337. <#--//update-begin--Author:dangzhenghui Date:20170429 for:TASK #1906 【online excel】Online excel 导出功能改进 -->
  338. var id='&id=';
  339. $.each($('#${config_id}List').datagrid('getSelections'), function(i, val){
  340. id+=val.id+",";
  341. });
  342. window.location.href = "excelTempletController.do?exportXls&tableName=${config_id}"+encodeURI(params+fields+id)
  343. <#--//update-end--Author:dangzhenghui Date:20170429 for:TASK #1906 【online excel】Online excel 导出功能改进 -->
  344. }
  345. //JS增强
  346. ${config_jsenhance}
  347. </script>
  348. <table width="100%" id="${config_id}List" toolbar="#${config_id}Listtb"></table>
  349. <div id="${config_id}Listtb" style="padding:3px; height: auto">
  350. <div name="searchColums">
  351. <#if config_querymode == "group">
  352. <#list config_queryList as x>
  353. <#if x['field_isQuery']=="Y">
  354. <span style="display:-moz-inline-box;display:inline-block;">
  355. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 100px;text-align:right;text-align:right;text-overflow:ellipsis;-o-text-overflow:ellipsis; overflow: hidden;white-space:nowrap;" title="${x['field_title']}">${x['field_title']}:</span>
  356. </#if>
  357. <#if x['field_queryMode']=="group">
  358. <#if x['field_isQuery']=="Y">
  359. <input type="text" name="${x['field_id']}_begin" style="width: 94px" <#if x['field_type']=="Date">class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"</#if> value="${x['field_value_begin']}" />
  360. <span style="display:-moz-inline-box;display:inline-block;width: 8px !important;text-align:right;">~</span>
  361. <input type="text" name="${x['field_id']}_end" style="width: 94px" <#if x['field_type']=="Date">class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"</#if> value="${x['field_value_end']}"/>
  362. <#else>
  363. <input type="hidden" name="${x['field_id']}_begin" value="${x['field_value_begin']}"/>
  364. <input type="hidden" name="${x['field_id']}_end" value="${x['field_value_end']}"/>
  365. </#if>
  366. </#if>
  367. <#if x['field_queryMode']=="single">
  368. <#if x['field_isQuery']=="Y">
  369. <#if (x['field_dictlist']?size >0)>
  370. <select name = "${x['field_id']}" style="width: 104px">
  371. <option value = "">---请选择---</option>
  372. <#list x['field_dictlist'] as xd>
  373. <option value = "${xd['typecode']}">${xd['typename']}</option>
  374. </#list>
  375. </select>
  376. </#if>
  377. <#if (x['field_dictlist']?size <= 0)>
  378. <#if x['field_showType']!='popup'>
  379. <input type="text" name="${x['field_id']}" style="width: 100px" <#if x['field_type']=="Date">class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"</#if> value="${x['field_value']?if_exists?default('')}" />
  380. <#else>
  381. <input type="text" name="${x['field_id']}" style="width: 100px"
  382. class="searchbox-inputtext" value="${x['field_value']?if_exists?default('')}"
  383. onClick="inputClick(this,'${x['field_dictField']?if_exists?html}','${x['field_dictTable']?if_exists?html}');" />
  384. </#if>
  385. </#if>
  386. <#else>
  387. <input type="hidden" name="${x['field_id']}" value="${x['field_value']?if_exists?default('')}" />
  388. </#if>
  389. </#if>
  390. </span>
  391. </#list>
  392. </#if>
  393. </div>
  394. <div style="height:30px;" class="datagrid-toolbar">
  395. <span style="float:left;" >
  396. <a id="add" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-add" onclick="${config_id}add()">录入</a>
  397. <a id="update" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-edit" onclick="${config_id}update()">编辑</a>
  398. <a id="delete" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-remove" onclick="${config_id}delBatch()">批量删除</a>
  399. <a id="detail" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-search" onclick="${config_id}view()">查看</a>
  400. <a id="import" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-put" onclick="add('${config_name}Excel数据导入','excelTempletController.do?goImplXls&tableName=${config_id}','${config_id}List')">Excel数据导入</a>
  401. <a id="excel" href="javascript:void(0)" class="easyui-linkbutton" plain="true" onclick="${config_id}ExportExcel()" icon="icon-putout">Excel导出</a>
  402. <#list config_buttons as x>
  403. <#if x['buttonStyle'] == 'button' && x['buttonStatus']=='1'>
  404. <a id="${x['buttonCode']}" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="${x['buttonIcon']?if_exists?default('pictures')}"
  405. <#if x['optType'] == 'action'>
  406. onclick="doBusButton('cgFormBuildController.do?doButton&formId=${x['formId']}&buttonCode=${x['buttonCode']}&tableName=${config_id}','${x['buttonName']}','${config_id}List')">${x['buttonName']}</a>
  407. <#else>
  408. onclick="${x['buttonCode']}();">${x['buttonName']}</a>
  409. </#if>
  410. </#if>
  411. </#list>
  412. </span>
  413. <#if (config_queryList?size >0)>
  414. <#if config_querymode == "group" >
  415. <span style="float:right">
  416. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" onclick="${config_id}Listsearch()">查询</a>
  417. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-reload" onclick="${config_id}searchReset('${config_id}List')">重置</a>
  418. </span>
  419. </#if>
  420. <#if config_querymode == "single">
  421. <span style="float:right">
  422. <input id="${config_id}Listsearchbox" class="easyui-searchbox" data-options="searcher:${config_id}Listsearchbox,prompt:'请输入关键字',menu:'#${config_id}Listmm'"></input>
  423. <div id="${config_id}Listmm" style="width:120px">
  424. <#list config_queryList as x>
  425. <#if x['field_isQuery']=="Y">
  426. <div data-options="name:'${x['field_id']}',iconCls:'icon-ok' ">${x['field_title']}</div>
  427. <#else>
  428. </#if>
  429. </#list>
  430. </div>
  431. </span>
  432. </#if>
  433. </#if>
  434. </div>
  435. </div>