1
0

mkcentermenu.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../mkcentermenu/list',
  4. datatype: "json",
  5. colModel: [
  6. {
  7. label: '操作', width: 260, align: 'center', sortable: false, frozen: true, formatter: function (value, col, row) {
  8. let htmlStr = "";
  9. htmlStr = "<button class='btn btn-outline btn-primary' " +
  10. "onclick='vm.updateMenuStoreReal(" + row.menuStoreRealId + ")'><i class='fa fa-qrcode'></i>修改门店营销菜单</button>"
  11. ;
  12. return htmlStr;
  13. }
  14. },
  15. {label: 'menuStoreRealId', name: 'menuStoreRealId', index: 'menuStoreRealId', key: true, hidden: true},
  16. {label: '菜单名称', name: 'menuName', index: 'menu_name', width: 180, align: 'center'},
  17. {label: '菜单描述', name: 'menuDetail', index: 'menu_detail', width: 280, align: 'center'},
  18. {label: '菜单图片链接', name: 'picUrl', index: 'pic_url', width: 600, align: 'center'},
  19. {label: '菜单跳转url', name: 'menuUrl', index: 'menu_url', width: 380, align: 'center'},
  20. {label: '所属三方商户', name: 'thirdPartyMerchName', index: 'thirdPartyMerchName', width: 180, align: 'center'},
  21. {label: '所属门店', name: 'storeName', index: 'storeName', width: 180, align: 'center'},
  22. {label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, align: 'center',
  23. formatter: function (value) {
  24. if (value == '0') {
  25. return '有效';
  26. } else if (value == '1') {
  27. return '无效';
  28. }
  29. return '';
  30. }},
  31. {label: '备注', name: 'note', index: 'note', width: 160, align: 'center'},
  32. {label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 170, align: 'center'},
  33. {label: '创建时间', name: 'createTime', index: 'create_time', width: 160, align: 'center',
  34. formatter: function (value) {
  35. return transDate(value, 'yyyy-MM-dd hh:mm:ss');
  36. }},
  37. {label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 170, align: 'center'},
  38. {label: '修改时间', name: 'modTime', index: 'mod_time', width: 160, align: 'center',
  39. formatter: function (value) {
  40. return transDate(value, 'yyyy-MM-dd hh:mm:ss');
  41. }}
  42. ],
  43. viewrecords: true,
  44. height: 550,
  45. rowNum: 10,
  46. rowList: [10, 30, 50],
  47. rownumbers: true,
  48. rownumWidth: 25,
  49. autowidth: true,
  50. shrinkToFit: false,
  51. autoScroll: true, //开启水平滚动条
  52. width: 1500,
  53. multiselect: true,
  54. pager: "#jqGridPager",
  55. jsonReader: {
  56. root: "page.list",
  57. page: "page.currPage",
  58. total: "page.totalPage",
  59. records: "page.totalCount"
  60. },
  61. prmNames: {
  62. page: "page",
  63. rows: "limit",
  64. order: "order"
  65. },
  66. gridComplete: function () {
  67. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  68. }
  69. });
  70. // 启动冻结列
  71. $("#jqGrid").jqGrid("setFrozenColumns");
  72. });
  73. //菜单树
  74. var menu_ztree;
  75. var menu_setting = {
  76. data: {
  77. simpleData: {
  78. enable: true,
  79. idKey: "centerMenuId",
  80. pIdKey: "parentId",
  81. rootPId: -1
  82. },
  83. key: {
  84. url: "nourl"
  85. }
  86. },
  87. check: {
  88. enable: true,
  89. nocheckInherit: true
  90. }
  91. };
  92. let vm = new Vue({
  93. el: '#rrapp',
  94. data: {
  95. showList: true,
  96. showViewList: false,
  97. showInfoList: true,
  98. title: null,
  99. mkCenterMenu: {},
  100. mkCenterMenuStoreReal:{},
  101. ruleValidate: {
  102. name: [
  103. {required: true, message: '名称不能为空', trigger: 'blur'}
  104. ]
  105. },
  106. q: {
  107. menuName: ''
  108. },
  109. thirdMerchantBizList: [],
  110. storeList:[]
  111. },
  112. methods: {
  113. query: function () {
  114. vm.reload();
  115. },
  116. add: function () {
  117. vm.showList = false;
  118. vm.showViewList = true;
  119. vm.showInfoList = true;
  120. vm.title = "新增";
  121. vm.mkCenterMenu = {isValid: 0};
  122. },
  123. update: function (event) {
  124. let id = getSelectedRow();
  125. if (id == null) {
  126. return;
  127. }
  128. vm.showList = false;
  129. vm.showViewList = true;
  130. vm.showInfoList = true;
  131. vm.title = "修改";
  132. vm.getThirdMerchantBizList();
  133. vm.getInfo(id)
  134. },
  135. saveOrUpdate: function (event) {
  136. let url = vm.mkCenterMenu.id == null ? "../mkcentermenu/save" : "../mkcentermenu/update";
  137. $.ajax({
  138. type: "POST",
  139. url: url,
  140. contentType: "application/json",
  141. data: JSON.stringify(vm.mkCenterMenu),
  142. success: function (r) {
  143. if (r.code === 0) {
  144. alert('操作成功', function (index) {
  145. vm.reload();
  146. });
  147. } else {
  148. alert(r.msg);
  149. }
  150. }
  151. });
  152. },
  153. addMenuStoreReal: function () {
  154. vm.showList = true;
  155. vm.showViewList = true;
  156. vm.showInfoList = false;
  157. vm.title = "新增门店营销菜单";
  158. vm.mkCenterMenuStoreReal = {isValid: 0,storeId:'',thirdMerchSn:''};
  159. vm.thirdMerchantBizList = [];
  160. vm.storeList = [];
  161. vm.getStoreList();
  162. vm.getThirdMerchantBizList();
  163. vm.getMenuTree(null);
  164. },
  165. updateMenuStoreReal: function (menuStoreRealId) {
  166. if (menuStoreRealId == null) {
  167. return;
  168. }
  169. vm.showList = true;
  170. vm.showViewList = true;
  171. vm.showInfoList = false;
  172. vm.title = "修改门店营销菜单";
  173. vm.getStoreList();
  174. vm.getThirdMerchantBizList();
  175. vm.getMenuTree(menuStoreRealId);
  176. },
  177. getCenterMenuStoreReal: function (id) {
  178. $.get("../mkcentermenustorereal/info/"+id, function (r) {
  179. vm.mkCenterMenuStoreReal = r.mkCenterMenuStoreReal;
  180. //勾选角色所拥有的菜单
  181. var menuIds = r.mkCenterMenuStoreReal.centerMenuIdList;
  182. if(menuIds.length > 0){
  183. for (var i = 0; i < menuIds.length; i++) {
  184. var node = menu_ztree.getNodeByParam("centerMenuId", menuIds[i]);
  185. menu_ztree.checkNode(node, true, false);
  186. }
  187. }
  188. });
  189. },
  190. saveOrUpdateMenuStoreReal: function (event) {
  191. //获取选择的菜单
  192. var nodes = menu_ztree.getCheckedNodes(true);
  193. var menuIdList = new Array();
  194. for (var i = 0; i < nodes.length; i++) {
  195. menuIdList.push(nodes[i].centerMenuId);
  196. }
  197. vm.mkCenterMenuStoreReal.centerMenuIdList = menuIdList;
  198. let url = vm.mkCenterMenuStoreReal.id == null ? "../mkcentermenustorereal/save" : "../mkcentermenustorereal/save";
  199. $.ajax({
  200. type: "POST",
  201. url: url,
  202. contentType: "application/json",
  203. data: JSON.stringify(vm.mkCenterMenuStoreReal),
  204. success: function (r) {
  205. if (r.code === 0) {
  206. alert('操作成功', function (index) {
  207. vm.reload();
  208. });
  209. } else {
  210. alert(r.msg);
  211. }
  212. }
  213. });
  214. },
  215. handleSubmitMenuStoreReal: function (name) {
  216. handleSubmitValidate(this, name, function () {
  217. vm.saveOrUpdateMenuStoreReal()
  218. });
  219. },
  220. handleResetMenuStoreReal: function (name) {
  221. handleResetForm(this, name);
  222. },
  223. getMenuTree: function (menuStoreRealId) {
  224. //加载菜单树
  225. $.get("../mkcentermenu/perms", function (r) {
  226. menu_ztree = $.fn.zTree.init($("#menuTree"), menu_setting, r.list);
  227. //展开所有节点
  228. menu_ztree.expandAll(true);
  229. if (menuStoreRealId != null) {
  230. vm.getCenterMenuStoreReal(menuStoreRealId);
  231. }
  232. });
  233. },
  234. del: function (event) {
  235. let ids = getSelectedRows();
  236. if (ids == null){
  237. return;
  238. }
  239. confirm('确定要删除选中的记录?', function () {
  240. $.ajax({
  241. type: "POST",
  242. url: "../mkcentermenu/delete",
  243. contentType: "application/json",
  244. data: JSON.stringify(ids),
  245. success: function (r) {
  246. if (r.code == 0) {
  247. alert('操作成功', function (index) {
  248. $("#jqGrid").trigger("reloadGrid");
  249. });
  250. } else {
  251. alert(r.msg);
  252. }
  253. }
  254. });
  255. });
  256. },
  257. delMenuStoreReal: function (event) {
  258. let ids = getSelectedRows();
  259. if (ids == null){
  260. return;
  261. }
  262. confirm('确定要删除选中的记录?', function () {
  263. $.ajax({
  264. type: "POST",
  265. url: "../mkcentermenustorereal/delete",
  266. contentType: "application/json",
  267. data: JSON.stringify(ids),
  268. success: function (r) {
  269. if (r.code == 0) {
  270. alert('操作成功', function (index) {
  271. $("#jqGrid").trigger("reloadGrid");
  272. });
  273. } else {
  274. alert(r.msg);
  275. }
  276. }
  277. });
  278. });
  279. },
  280. getThirdMerchantBizList: function() {
  281. $.get("../thirdmerchantbiz/queryAll", function (r) {
  282. vm.thirdMerchantBizList = r.list;
  283. });
  284. },
  285. getStoreList: function(thirdMerchSn){
  286. $.get("../store/queryAll?thirdMerchSn=" + thirdMerchSn, function (r) {
  287. vm.storeList = r.list;
  288. });
  289. },
  290. changeStore: function (thirdMerchSn) {
  291. vm.getStoreList(thirdMerchSn);
  292. },
  293. getInfo: function(id){
  294. $.get("../mkcentermenu/info/"+id, function (r) {
  295. vm.mkCenterMenu = r.mkCenterMenu;
  296. });
  297. },
  298. reloadSearch: function() {
  299. vm.q = {
  300. menuName: ''
  301. }
  302. vm.reload();
  303. },
  304. reload: function (event) {
  305. vm.showList = true;
  306. vm.showViewList = false;
  307. vm.showInfoList = true;
  308. let page = $("#jqGrid").jqGrid('getGridParam', 'page');
  309. $("#jqGrid").jqGrid('setGridParam', {
  310. postData: {'menuName': vm.q.menuName},
  311. page: page
  312. }).trigger("reloadGrid");
  313. vm.handleReset('formValidate');
  314. },
  315. handleSubmit: function (name) {
  316. handleSubmitValidate(this, name, function () {
  317. vm.saveOrUpdate()
  318. });
  319. },
  320. handleReset: function (name) {
  321. handleResetForm(this, name);
  322. }
  323. }
  324. });