CustomerGather.aspx 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/ErpView.master" AutoEventWireup="true" CodeFile="CustomerGather.aspx.cs" Inherits="ECharts_CustomerGather" %>
  2. <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
  3. <script src="https://cdn.bootcss.com/echarts/3.7.1/echarts.min.js"></script>
  4. <script type="text/javascript" >
  5. var weekAddTag = 0;
  6. var monthAddTag = 0;
  7. var _startTime = "";
  8. var _endTime = "";
  9. var optionPie = {
  10. title: {
  11. text: '老客户占比',
  12. subtext: '',
  13. x: 'center'
  14. },
  15. color: ['#4169E1',"#D2691E"],
  16. tooltip: {
  17. trigger: 'item',
  18. formatter: "{a} <br/>{b} : {c} ({d}%)"
  19. },
  20. legend: {
  21. orient: 'vertical',
  22. left: 'left',
  23. data: ['老客户', '新客户' ]
  24. },
  25. series: [
  26. {
  27. name: '客户占比',
  28. type: 'pie',
  29. radius: '65%',
  30. center: ['50%', '50%'],
  31. data: [
  32. { value: 335, name: '新客户' },
  33. { value: 310, name: '老客户' }
  34. ],
  35. itemStyle: {
  36. emphasis: {
  37. shadowBlur: 10,
  38. shadowOffsetX: 0,
  39. shadowColor: 'rgba(0, 0, 0, 0.5)'
  40. }
  41. }
  42. }
  43. ]
  44. };
  45. function setPieData() {
  46. var shopName = mini.get("txtSearchShop").getText();
  47. var isOld = mini.get("txtSearchOldCus").getValue();
  48. var parms = new Object();
  49. parms.date1 = _startTime;
  50. parms.date2 = _endTime;
  51. parms.seller_nick = shopName;
  52. parms.isOld = isOld;
  53. postAjax("get_old_customer_per", parms, function (data) {
  54. var pieOp = optionPie;
  55. var oldCus = data.old;
  56. var totalCus = data.total;
  57. var newCus = parseInt(totalCus) - parseInt(oldCus);
  58. var pData = [
  59. { value: oldCus, name: '老客户' },
  60. { value: newCus, name: '新客户' }
  61. ];
  62. pieOp.series[0].data = pData;
  63. var chartPie = echarts.init(document.getElementById('chartPie'));
  64. chartPie.setOption(pieOp);
  65. $("#id_des_old").html(oldCus);
  66. $("#id_des_new").html(newCus);
  67. $("#id_des_total").html(totalCus);
  68. });
  69. }
  70. //查询按钮
  71. function searchFn() {
  72. var shopName = mini.get("txtSearchShop").getText();
  73. var isOld = mini.get("txtSearchOldCus").getValue();
  74. _startTime = mini.get("txtChartDate1").getText();
  75. _endTime = mini.get("txtChartDate2").getText();
  76. grid.load({
  77. date1: _startTime, date2: _endTime, seller_nick: shopName, isOld:isOld
  78. });
  79. setPieData();
  80. }
  81. function clickPreNextDate(btnType) {
  82. var dateList = "";
  83. if (btnType == 1) {
  84. monthAddTag = monthAddTag - 1;
  85. dateList = getMonthStartAndEnd(monthAddTag);
  86. }
  87. else if (btnType == 2) {
  88. weekAddTag = weekAddTag - 1;
  89. dateList = getWeekStartAndEnd(weekAddTag);
  90. }
  91. else if (btnType == 3) {
  92. weekAddTag = weekAddTag + 1;
  93. dateList = getWeekStartAndEnd(weekAddTag);
  94. }
  95. else if (btnType == 4) {
  96. monthAddTag = monthAddTag + 1;
  97. dateList = getMonthStartAndEnd(monthAddTag);
  98. }
  99. _startTime = dateList[0];
  100. _endTime = dateList[1];
  101. mini.get("txtChartDate1").setValue(_startTime);
  102. mini.get("txtChartDate2").setValue(_endTime);
  103. }
  104. //清除查询内容
  105. function clearFn() {
  106. //$("#ctl00_f_all").find("input").val("");
  107. var form = new mini.Form("#ctl00_f_all");
  108. form.clear();
  109. mini.get("aSearchMonth").setChecked(false);
  110. mini.get("aSearchDay").setChecked(false);
  111. mini.get("aSearchWeek").setChecked(false);
  112. }
  113. function isOldCustomerRenderer(e) {
  114. var record = e.record;
  115. var rowIndex = e.rowIndex;
  116. var html = "<div style=\"display:flex;flex-direction:column;\">";
  117. if (record.IsOldCustomer == 1) {
  118. html += ("<div style=\"color:green;\">是</div>");
  119. }
  120. else {
  121. html += ("<div>否</div>");
  122. }
  123. html += "</div>";
  124. return html;
  125. }
  126. function actionRenderer(e) {
  127. var record = e.record;
  128. var pname = record.buyer_nick;
  129. var html = "";
  130. html += getGridBtn("edit", "客户资料", "getCustomer('" + pname + "')");
  131. return html;
  132. }
  133. function getCustomer(buyer_nick) {
  134. postAjax("get_customer_info", "buyer_nick=" + buyer_nick, function (data) {
  135. console.log("xxxxxxxxxxxx", data);
  136. if (data.length <= 0) {
  137. alert("暂无客户资料");
  138. return;
  139. }
  140. var uData = data[0];
  141. mini.get("cusinfo_win").show();
  142. $("#id_cus_ww").html(uData.buyer_nick);
  143. $("#id_cus_buycount").html(uData.buy_count);
  144. $("#id_cus_buyday").html(uData.buy_day+"天");
  145. $("#id_cus_buytime").html(uData.lastbuy_time);
  146. $("#id_cus_buyctid").html(uData.lastTid);
  147. $("#id_cus_totalpayment").html(uData.total_fee);
  148. $("#id_cus_sellernick").html(uData.seller_nick);
  149. });
  150. }
  151. //function chartsFn(pname) {
  152. // mini.get("charts_win").show();
  153. // var parms = new Object();
  154. // parms.ProductName = pname;
  155. // postAjax("get_report_product_month_count", parms, function (data) {
  156. // console.log("xxxxxxxxxxxx", data);
  157. // var barOp = optionBar;
  158. // var tData = [];
  159. // var vData = [];
  160. // for (var idt of data) {
  161. // vData.push(idt.count);
  162. // tData.push(idt.ctime);
  163. // }
  164. // barOp.xAxis[0].data = tData;
  165. // barOp.series[0].data = vData;
  166. // var chartBar = echarts.init(document.getElementById('chartBar'));
  167. // chartBar.setOption(barOp);
  168. // });
  169. //}
  170. $(function () {
  171. var dateList = getMonthStartAndEnd(0);
  172. _startTime = dateList[0];
  173. _endTime = dateList[1];
  174. //mini.get("txtChartDate1").setValue(_startTime);
  175. //mini.get("txtChartDate2").setValue(_endTime);
  176. grid.load({
  177. date1: _startTime, date2: _endTime
  178. });
  179. setPieData();
  180. });
  181. </script>
  182. </asp:Content>
  183. <asp:Content ID="Content2" ContentPlaceHolderID="btn" runat="Server">
  184. <div class="filter_item" id="f_chart_ime">
  185. <label>店铺</label>
  186. <input id="txtSearchShop" name="shop" shownullitem="true" allowInput="true" class="mini-combobox inp_middle" url="../handler/sync.ashx?t=get_sel_pen_shop" value="" textfield="name" valuefield="name" />
  187. <label>老客户</label>
  188. <select class="mini-combobox inp_middle" name="isoldcus" id="txtSearchOldCus"><option value="">全部</option><option value="1">老客户</option><option value="0">非老客户</option></select>
  189. <a class="mini-button" style="background-color:#ECF6ED;color:#088615;border:1px solid #66E873;" iconCls="icon-upload" onclick="clickPreNextDate(1)">上一月</a>
  190. <a class="mini-button" style="background-color:#F3F7F7;color:#16AAF7;border:1px solid #90D3F6;" iconCls="icon-upload" onclick="clickPreNextDate(2)">上一周</a>
  191. <input id="txtChartDate1" name="date1" class="mini-datepicker inp-time" />
  192. <span class="sp">-</span>
  193. <input id="txtChartDate2" name="date2" class="mini-datepicker inp-time" />
  194. <a class="mini-button" style="background-color:#F3F7F7;color:#16AAF7;border:1px solid #90D3F6;" iconCls="icon-download" onclick="clickPreNextDate(3)">下一周</a>
  195. <a class="mini-button" style="background-color:#ECF6ED;color:#088615;border:1px solid #66E873;" iconCls="icon-download" onclick="clickPreNextDate(4)">下一月</a>
  196. <a class="mini-button mini-button-info btn" iconcls="icon-search" onclick="searchFn()">查询</a>
  197. </div>
  198. </asp:Content>
  199. <asp:Content ID="Content4" ContentPlaceHolderID="content" runat="Server">
  200. <div id="content" style="width: 100%; display: flex; flex-direction: row; margin-top:20px;">
  201. <div class="ct" id="chartPie" style="height: 360px; width: 45%;"></div>
  202. <div style="margin-top:50px;">
  203. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  204. <tr>
  205. <td class="td1" style="width:100px;">老客户</td>
  206. <td class="td2" colspan="2">
  207. <div id="id_des_old" style="width:200px;font-size:24px;font-weight:bold;"></div>
  208. </td>
  209. </tr>
  210. <tr>
  211. <td class="td1" style="width:100px;">新客户</td>
  212. <td class="td2" colspan="2">
  213. <div id="id_des_new" style="width:200px;font-size:24px;font-weight:bold;"></div>
  214. </td>
  215. </tr>
  216. <tr>
  217. <td class="td1" style="width:100px;">总客户</td>
  218. <td class="td2" colspan="2">
  219. <div id="id_des_total" style="width:200px;font-size:24px;font-weight:bold;"></div>
  220. </td>
  221. </tr>
  222. </table>
  223. </div>
  224. </div>
  225. <div class="mini-fit">
  226. <div id="m_grid" class="mini-datagrid" showpager="true" showemptytext="true" emptytext="暂无记录" url="../handler/sync.ashx?t=get_report_customer_order">
  227. <div property="columns">
  228. <div type="indexcolumn" width="20"></div>
  229. <div type="checkcolumn" width="20"></div>
  230. <div field="buyer_nick" width="50" align="center" headeralign="center">旺旺</div>
  231. <div field="seller_nick" width="40" align="center" headeralign="center">店铺</div>
  232. <div field="pay_time" width="40" align="center" dateFormat="yyyy-MM-dd HH:mm" headeralign="center">时间</div>
  233. <div field="seller_memo" width="150" align="center" headeralign="center">备注</div>
  234. <div field="payment" width="20" align="center" headeralign="center">单笔金额</div>
  235. <div field="IsOldCustomer" width="20" align="center" headeralign="center" renderer="isOldCustomerRenderer">是否老客户</div>
  236. <div name="action" width="40" headeralign="center" align="center" renderer="actionRenderer" cellstyle="padding:0;">#</div>
  237. </div>
  238. </div>
  239. </div>
  240. <div id="cusinfo_win" class="mini-window" title="客户档案" style="width: 850px; height: 300px; position: relative; display: none">
  241. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  242. <tr>
  243. <td class="td1">旺旺</td>
  244. <td class="td2" colspan="3">
  245. <div id="id_cus_ww" style="font-size:24px;font-weight:bold;"></div>
  246. </td>
  247. </tr>
  248. <tr>
  249. <td class="td1">消费总金额</td>
  250. <td class="td2">
  251. <div id="id_cus_totalpayment" style="font-weight:bold;"></div>
  252. </td>
  253. <td class="td1">购买次数</td>
  254. <td class="td2">
  255. <div id="id_cus_buycount"></div>
  256. </td>
  257. </tr>
  258. <tr>
  259. <td class="td1">最近购买</td>
  260. <td class="td2">
  261. <div id="id_cus_buytime"></div>
  262. </td>
  263. <td class="td1">最近单号</td>
  264. <td class="td2">
  265. <div id="id_cus_buyctid"></div>
  266. </td>
  267. </tr>
  268. <tr>
  269. <td class="td1">购买店铺</td>
  270. <td class="td2">
  271. <div id="id_cus_sellernick"></div>
  272. </td>
  273. <td class="td1">回购周期</td>
  274. <td class="td2">
  275. <div id="id_cus_buyday"></div>
  276. </td>
  277. </tr>
  278. </table>
  279. </div>
  280. </asp:Content>