You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

custmerform.js 11 KiB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. /*
  2. * 版 本 Learun-ADMS V7.0.0 数字化智慧校园(http://www.learun.cn)
  3. * Copyright (c) 2013-2017 北京泉江科技有限公司
  4. * 创建人:数字化智慧校园-前端开发组
  5. * 日 期:2018.7.12
  6. * 描 述:数字化智慧校园移动端框架(ADMS) 自定义表单发布功能-列表页
  7. */
  8. (function () {
  9. var page = {
  10. formSchemeId: '',
  11. girdScheme: null,
  12. formScheme: null,
  13. mainTable: '',
  14. mainPk: '',
  15. mainCompontId: '',
  16. compontMap: {},
  17. tableMap: {},
  18. gird: null,
  19. init: function ($page, param) {
  20. // 获取参数初始化
  21. page.formSchemeId = param.formSchemeId;
  22. page.girdScheme = JSON.parse(param.girdScheme);
  23. page.formScheme = null;
  24. page.mainTable = '';
  25. page.mainPk = '';
  26. page.mainCompontId = '';
  27. page.compontMap = {};
  28. page.tableMap = {};
  29. // 获取自定义表单模板
  30. learun.custmerform.loadScheme(page.formSchemeId, function (scheme) {
  31. if (!scheme[page.formSchemeId]) {
  32. learun.layer.toast('表单模板加载失败!');
  33. learun.nav.closeCurrent();
  34. return;
  35. }
  36. page.formScheme = scheme[page.formSchemeId];
  37. page.initScheme($page);
  38. page.initView($page);
  39. });
  40. },
  41. initScheme: function ($page) {// 初始化模板数据
  42. // 获取主表和主表主键
  43. $.each(page.formScheme.dbTable, function (_index, _item) {
  44. if (_item.relationName === "") {
  45. page.mainTable = _item.name;
  46. page.mainPk = _item.field;
  47. }
  48. });
  49. var tableIndex = 0;
  50. $.each(page.formScheme.data, function (_index, _item) {
  51. var componts = _item.componts;
  52. $.each(componts, function (_i, _compont) {
  53. // 设置表对应标号
  54. if (!!_compont.table && page.tableMap[_compont.table] === undefined) {
  55. page.tableMap[_compont.table] = tableIndex;
  56. tableIndex++;
  57. }
  58. if (page.mainTable === _compont.table && page.mainPk === _compont.field) {
  59. page.mainCompontId = _compont.field + page.tableMap[_compont.table];
  60. }
  61. page.compontMap[_compont.id] = _compont;
  62. });
  63. });
  64. },
  65. initView: function ($page) {// 初始化视图列表页
  66. page.gird = $page.find('#custmerformfn').lrpagination({
  67. lclass: page.lclass,
  68. rows: 10, // 每页行数
  69. getData: function (param, callback) {// 获取数据 param 分页参数,callback 异步回调
  70. page.loadData(param, callback, $page);
  71. },
  72. renderData: function (_index, _item, $item) {// 渲染数据模板
  73. return page.rowRender(_index, _item, $item, $page);
  74. },
  75. click: function (item, $item, $et) {// 列表行点击事件
  76. if ($et.hasClass('lr-btn-danger')) {
  77. page.btnClick(item, $item, $page);
  78. }
  79. else {
  80. page.rowClick(item, $item, $page);
  81. }
  82. },
  83. btns: page.rowBtns
  84. });
  85. // 注册新增按钮点击事件
  86. $page.find('#custmerformfn_addbtn').on('tap', function () {
  87. learun.nav.go({ path: 'custmerform/form', title: '新增', type: 'right', param: { formScheme: page.formScheme, formSchemeId: page.formSchemeId } });
  88. return false;
  89. });
  90. },
  91. lclass: 'lr-custmer-list',
  92. loadData: function (param, callback, $page) {// 列表加载后台数据
  93. var _postParam = {
  94. pagination: {
  95. rows: param.rows,
  96. page: param.page,
  97. sidx: page.mainCompontId.toLowerCase(),
  98. sord: 'ASC'
  99. },
  100. queryJson: '{}',
  101. formId: page.formSchemeId
  102. };
  103. if (param.queryJson) {
  104. _postParam.queryJson = JSON.stringify(param.queryJson);
  105. }
  106. learun.httpget(config.webapi + "learun/adms/custmer/pagelist", _postParam, (data) => {
  107. $page.find('.lr-badge').text('0');
  108. if (data) {
  109. $page.find('.lr-badge').text(data.records);
  110. callback(data.rows, parseInt(data.records));
  111. }
  112. else {
  113. callback([], 0);
  114. }
  115. });
  116. },
  117. rowRender: function (_index, _item, _$item, $page) {// 渲染列表行数据
  118. var title = page.girdScheme.title.split(',');
  119. var content0 = page.compontMap[page.girdScheme.content[0]];
  120. var content1 = page.compontMap[page.girdScheme.content[1]];
  121. var content2 = page.compontMap[page.girdScheme.content[2]];
  122. var _html = '<div class="lr-list-item">\
  123. <div class="title" >\
  124. </div >\
  125. <div class="content">\
  126. <div class="one"><div><span class="lr-tag"></span>'+ content0.title + '</div><div class="text"></div></div>\
  127. <div class="two"><div><span class="lr-tag"></span>'+ content1.title + '</div><div class="text"></div></div>\
  128. <div class="three"><div><span class="lr-tag"></span>'+ content2.title + '</div><div class="text"></div></div>\
  129. </div>\
  130. </div>';
  131. _$item.append(_html);
  132. var _$title = _$item.find('.title');
  133. var _$one = _$item.find('.one>.text');
  134. var _$two = _$item.find('.two>.text');
  135. var _$three = _$item.find('.three>.text');
  136. page.getText(content0, _item[(content0.field + page.tableMap[content0.table]).toLowerCase()] || '', _$one);
  137. page.getText(content1, _item[(content1.field + page.tableMap[content1.table]).toLowerCase()] || '', _$two);
  138. page.getText(content2, _item[(content2.field + page.tableMap[content2.table]).toLowerCase()] || '', _$three);
  139. var titleText = '';
  140. $.each(title, function (_index, _jitem) {
  141. var _citem = page.compontMap[_jitem];
  142. var $span = $('<span></span>');
  143. page.getText(_citem, _item[(_citem.field + page.tableMap[_citem.table]).toLowerCase()] || '', $span);
  144. _$title.append($span);
  145. });
  146. return '';
  147. },
  148. rowClick: function (item, $item, $page) {// 列表行点击触发方法
  149. learun.nav.go({ path: 'custmerform/form', title: '详情', type: 'right', param: { formScheme: page.formScheme, formSchemeId: page.formSchemeId, keyValue: item[page.mainCompontId.toLowerCase()] } });
  150. },
  151. btnClick: function (item, $item, $page) {// 左滑按钮点击事件
  152. learun.layer.confirm('确定要删除该笔数据吗?', function (_index) {
  153. if (_index === '1') {
  154. learun.layer.loading(true, "正在删除该笔数据");
  155. learun.httppost(config.webapi + "learun/adms/form/delete", { schemeInfoId: page.formSchemeId, keyValue: item[page.mainCompontId.toLowerCase()] }, (data) => {
  156. if (data) {// 删除数据成功
  157. page.gird.reload();
  158. }
  159. learun.layer.loading(false);
  160. });
  161. }
  162. }, '提示', ['取消', '确定']);
  163. },
  164. rowBtns: ['<a class="lr-btn-danger">删除</a>'], // 列表行左滑按钮
  165. getText: function (conpontItem, value, $div) {
  166. if (!conpontItem)
  167. { return; }
  168. switch (conpontItem.type) {
  169. case 'checkbox':
  170. var v = value.split(',');
  171. $.each(v, function (_index, _item) {
  172. if (conpontItem.dataSource === "0") {
  173. learun.clientdata.get('dataItem', {
  174. key: _item,
  175. code: conpontItem.itemCode,
  176. callback: function (_data) {
  177. $div.append(_data.text);
  178. }
  179. });
  180. }
  181. else {
  182. var vlist = conpontItem.dataSourceId.split(',');
  183. learun.clientdata.get('sourceData', {
  184. key: _item,
  185. code: vlist[2],
  186. callback: function (_data) {
  187. $div.append(_data[vlist[1]]);
  188. }
  189. });
  190. }
  191. });
  192. break;
  193. case 'radio':
  194. case 'select':
  195. if (conpontItem.dataSource === "0") {
  196. learun.clientdata.get('dataItem', {
  197. key: value,
  198. code: conpontItem.itemCode,
  199. callback: function (_data) {
  200. $div.append(_data.text);
  201. }
  202. });
  203. }
  204. else {
  205. var vlist = conpontItem.dataSourceId.split(',');
  206. learun.clientdata.get('sourceData', {
  207. key: value,
  208. code: vlist[2],
  209. callback: function (_data) {
  210. $div.append(_data[vlist[1]]);
  211. }
  212. });
  213. }
  214. break;
  215. case 'organize':
  216. case 'currentInfo':
  217. learun.clientdata.get(conpontItem.dataType, {
  218. key: value,
  219. callback: function (_data) {
  220. $div.append(_data.name);
  221. }
  222. });
  223. break;
  224. case 'datetime':
  225. if (conpontItem.dateformat === '0') {
  226. $div.append(learun.date.format(value, 'yyyy-MM-dd'));
  227. }
  228. else {
  229. $div.append(learun.date.format(value, 'yyyy-MM-dd hh:mm'));
  230. }
  231. break;
  232. default:
  233. $div.append(value);
  234. break;
  235. }
  236. }
  237. };
  238. return page;
  239. })();