mkstoretopicstat.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../mkstoretopicstat/list',
  4. datatype: "json",
  5. colModel: [
  6. {
  7. label: '操作', width: 160, align: 'center', sortable: false, frozen: true, formatter: function (value, col, row) {
  8. let htmlStr = "<button class='btn btn-outline btn-primary' " +
  9. "onclick='vm.getOrderInfo(" + row.storeTopicId + ")'><i class='fa fa-qrcode'></i>订单明细</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  10. "<button class='btn btn-outline btn-primary' " +
  11. "onclick='vm.updateById(" + row.storeTopicStatId + ")'><i class='fa fa-qrcode'></i>明细</button>";
  12. return htmlStr;
  13. }
  14. },
  15. {label: 'storeTopicStatId', name: 'storeTopicStatId', index: 'store_topic_stat_id', key: true, hidden: true},
  16. {label: '活动名称', name: 'storeTopicName', index: 'storeTopicName', width: 180, align: 'center'},
  17. {label: '活动类型', name: 'storeTopicType', index: 'storeTopicType', width: 180, align: 'center'},
  18. {label: '门店名称', name: 'storeName', index: 'storeName', width: 180, align: 'center'},
  19. {label: '浏览数', name: 'browseNum', index: 'browse_num', width: 100, align: 'center'},
  20. {label: '访客量', name: 'visitNum', index: 'visit_num', width: 100, align: 'center'},
  21. {label: '领取量', name: 'receiveNum', index: 'receiveNum', width: 100, align: 'center',
  22. formatter: function (value) {
  23. if ((value == null || value == '')) {
  24. return '-';
  25. }
  26. return value;
  27. }},
  28. // {label: '连带浏览量', name: 'relaBrowseNum', index: 'rela_browse_num', width: 80},
  29. // {label: '连带访客量', name: 'relaVisitorNum', index: 'rela_visitor_num', width: 80},
  30. {label: '页面访问深度', name: 'visitPageDeep', index: 'visit_page_deep', width: 100, align: 'center'},
  31. // {label: '转发访客量', name: 'transVisitorNum', index: 'trans_visitor_num', width: 80},
  32. {label: '下单单数', name: 'submitOrderNum', index: 'submit_order_num', width: 100, align: 'center'},
  33. {label: '下单人数', name: 'submitNum', index: 'submit_num', width: 100, align: 'center'},
  34. {label: '支付单数', name: 'payOrderNum', index: 'pay_order_num', width: 100, align: 'center'},
  35. // {label: '连带支付单数', name: 'relaPayOrderNum', index: 'rela_pay_order_num', width: 80},
  36. {label: '支付人数', name: 'payerNum', index: 'payer_num', width: 100, align: 'center'},
  37. // {label: '连带支付人数', name: 'relaPayerNum', index: 'rela_payer_num', width: 80},
  38. {label: '支付件数', name: 'payCaseNum', index: 'pay_case_num', width: 100, align: 'center'},
  39. // {label: '连带支付件数', name: 'relaPayCaseNum', index: 'rela_pay_case_num', width: 80},
  40. {label: '应收金额', name: 'receivMoney', index: 'receiv_money', width: 100, align: 'right'},
  41. // {label: '连带应收金额', name: 'relaReceivMoney', index: 'rela_receiv_money', width: 80},
  42. {label: '实收金额', name: 'actMoney', index: 'act_money', width: 100, align: 'right'}
  43. // {label: '连带实收金额', name: 'relaActMoney', index: 'rela_act_money', width: 80, align: 'center'},
  44. // {label: '是否有效,0:有效,1:无效', name: 'isValid', index: 'is_valid', width: 80},
  45. // {label: '备注', name: 'note', index: 'note', width: 80, align: 'center'},
  46. // {label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
  47. // {label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
  48. // {label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
  49. // {label: '修改时间', name: 'modTime', index: 'mod_time', width: 80},
  50. // {label: '时间戳', name: 'tstm', index: 'tstm', width: 80}
  51. ],
  52. viewrecords: true,
  53. height: 670,
  54. rowNum: 10,
  55. rowList: [10, 30, 50],
  56. rownumbers: true,
  57. rownumWidth: 25,
  58. autowidth: true,
  59. shrinkToFit: false,
  60. autoScroll: true, //开启水平滚动条
  61. width: 1500,
  62. multiselect: true,
  63. pager: "#jqGridPager",
  64. jsonReader: {
  65. root: "page.list",
  66. page: "page.currPage",
  67. total: "page.totalPage",
  68. records: "page.totalCount"
  69. },
  70. prmNames: {
  71. page: "page",
  72. rows: "limit",
  73. order: "order"
  74. },
  75. gridComplete: function () {
  76. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  77. }
  78. });
  79. // 启动冻结列
  80. $("#jqGrid").jqGrid("setFrozenColumns");
  81. $("#jqGridOrder").jqGrid({
  82. url: '../mkstoretopicstat/storeTopicOrderList',
  83. datatype: "json",
  84. colModel: [
  85. {label: '活动名称', name: 'storeTopicName', index: 'storeTopicName', width: 80, align: 'center'},
  86. {label: '活动类型', name: 'storeTopicType', index: 'storeTopicType', width: 80, align: 'center'},
  87. {label: '所属门店', name: 'storeName', index: 'storeName', width: 80, align: 'center'},
  88. {label: '订单号', name: 'orderSn', index: 'order_sn', width: 100, align: 'center'},
  89. {label: '会员', name: 'userName', index: 'user_name', width: 80, align: 'center'},
  90. {label: '商户订单号', name: 'merchOrderSn', index: 'merchOrderSn', width: 100, align: 'center'},
  91. {label: '优惠券使用', name: 'couponName', index: 'couponName', width: 70, align: 'center',
  92. formatter: function (value, col, row) {
  93. if ((value == null || value == '') && row.couponId == 0 ) {
  94. return '<span style="color: #cccccc">未使用</span>';
  95. }else{
  96. return '<span style="color: red">'+value+'</span>';
  97. }
  98. return value;
  99. }},
  100. {label: '促销满减使用', name: 'campName', index: 'campName', width: 70, align: 'center',
  101. formatter: function (value, col, row) {
  102. if (value == null || value == '') {
  103. return '<span style="color: #cccccc">未使用</span>';
  104. }else{
  105. return '<span style="color: red">'+value+'</span>';
  106. }
  107. return value;
  108. }},
  109. {label: '运费', name: 'freightPrice', index: 'freight_price', width: 40, align: 'center'},
  110. {
  111. label: '订单状态', name: 'orderStatus', index: 'order_status', width: 80, align: 'center',
  112. formatter: function (value) {
  113. if (value == '0') {
  114. return '订单创建成功等待付款';
  115. } else if (value == '100') {
  116. return '订单付款中';
  117. } else if (value == '101') {
  118. return '订单已取消';
  119. } else if (value == '102') {
  120. return '订单已删除';
  121. } else if (value == '201') {
  122. return '订单已付款,等待发货';
  123. } else if (value == '300') {
  124. return '订单已发货';
  125. } else if (value == '301') {
  126. return '用户确认收货';
  127. } else if (value == '401') {
  128. return '没有发货,退款';
  129. } else if (value == '402') {
  130. return '已收货,退款退货';
  131. }
  132. return value;
  133. }
  134. },
  135. {
  136. label: '付款状态', name: 'payStatus', index: 'pay_status', width: 80, align: 'center',
  137. formatter: function (value) {
  138. if (value == '0') {
  139. return '未付款';
  140. } else if (value == '1') {
  141. return '付款中';
  142. } else if (value == '2') {
  143. return '已付款';
  144. } else if (value == '3') {
  145. return '退款中';
  146. } else if (value == '4') {
  147. return '退款';
  148. }
  149. return value;
  150. }
  151. },
  152. {label: '实际支付', name: 'actualPrice', index: 'actual_price', width: 60, align: 'center'},
  153. // {label: '推广实收金额', name: 'promActualPrice', index: 'promActualPrice', width: 60, align: 'center'},
  154. {
  155. label: '下单时间', name: 'addTime', index: 'add_time', width: 120, align: 'center',
  156. formatter: function (value) {
  157. // console.log(value);
  158. return transDate(value, 'yyyy-MM-dd hh:mm:ss');
  159. }
  160. },
  161. {
  162. label: '发货状态', name: 'shippingStatus', index: 'shipping_status', width: 60, align: 'center',
  163. formatter: function (value) {
  164. if (value == '0') {
  165. return '未发货';
  166. } else if (value == '1') {
  167. return '已发货';
  168. } else if (value == '2') {
  169. return '已收货';
  170. } else if (value == '4') {
  171. return '退货';
  172. }
  173. return value;
  174. }
  175. }
  176. ],
  177. viewrecords: true,
  178. height: 500,
  179. width: 1600,
  180. rowNum: 10,
  181. rowList: [10, 30, 50],
  182. rownumbers: true,
  183. rownumWidth: 25,
  184. autowidth: false,
  185. multiselect: false,
  186. caption: "统计订单明细",
  187. sortname : 'o.id',
  188. sortorder : "asc",
  189. subGrid : true,
  190. subGridRowExpanded : function(subgrid_id, row_id) {
  191. var subgrid_table_id, pager_id;
  192. subgrid_table_id = subgrid_id + "_t";
  193. pager_id = "p_" + subgrid_table_id;
  194. $("#" + subgrid_id).html(
  195. "<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
  196. var rowData = $("#jqGridOrder").jqGrid('getRowData', row_id);
  197. jQuery("#" + subgrid_table_id).jqGrid(
  198. {
  199. url : '../ordergoods/queryListByOrderId?id=' + row_id,
  200. datatype : "json",
  201. colModel : [
  202. {label: '商品',name : "goodsName",index : "goodsName", width : 130, align : "center"},
  203. {label: '数量',name : "number",index : "number",width : 70, align : "center"},
  204. {label: '商品价格', name: 'retailPrice', index: 'retail_price', width: 80, align: 'center'},
  205. {label: '优惠使用', name: 'storeTopicId', index: 'store_topic_id', width: 80, align: 'center',
  206. formatter: function (value, col, row) {
  207. if (value == null || value == '') {
  208. return '<span style="color: #cccccc">未使用</span>';
  209. }else{
  210. return '<span style="color: red">'+value+'</span>';
  211. }
  212. return value;
  213. }},
  214. ],
  215. sortname : 'num',
  216. sortorder : "asc",
  217. height: "100%",
  218. rowNum: 5,
  219. pager: "#" + pager_id,
  220. jsonReader: {
  221. root: "page.list",
  222. page: "page.currPage",
  223. total: "page.totalPage",
  224. records: "page.totalCount"
  225. },
  226. prmNames: {
  227. page: "page",
  228. rows: "limit",
  229. order: "order"
  230. },
  231. });
  232. jQuery("#" + subgrid_table_id).jqGrid('navGrid',
  233. "#" + pager_id, {
  234. edit : false,
  235. add : false,
  236. del : false
  237. });
  238. },
  239. pager: "#jqGridPagerOrder",
  240. jsonReader: {
  241. root: "page.list",
  242. page: "page.currPage",
  243. total: "page.totalPage",
  244. records: "page.totalCount"
  245. },
  246. prmNames: {
  247. page: "page",
  248. rows: "limit",
  249. order: "order"
  250. },
  251. gridComplete: function () {
  252. $("#jqGridOrder").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
  253. }
  254. });
  255. });
  256. let vm = new Vue({
  257. el: '#rrapp',
  258. data: {
  259. showList: true,
  260. title: null,
  261. mkStoreTopicStat: {},
  262. ruleValidate: {
  263. name: [
  264. {required: true, message: '名称不能为空', trigger: 'blur'}
  265. ]
  266. },
  267. q: {
  268. storeName: ''
  269. },
  270. o:{
  271. orderStatus:''
  272. },
  273. showViewList: false,
  274. statInfoList: true,
  275. showOrderList: true,
  276. storeTopicId: '',
  277. orderStatusList: []
  278. },
  279. methods: {
  280. query: function () {
  281. vm.reload();
  282. },
  283. add: function () {
  284. vm.showList = false;
  285. vm.title = "新增";
  286. vm.mkStoreTopicStat = {};
  287. },
  288. update: function (event) {
  289. let storeTopicStatId = getSelectedRow();
  290. if (storeTopicStatId == null) {
  291. return;
  292. }
  293. vm.showList = false;
  294. vm.title = "修改";
  295. vm.getInfo(storeTopicStatId)
  296. },
  297. saveOrUpdate: function (event) {
  298. let url = vm.mkStoreTopicStat.storeTopicStatId == null ? "../mkstoretopicstat/save" : "../mkstoretopicstat/update";
  299. $.ajax({
  300. type: "POST",
  301. url: url,
  302. contentType: "application/json",
  303. data: JSON.stringify(vm.mkStoreTopicStat),
  304. success: function (r) {
  305. if (r.code === 0) {
  306. alert('操作成功', function (index) {
  307. vm.reload();
  308. });
  309. } else {
  310. alert(r.msg);
  311. }
  312. }
  313. });
  314. },
  315. del: function (event) {
  316. let storeTopicStatIds = getSelectedRows();
  317. if (storeTopicStatIds == null){
  318. return;
  319. }
  320. confirm('确定要删除选中的记录?', function () {
  321. $.ajax({
  322. type: "POST",
  323. url: "../mkstoretopicstat/delete",
  324. contentType: "application/json",
  325. data: JSON.stringify(storeTopicStatIds),
  326. success: function (r) {
  327. if (r.code == 0) {
  328. alert('操作成功', function (index) {
  329. $("#jqGrid").trigger("reloadGrid");
  330. });
  331. } else {
  332. alert(r.msg);
  333. }
  334. }
  335. });
  336. });
  337. },
  338. getOrderInfo: function (storeTopicId) {
  339. vm.storeTopicId = storeTopicId;
  340. vm.showList = true;
  341. vm.showViewList = true;
  342. vm.statInfoList = true;
  343. vm.showOrderList = false;
  344. vm.title = "统计订单明细";
  345. let page = $("#jqGridOrder").jqGrid('getGridParam', 'page');
  346. $("#jqGridOrder").jqGrid('setGridParam', {
  347. postData: {'storeTopicId': vm.storeTopicId,'orderStatus': vm.o.orderStatus},
  348. page: page
  349. }).trigger("reloadGrid");
  350. },
  351. queryOrder: function () {
  352. vm.reloadOrder();
  353. },
  354. reloadOrderSearch: function() {
  355. vm.o = {
  356. orderStatus: ''
  357. }
  358. vm.reloadOrder();
  359. },
  360. reloadOrder: function (event) {
  361. // vm.showList = true;
  362. // vm.statInfoList = true;
  363. // vm.showOrderList = true;
  364. // vm.showViewList = false;
  365. let page = $("#jqGridOrder").jqGrid('getGridParam', 'page');
  366. $("#jqGridOrder").jqGrid('setGridParam', {
  367. postData: {'promId': vm.promId,'orderStatus': vm.o.orderStatus},
  368. page: page
  369. }).trigger("reloadGrid");
  370. // vm.handleReset('formValidate');
  371. },
  372. updateById: function (storeTopicStatId) {
  373. if (storeTopicStatId == null) {
  374. return;
  375. }
  376. vm.showList = true;
  377. vm.showViewList = true;
  378. vm.statInfoList = false;
  379. vm.showOrderList = true;
  380. vm.title = "统计明细";
  381. vm.getInfo(storeTopicStatId);
  382. },
  383. // exportOrder: function () {
  384. // exportFile('#rrapp', '../mkstorepromstat/exportPromOrderList', {'promId': vm.promId,'orderStatus': vm.o.orderStatus});
  385. // },
  386. getInfo: function(storeTopicStatId){
  387. $.get("../mkstoretopicstat/info/"+storeTopicStatId, function (r) {
  388. vm.mkStoreTopicStat = r.mkStoreTopicStat;
  389. });
  390. },
  391. reloadSearch: function() {
  392. vm.q = {
  393. storeName: ''
  394. }
  395. vm.reload();
  396. },
  397. reload: function (event) {
  398. vm.showList = true;
  399. vm.statInfoList = true;
  400. vm.showOrderList = true;
  401. vm.showViewList = false;
  402. let page = $("#jqGrid").jqGrid('getGridParam', 'page');
  403. $("#jqGrid").jqGrid('setGridParam', {
  404. postData: {'storeName': vm.q.storeName},
  405. page: page
  406. }).trigger("reloadGrid");
  407. vm.handleReset('formValidate');
  408. },
  409. handleSubmit: function (name) {
  410. handleSubmitValidate(this, name, function () {
  411. vm.saveOrUpdate()
  412. });
  413. },
  414. handleReset: function (name) {
  415. handleResetForm(this, name);
  416. }
  417. },
  418. mounted() {
  419. // $.get("../store/queryAll", function (r) {
  420. // vm.stores = r.list;
  421. // });
  422. $.get("../sys/macro/queryMacrosByValue?value=orderStatus", function (r) {
  423. vm.orderStatusList = r.list;
  424. });
  425. // $.get("../sys/macro/queryMacrosByValue?value=payStatus", function (r) {
  426. // vm.payStatusList = r.list;
  427. // });
  428. // $.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
  429. // vm.orderBizTypeList = r.list;
  430. // });
  431. }
  432. });