mkstorepromstat.js 17 KB

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