mkstoretopicstat.js 18 KB

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