1
0

mkstoretopicstat.js 18 KB

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