autolist.ftl 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  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. <#-- //update-begin--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  95. href+="<a href='javascript:void(0)' class='ace_button' onclick=delObj('cgAutoListController.do?del&configId=${config_id}&id="+rec.id+"','${config_id}List')>";
  96. href+="<i class='fa fa-trash-o'></i>删除</a>";
  97. <#-- //update-end--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  98. </#if>
  99. <#list config_buttons as x>
  100. <#if x['buttonStyle'] == 'link' && x['buttonStatus']=='1' && config_noliststr?index_of("${x['buttonCode']}")==-1>
  101. <#-- //update-begin--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  102. href+="<a style='margin-left:5px;' href='javascript:void(0)' class='ace_button' buttonCode='${x['buttonCode']}' formId ='${x['formId']}' ";
  103. <#if x['optType'] == 'action'>
  104. href+=" onclick=\"doBusButtonForLink('cgFormBuildController.do?doButton&formId=${x['formId']}&buttonCode=${x['buttonCode']}&tableName=${config_id}','${x['buttonName']}','${config_id}List','"+rec.id+"')\"";
  105. <#else>
  106. href+=" onclick=\"${x['buttonCode']}('"+rec.id+"');\"";
  107. </#if>
  108. href+=" id=\"${x['buttonCode']}\">";
  109. <#-- update--begin--author:zhangjiaqiang date:20170419 for:修订 -->
  110. <#if x['buttonName']?index_of('测试') gt -1>
  111. href+="<i class='fa fa-wrench'></i>${x['buttonName']}</a>";
  112. <#elseif x['buttonName']?index_of('配置') gt -1 >
  113. href+="<i class='fa fa-cog'></i>${x['buttonName']}</a>";
  114. <#else>
  115. href+="<i class='fa fa-wrench'></i>${x['buttonName']}</a>";
  116. </#if>
  117. <#-- //update-end--Author:zhangjiaqiang Date:20160925 for:TASK #1344 [链接图标] online功能测试的按钮链接图标修改 -->
  118. </#if>
  119. </#list>
  120. return href;
  121. }
  122. }
  123. ]
  124. ],
  125. onLoadSuccess:function(data){
  126. $("#${config_id}List").<#if config_istree=="Y">treegrid<#else>datagrid</#if>("clearSelections");
  127. },
  128. onClickRow:function(rowIndex,rowData)
  129. {rowid=rowData.id;gridname='${config_id}List';}
  130. });
  131. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getPager').pagination({beforePageText:'',afterPageText:'/{pages}',displayMsg:'{from}-{to}共{total}条',showPageList:true,showRefresh:true});
  132. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getPager').pagination({onBeforeRefresh:function(pageNumber, pageSize){ $(this).pagination('loading');$(this).pagination('loaded'); }});
  133. //将没有权限的按钮屏蔽掉
  134. <#list config_nolist as x>
  135. $("#${config_id}Listtb").find("${x}").hide();
  136. </#list>
  137. }
  138. //列表刷新
  139. function reloadTable(){
  140. try{
  141. <#if config_istree=="Y">
  142. $('#'+gridname).treegrid('reload');
  143. <#else>
  144. $('#'+gridname).datagrid('reload');
  145. </#if>
  146. }catch(ex){
  147. //donothing
  148. }
  149. }
  150. //列表刷新-推荐使用
  151. function reload${config_id}List(){
  152. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('reload');
  153. }
  154. /**
  155. * 获取列表中选中行的数据-推荐使用
  156. * @param field 数据中字段名
  157. * @return 选中行的给定字段值
  158. */
  159. function get${config_id}ListSelected(field){
  160. var row = $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getSelected');
  161. if(row!=null){value= row[field];
  162. }else{
  163. value='';
  164. }
  165. return value;
  166. }
  167. /**
  168. * 获取列表中选中行的数据
  169. * @param field 数据中字段名
  170. * @return 选中行的给定字段值
  171. */
  172. function getSelected(field){
  173. var row = $('#'+gridname).<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getSelected');
  174. if(row!=null){value= row[field];
  175. }else{
  176. value='';
  177. }
  178. return value;
  179. }
  180. /**
  181. * 获取表格对象
  182. * @return 表格对象
  183. */
  184. function getDataGrid(){
  185. var datagrid = $('#'+gridname);
  186. return datagrid;
  187. }
  188. /**
  189. * 获取列表中选中行的数据(多行)
  190. * @param field 数据中字段名-不传此参数则获取全部数据
  191. * @return 选中行的给定字段值,以逗号分隔
  192. */
  193. function get${config_id}ListSelections(field){
  194. var ids = '';
  195. var rows = $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('getSelections');
  196. for(var i=0;i<rows.length;i++){
  197. ids+=rows[i][field];
  198. ids+=',';
  199. }
  200. ids = ids.substring(0,ids.length-1);
  201. return ids;
  202. }
  203. /**
  204. * 列表查询
  205. */
  206. function ${config_id}Listsearch(){
  207. var queryParams=$('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('options').queryParams;
  208. $('#${config_id}Listtb').find('*').each(
  209. function(){
  210. queryParams[$(this).attr('name')]=$(this).val();});
  211. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>({url:'cgAutoListController.do?datagrid&configId=${config_id}&field=${fileds}',pageNumber:1});
  212. }
  213. function dosearch(params){
  214. var jsonparams=$.parseJSON(params);
  215. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>({url:'cgAutoListController.do?datagrid&configId=${config_id}&field=${fileds},',queryParams:jsonparams});
  216. }
  217. function ${config_id}Listsearchbox(value,name){
  218. var queryParams=$('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('options').queryParams;
  219. queryParams[name]=value;
  220. queryParams.searchfield=name;
  221. $('#${config_id}List').<#if config_istree=="Y">treegrid<#else>datagrid</#if>('reload');
  222. }
  223. $('#${config_id}Listsearchbox').searchbox({
  224. searcher:function(value,name){
  225. ${config_id}Listsearchbox(value,name);
  226. },
  227. menu:'#${config_id}Listmm',
  228. prompt:'请输入查询关键字'
  229. });
  230. //查询重置
  231. function ${config_id}searchReset(name){
  232. $("#"+name+"tb").find("input[type!='hidden']").val("");
  233. <#if config_istree=="Y">
  234. //为树形表单时,删除id查询参数
  235. delete $('#${config_id}List').treegrid('options').queryParams.id;
  236. </#if>
  237. ${config_id}Listsearch();
  238. }
  239. //将字段href中的变量替换掉
  240. function applyHref(tabname,href,value,rec,index){
  241. //addOneTab(tabname,href);
  242. var hrefnew = href;
  243. var re = "";
  244. var p1 = /\#\{(\w+)\}/g;
  245. try{
  246. var vars =hrefnew.match(p1);
  247. for(var i=0;i<vars.length;i++){
  248. var keyt = vars[i];
  249. var p2 = /\#\{(\w+)\}/g;
  250. var key = p2.exec(keyt);
  251. hrefnew = hrefnew.replace(keyt,rec[key[1]]);
  252. }
  253. }catch(ex){
  254. }
  255. re += "<a href = '#' onclick=\"addOneTab('"+tabname+"','"+ hrefnew+"')\" ><u>"+value+"</u></a>";
  256. return re;
  257. }
  258. //SQL增强入口-按钮
  259. function doBusButton(url,content,gridname){
  260. var rowData = $('#'+gridname).datagrid('getSelected');
  261. if (!rowData) {
  262. tip('请选择一条信息');
  263. return;
  264. }
  265. url = url + '&id='+rowData.id;
  266. createdialog('确认 ', '确定'+content+'吗 ?', url,gridname);
  267. }
  268. //SQL增强入口-操作列里的链接
  269. function doBusButtonForLink(url,content,gridname,rowData){
  270. if (!rowData) {
  271. tip('请选择一条信息');
  272. return;
  273. }
  274. url = url + '&id='+rowData;
  275. createdialog('确认 ', '确定'+content+'吗 ?', url,gridname);
  276. }
  277. //新增
  278. function ${config_id}add(){
  279. add('${config_name}录入','cgFormBuildController/ftlForm/${config_id}/goAdd.do?olstylecode=${_olstylecode}','${config_id}List',${config_id}Fw,${config_id}Fh);
  280. }
  281. //修改
  282. function ${config_id}update(){
  283. update('${config_name}编辑','cgFormBuildController/ftlForm/${config_id}/goUpdate.do?olstylecode=${_olstylecode}','${config_id}List',${config_id}Fw,${config_id}Fh);
  284. }
  285. //查看
  286. function ${config_id}view(){
  287. detail('查看','cgFormBuildController/ftlForm/${config_id}/goDetail.do?olstylecode=${_olstylecode}','${config_id}List',${config_id}Fw,${config_id}Fh);
  288. }
  289. //批量删除
  290. function ${config_id}delBatch(){
  291. //获取选中的ID串
  292. var ids = get${config_id}ListSelections('id');
  293. if(ids.length<=0){
  294. tip('请选择至少一条信息');
  295. return;
  296. }
  297. $.dialog.confirm('确定删除吗?', function(r) {
  298. if(!r){return;}
  299. $.ajax({
  300. url:"cgAutoListController.do?delBatch",
  301. data:{'ids':ids,'configId':'${config_id}'},
  302. type:"Post",
  303. dataType:"json",
  304. success:function(data){
  305. tip(data.msg);
  306. reload${config_id}List();
  307. },
  308. error:function(data){
  309. $.messager.alert('错误',data.msg);
  310. }
  311. });
  312. }
  313. );
  314. }
  315. function ${config_id}ExportExcel(){
  316. var queryParams = $('#${config_id}List').datagrid('options').queryParams;
  317. $('#${config_id}Listtb').find('*').each(function() {
  318. queryParams[$(this).attr('name')] = $(this).val();
  319. });
  320. var params = '&';
  321. $.each(queryParams, function(key, val){
  322. params+='&'+key+'='+val;
  323. });
  324. var fields = '&field=';
  325. $.each($('#${config_id}List').datagrid('options').columns[0], function(i, val){
  326. if(val.field != 'opt'&&val.field != 'ck'){
  327. fields+=val.field+',';
  328. }
  329. });
  330. <#--//update-begin--Author:dangzhenghui Date:20170429 for:TASK #1906 【online excel】Online excel 导出功能改进 -->
  331. var id='&id=';
  332. $.each($('#${config_id}List').datagrid('getSelections'), function(i, val){
  333. id+=val.id+",";
  334. });
  335. window.location.href = "excelTempletController.do?exportXls&tableName=${config_id}"+encodeURI(params+fields+id)
  336. <#--//update-end--Author:dangzhenghui Date:20170429 for:TASK #1906 【online excel】Online excel 导出功能改进 -->
  337. }
  338. //JS增强
  339. ${config_jsenhance}
  340. </script>
  341. <table width="100%" id="${config_id}List" toolbar="#${config_id}Listtb"></table>
  342. <div id="${config_id}Listtb" style="padding:3px; height: auto">
  343. <div name="searchColums">
  344. <#if config_querymode == "group">
  345. <#list config_queryList as x>
  346. <#if x['field_isQuery']=="Y">
  347. <span style="display:-moz-inline-box;display:inline-block;">
  348. <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>
  349. </#if>
  350. <#if x['field_queryMode']=="group">
  351. <#if x['field_isQuery']=="Y">
  352. <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']}" />
  353. <span style="display:-moz-inline-box;display:inline-block;width: 8px !important;text-align:right;">~</span>
  354. <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']}"/>
  355. <#else>
  356. <input type="hidden" name="${x['field_id']}_begin" value="${x['field_value_begin']}"/>
  357. <input type="hidden" name="${x['field_id']}_end" value="${x['field_value_end']}"/>
  358. </#if>
  359. </#if>
  360. <#if x['field_queryMode']=="single">
  361. <#if x['field_isQuery']=="Y">
  362. <#if (x['field_dictlist']?size >0)>
  363. <select name = "${x['field_id']}" style="width: 104px">
  364. <option value = "">---请选择---</option>
  365. <#list x['field_dictlist'] as xd>
  366. <option value = "${xd['typecode']}">${xd['typename']}</option>
  367. </#list>
  368. </select>
  369. </#if>
  370. <#if (x['field_dictlist']?size <= 0)>
  371. <#if x['field_showType']!='popup'>
  372. <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('')}" />
  373. <#else>
  374. <input type="text" name="${x['field_id']}" style="width: 100px"
  375. class="searchbox-inputtext" value="${x['field_value']?if_exists?default('')}"
  376. onClick="inputClick(this,'${x['field_dictField']?if_exists?html}','${x['field_dictTable']?if_exists?html}');" />
  377. </#if>
  378. </#if>
  379. <#else>
  380. <input type="hidden" name="${x['field_id']}" value="${x['field_value']?if_exists?default('')}" />
  381. </#if>
  382. </#if>
  383. </span>
  384. </#list>
  385. </#if>
  386. </div>
  387. <div style="height:30px;" class="datagrid-toolbar">
  388. <span style="float:left;" >
  389. <a id="add" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-add" onclick="${config_id}add()">录入</a>
  390. <a id="update" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-edit" onclick="${config_id}update()">编辑</a>
  391. <a id="delete" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-remove" onclick="${config_id}delBatch()">批量删除</a>
  392. <a id="detail" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="icon-search" onclick="${config_id}view()">查看</a>
  393. <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>
  394. <a id="excel" href="javascript:void(0)" class="easyui-linkbutton" plain="true" onclick="${config_id}ExportExcel()" icon="icon-putout">Excel导出</a>
  395. <#list config_buttons as x>
  396. <#if x['buttonStyle'] == 'button' && x['buttonStatus']=='1'>
  397. <a id="${x['buttonCode']}" href="javascript:void(0)" class="easyui-linkbutton" plain="true" icon="${x['buttonIcon']?if_exists?default('pictures')}"
  398. <#if x['optType'] == 'action'>
  399. onclick="doBusButton('cgFormBuildController.do?doButton&formId=${x['formId']}&buttonCode=${x['buttonCode']}&tableName=${config_id}','${x['buttonName']}','${config_id}List')">${x['buttonName']}</a>
  400. <#else>
  401. onclick="${x['buttonCode']}();">${x['buttonName']}</a>
  402. </#if>
  403. </#if>
  404. </#list>
  405. </span>
  406. <#if (config_queryList?size >0)>
  407. <#if config_querymode == "group" >
  408. <span style="float:right">
  409. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" onclick="${config_id}Listsearch()">查询</a>
  410. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-reload" onclick="${config_id}searchReset('${config_id}List')">重置</a>
  411. </span>
  412. </#if>
  413. <#if config_querymode == "single">
  414. <span style="float:right">
  415. <input id="${config_id}Listsearchbox" class="easyui-searchbox" data-options="searcher:${config_id}Listsearchbox,prompt:'请输入关键字',menu:'#${config_id}Listmm'"></input>
  416. <div id="${config_id}Listmm" style="width:120px">
  417. <#list config_queryList as x>
  418. <#if x['field_isQuery']=="Y">
  419. <div data-options="name:'${x['field_id']}',iconCls:'icon-ok' ">${x['field_title']}</div>
  420. <#else>
  421. </#if>
  422. </#list>
  423. </div>
  424. </span>
  425. </#if>
  426. </#if>
  427. </div>
  428. </div>