mkstoretopicstat.js 16 KB

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