behavior_statistics.html 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815
  1. {extend name="public/layout" /} {block name="title"}行为统计{/block} {block
  2. name="head"} {include file="public/head"}
  3. <style>
  4. html,
  5. body {
  6. min-width: 1100px;
  7. }
  8. .layui-table th:last-child {
  9. border-right: none;
  10. }
  11. .layui-table-view .layui-table {
  12. /* width:100% */
  13. }
  14. .layui-table thead tr,
  15. .layui-table-header {
  16. background-color: #d8e6f1 !important;
  17. }
  18. .line-middle {
  19. width: 10px;
  20. height: 100%;
  21. margin: 0px 10px;
  22. }
  23. .line {
  24. width: 10px;
  25. height: 2px;
  26. background-color: #999999;
  27. }
  28. .mb0 {
  29. margin-bottom: 0px;
  30. }
  31. .layui-btn {
  32. background-color: #fff;
  33. color: #555;
  34. border: 1px solid #c9c9c9;
  35. }
  36. .layui-btn:hover {
  37. background-color: #fff;
  38. color: #555;
  39. border: 1px solid #249efb;
  40. }
  41. .layui-btn-primary,
  42. .sBtn {
  43. background-color: #249efb;
  44. color: #fff;
  45. border: 1px solid #249efb;
  46. }
  47. .layui-btn-primary:hover {
  48. background-color: #249efb;
  49. color: #fff;
  50. border: 1px solid #249efb;
  51. }
  52. .sBtn:hover {
  53. background-color: #249efb;
  54. color: #fff;
  55. border: 1px solid #249efb;
  56. }
  57. .flex-row,
  58. .row {
  59. display: flex;
  60. }
  61. .align-center {
  62. align-items: center;
  63. }
  64. .ml10 {
  65. margin-left: 10px;
  66. }
  67. .mt10 {
  68. margin-top: 10px;
  69. }
  70. .padding-tlr {
  71. padding: 15px 15px 0px;
  72. }
  73. .layui-input-block {
  74. margin-left: 0px;
  75. }
  76. .justify-between {
  77. justify-content: space-between;
  78. }
  79. table tr td a {
  80. color: #249efb;
  81. }
  82. .qdtj_m {
  83. padding: 0 15px;
  84. width: 100%;
  85. box-sizing: border-box;
  86. margin: 20px 0 10px;
  87. }
  88. .qdtj_ul {
  89. overflow: hidden;
  90. border: 1px solid #94d0ff;
  91. padding: 15px 0;
  92. background-color: #fbfdff;
  93. }
  94. .qdtj_ul li {
  95. float: left;
  96. position: relative;
  97. text-align: center;
  98. width: 10%;
  99. }
  100. .qdtj_1 {
  101. font-size: 20px;
  102. font-weight: 400;
  103. }
  104. .qdtj_2 {
  105. font-size: 14px;
  106. color: #888;
  107. margin-top: 5px;
  108. }
  109. .qdtj_r_x {
  110. height: 40px;
  111. width: 1px;
  112. background: #d8d8d9;
  113. position: absolute;
  114. right: 0;
  115. top: 50%;
  116. margin-top: -20px;
  117. }
  118. .layui-card-body .layui-table-body {
  119. overflow-y: auto !important;
  120. height: 75vh;
  121. }
  122. .layui-table td,
  123. .layui-table th,
  124. .layui-table-col-set,
  125. .layui-table-fixed-r,
  126. .layui-table-grid-down,
  127. .layui-table-header,
  128. .layui-table-page,
  129. .layui-table-tips-main,
  130. .layui-table-tool,
  131. .layui-table-total,
  132. .layui-table-view,
  133. .layui-table[lay-skin="line"],
  134. .layui-table[lay-skin="row"] {
  135. border-color: #ccc !important;
  136. }
  137. .layui-table-fixed-r .layui-table-body {
  138. overflow: hidden !important;
  139. }
  140. .relative {
  141. position: relative;
  142. }
  143. .lay-setting {
  144. position: absolute;
  145. right: 40px;
  146. top: 20px;
  147. z-index: 999 !important;
  148. cursor: pointer;
  149. }
  150. .selectDateBox {
  151. position: absolute;
  152. width: 330px;
  153. height: 100px;
  154. box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
  155. background-color: #fff;
  156. z-index: 99999 !important;
  157. top: 45px;
  158. box-sizing: border-box;
  159. padding: 5px 8px;
  160. }
  161. .selecstDateBox {
  162. position: absolute;
  163. width: 330px;
  164. height: 100px;
  165. box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
  166. background-color: #fff;
  167. z-index: 99999 !important;
  168. top: 45px;
  169. right: 0;
  170. box-sizing: border-box;
  171. padding: 5px 8px;
  172. }
  173. .date-flex,
  174. .date-flex1 {
  175. display: flex;
  176. align-items: center;
  177. }
  178. .date-box {
  179. padding: 15px 0px 10px;
  180. }
  181. #rangeDepart {
  182. width: 260px;
  183. height: 38px;
  184. }
  185. xm-select>.xm-body {
  186. z-index: 99999 !important;
  187. }
  188. </style>
  189. {/block} {block name="body"}
  190. <div class="layui-fluid" style="background-color: #fff">
  191. <div class="layui-card">
  192. <div class="search-form layui-form padding-tlr">
  193. <div class="flex-row align-center justify-between">
  194. <div class="flex-row align-center">
  195. <div class="layui-input-block" style="margin-right: 10px">
  196. <button class="layui-btn ml10" id="tablebtn">导出</button>
  197. </div>
  198. <div class="layui-input-block" style="line-height:36px;">
  199. <a href="javascript:void(0)" id="behavior-export-list" style="color:#249efb;">查看</a>
  200. </div>
  201. </div>
  202. <div class="flex-row align-center">
  203. <div class="layui-input-block">
  204. <input type="text" class="layui-input" id="keyword" autocomplete="off" name="keyword"
  205. placeholder="请输入员工名称" />
  206. </div>
  207. <div class="layui-input-inline layui-form ml10">
  208. <div id="rangeDepart"></div>
  209. </div>
  210. <div class="layui-input-inline layui-form ml10" style="display: inline-block;width:200px;">
  211. <!-- <label class="layui-form-label" style="width: 60px;">跟进时间</label> -->
  212. <div class="layui-input-inline select-date relative">
  213. <!-- 注意:这一层元素并不是必须的 -->
  214. <input type="text" class="layui-input" id="sDate" name="start_date" placeholder="开始日期 - 结束日期"
  215. autocomplete="off" />
  216. <div data-type="" class="selecstDateBox layui-hide">
  217. <div data-type="" class="date-flex1">
  218. <div data-type="today" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  219. 今日
  220. </div>
  221. <div data-type="yesterday" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  222. 昨日
  223. </div>
  224. <div data-type="week" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  225. 本周
  226. </div>
  227. <div data-type="lastWeek" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  228. 上周
  229. </div>
  230. <div data-type="month" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  231. 本月
  232. </div>
  233. <div data-type="lastMonth" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  234. 上月
  235. </div>
  236. <div data-type="all" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  237. 累计
  238. </div>
  239. </div>
  240. <div data-type="" class="date-box">
  241. <input data-type="" type="text" id="select_sDate" placeholder="选择开始时间 - 结束时间" readonly
  242. autocomplete="off" class="layui-input" />
  243. </div>
  244. </div>
  245. </div>
  246. </div>
  247. <button class="layui-btn sBtn ml10 submitbtn" lay-submit lay-filter="table-search">
  248. 筛选
  249. </button>
  250. <button class="layui-btn sBtn" style="margin-left: 18px;" id="resetbtn">重置</button>
  251. </div>
  252. </div>
  253. </div>
  254. <div class="layui-card-body relative">
  255. <i class="layui-icon layui-icon-set-fill lay-setting"></i>
  256. <table lay-filter="datalist" id="list"></table>
  257. </div>
  258. </div>
  259. </div>
  260. {/block} {block name="js"}
  261. <script src="__STATIC__/layui/layui/lay/modules/xm-select.js" type="text/javascript" charset="utf-8"></script>
  262. <script type="text/html" id="share_count">
  263. {{# if(d.share_count){ }}
  264. <a href="javascript:void(0)" lay-event="noFinishList" style="color:blue;"
  265. >{{d.share_count}}</a
  266. >
  267. {{# }else{ }}
  268. <span>{{d.share_count}}</span>
  269. {{# } }}
  270. </script>
  271. <script type="text/html" id="explain_count">
  272. {{# if(d.explain_count){ }}
  273. <a href="javascript:void(0)" lay-event="explain_count" style="color:blue;"
  274. >{{d.explain_count}}</a
  275. >
  276. {{# }else{ }}
  277. <span>{{d.explain_count}}</span>
  278. {{# } }}
  279. </script>
  280. <script>
  281. layui.use(["table", "form", "laydate", "element"], function () {
  282. let table = layui.table,
  283. laydate = layui.laydate,
  284. form = layui.form,
  285. element = layui.element,
  286. $ = layui.$,
  287. tableData = [];
  288. $("body").attr("layadmin-themealias", "default");
  289. var bodyH = $(".body-h").height() * 0.82;
  290. var istypes = 0;
  291. document.onkeydown = function (event) {
  292. var e = event || window.event || arguments.callee.caller.arguments[0];
  293. if (e && e.keyCode == 13) {
  294. $(".submitbtn").trigger("click");
  295. }
  296. };
  297. //执行一个laydate实例
  298. // laydate.render({
  299. // elem: '#sDate' //指定元素
  300. // });
  301. // laydate.render({
  302. // elem: '#eDate' //指定元素
  303. // });
  304. $("#addWechatTime").click(function () {
  305. $(".selectDateBox").toggleClass("layui-hide");
  306. $(".selecstDateBox").addClass("layui-hide");
  307. });
  308. $("#sDate").click(function () {
  309. $(".selecstDateBox").toggleClass("layui-hide");
  310. $(".selectDateBox").addClass("layui-hide");
  311. });
  312. laydate.render({
  313. elem: "#select_date",
  314. type: "date",
  315. range: true,
  316. format: "yyyy/MM/dd",
  317. trigger: "click", //呼出事件改成click
  318. done: function (value, date, endDate) {
  319. $(".selectDateBox").addClass("layui-hide");
  320. $("#addWechatTime").val(value);
  321. },
  322. });
  323. laydate.render({
  324. elem: "#select_sDate", //指定元素
  325. type: "date",
  326. format: "yyyy/MM/dd",
  327. range: true,
  328. trigger: "click", //呼出事件改成click
  329. done: function (value, date, endDate) {
  330. $(".selecstDateBox").addClass("layui-hide");
  331. $("#sDate").val(value);
  332. },
  333. });
  334. var dateObj = {};
  335. setDate();
  336. function setDate() {
  337. let date = new Date();
  338. let year = date.getFullYear();
  339. let month = date.getMonth() + 1;
  340. let day = date.getDate();
  341. let lastDate = new Date(new Date().getTime() - 1 * 24 * 60 * 60 * 1000);
  342. let lastYear = lastDate.getFullYear();
  343. let lastMonth = lastDate.getMonth() + 1;
  344. let lastDay = lastDate.getDate();
  345. let weekObj = getMondayAndSunday();
  346. let monthObj = getMonthFirstDayAndLastDay();
  347. dateObj = {
  348. today: `${year}/${month}/${day}`,
  349. yesterday: `${lastYear}/${lastMonth}/${lastDay}`,
  350. ...weekObj,
  351. ...monthObj,
  352. };
  353. }
  354. var departTree = xmSelect.render({
  355. el: "#rangeDepart",
  356. name: 'org_id',
  357. autoRow: true,
  358. filterable: true,
  359. tips: '请选择',
  360. radio: true,
  361. tree: {
  362. show: true,
  363. showFolderIcon: true,
  364. showLine: true,
  365. indent: 20,
  366. expandedKeys: [-3],
  367. //是否严格遵守父子模式
  368. strict: false,
  369. },
  370. height: "200px",
  371. data: [],
  372. //文本显示模式
  373. //处理方式
  374. });
  375. $.ajax({
  376. url: '{:url("statistics/get_person")}',
  377. type: "post",
  378. data: {},
  379. success: function (res) {
  380. departTree.update({ data: res })
  381. }
  382. })
  383. $(".date-flex div").click(function () {
  384. let type = $(this).prop("dataset").type;
  385. if (type == "today") {
  386. $("#select_date").val(`${dateObj.today} - ${dateObj.today}`);
  387. $("#addWechatTime").val(`${dateObj.today} - ${dateObj.today}`);
  388. } else if (type == "yesterday") {
  389. $("#select_date").val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
  390. $("#addWechatTime").val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
  391. } else if (type == "week") {
  392. $("#select_date").val(
  393. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  394. );
  395. $("#addWechatTime").val(
  396. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  397. );
  398. } else if (type == "lastWeek") {
  399. $("#select_date").val(
  400. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  401. );
  402. $("#addWechatTime").val(
  403. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  404. );
  405. } else if (type == "month") {
  406. $("#select_date").val(
  407. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  408. );
  409. $("#addWechatTime").val(
  410. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  411. );
  412. } else if (type == "lastMonth") {
  413. $("#select_date").val(
  414. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  415. );
  416. $("#addWechatTime").val(
  417. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  418. );
  419. } else {
  420. $("#select_date").val("");
  421. $("#sDate").val("");
  422. $("#addWechatTime").val("");
  423. }
  424. $(".selectDateBox").addClass("layui-hide");
  425. });
  426. $(".date-flex1 div").click(function () {
  427. let type = $(this).prop("dataset").type;
  428. if (type == "today") {
  429. itmesss = dateToYYYYMMDD(dateObj.today);
  430. itmesss2 = dateToYYYYMMDD(dateObj.today);
  431. $('#select_sDate').val(itmesss + ' - ' + itmesss2);
  432. $('#sDate').val(itmesss + ' - ' + itmesss2);
  433. } else if (type == "yesterday") {
  434. itmesss = dateToYYYYMMDD(dateObj.yesterday);
  435. itmesss2 = dateToYYYYMMDD(dateObj.yesterday);
  436. $('#select_sDate').val(itmesss + ' - ' + itmesss2);
  437. $('#sDate').val(itmesss + ' - ' + itmesss2);
  438. } else if (type == "week") {
  439. $("#select_sDate").val(
  440. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  441. );
  442. $("#sDate").val(
  443. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  444. );
  445. } else if (type == "lastWeek") {
  446. $("#select_sDate").val(
  447. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  448. );
  449. $("#sDate").val(
  450. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  451. );
  452. } else if (type == "month") {
  453. $("#select_sDate").val(
  454. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  455. );
  456. $("#sDate").val(
  457. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  458. );
  459. } else if (type == "lastMonth") {
  460. $("#select_sDate").val(
  461. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  462. );
  463. $("#sDate").val(
  464. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  465. );
  466. } else {
  467. $("#select_sDate").val("");
  468. $("#sDate").val("");
  469. }
  470. $(".selecstDateBox").addClass("layui-hide");
  471. });
  472. function getMondayAndSunday() {
  473. var today = new Date();
  474. //构建当前日期,格式:2022-08-22 00:00:00
  475. var year = today.getFullYear(); //本年
  476. var month = today.getMonth() + 1; //本月
  477. var day = today.getDate(); //本日
  478. var newDate = new Date(year + "/" + month + "/" + day + " 00:00:00"); //年月日拼接
  479. var nowTime = newDate.getTime(); //当前的时间戳
  480. var weekDay = newDate.getDay(); //当前星期 0.1.2.3.4.5.6 【0 = 周日】
  481. var oneDayTime = 24 * 60 * 60 * 1000; //一天的总ms
  482. // 当前星期减去天数,如今天为周五,则本周一为周五的时间戳减去4天的时间戳。但周日特殊,周一至周六是周几的到的weekDay就是几,但是周日的到的为0,需特殊处理
  483. var thisWeekMondayTime = (1 - weekDay) * oneDayTime + nowTime; //本周一的时间戳
  484. if (weekDay == 0) {
  485. // weekDay = 0 为周日,此时本周一时间为周日减去6天的时间
  486. thisWeekMondayTime = nowTime - 6 * oneDayTime;
  487. }
  488. var thisWeekSundayTime = thisWeekMondayTime + 6 * 24 * 60 * 60 * 1000; // 本周日
  489. var lastWeekMondayTime = thisWeekMondayTime - 7 * oneDayTime; // 上周一
  490. var lastWeekSundayTime = thisWeekMondayTime - oneDayTime; // 上周日
  491. var res = {
  492. thisWeekMonday: dateToYYYYMMDD(thisWeekMondayTime),
  493. thisWeekSunday: dateToYYYYMMDD(thisWeekSundayTime),
  494. lastWeekMonday: dateToYYYYMMDD(lastWeekMondayTime),
  495. lastWeekSunday: dateToYYYYMMDD(lastWeekSundayTime),
  496. };
  497. return res;
  498. }
  499. function getMonthFirstDayAndLastDay() {
  500. var date = new Date();
  501. // 值得注意的是,如果day取值为0,意味着取的是date时间的上一个月的最后一天,简单理解:date当前月的第一天,再减去一天
  502. var thisMonthFirstDay = date.setDate(1); // 本月第一天
  503. var thisMonthLastDay = new Date(
  504. date.getFullYear(),
  505. date.getMonth() + 1,
  506. 0
  507. ); // 本月最后一天
  508. var lastMonthFirstDay = new Date(
  509. date.getFullYear(),
  510. date.getMonth() - 1,
  511. 1
  512. ); // 上月第一天
  513. var lastMonthLastDay = date.setDate(0); // 上月最后一天
  514. // var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate()
  515. // var lastMonthLastDay = new Date(date.getFullYear(), date.getMonth() - 1, day) // 上月最后一天
  516. var res = {
  517. thisMonthFirstDay: dateToYYYYMMDD(thisMonthFirstDay),
  518. thisMonthLastDay: dateToYYYYMMDD(thisMonthLastDay),
  519. lastMonthFirstDay: dateToYYYYMMDD(lastMonthFirstDay),
  520. lastMonthLastDay: dateToYYYYMMDD(lastMonthLastDay),
  521. };
  522. return res;
  523. }
  524. function dateToYYYYMMDD(date) {
  525. var time = new Date(date);
  526. var y = time.getFullYear();
  527. var m = time.getMonth() + 1;
  528. m = m > 9 ? m : "0" + m;
  529. var d = time.getDate();
  530. d = d > 9 ? d : "0" + d;
  531. return y + "/" + m + "/" + d;
  532. }
  533. window.parent.ajaxslist = function () {
  534. ajaxlist();
  535. };
  536. ajaxlist();
  537. function ajaxlist() {
  538. $.ajax({
  539. type: "post",
  540. url: '{:url("statistics/fieldList")}',
  541. data: {
  542. type: 1,
  543. },
  544. success: function (res) {
  545. data = res.data;
  546. tableData = data;
  547. var cols = [[]];
  548. $.each(data, function (key, val) {
  549. if (key == "share_count") {
  550. if (val["show"] == 1) {
  551. cols[0].push({
  552. field: key,
  553. title: val["name"],
  554. width: val["width"],
  555. align: "center",
  556. templet: "#share_count",
  557. });
  558. }
  559. } else if (key == "explain_count") {
  560. if (val["show"] == 1) {
  561. cols[0].push({
  562. field: key,
  563. title: val["name"],
  564. width: val["width"],
  565. align: "center",
  566. templet: "#explain_count",
  567. });
  568. }
  569. } else {
  570. if (val["show"] == 1) {
  571. cols[0].push({
  572. field: key,
  573. title: val["name"],
  574. width: val["width"],
  575. align: "center",
  576. show: val["show"],
  577. });
  578. }
  579. }
  580. });
  581. cols[0].push({
  582. title: "",
  583. width: 30,
  584. align: "center",
  585. fixed: "right",
  586. });
  587. let url = '{:url("statistics/behaviorStatisticsData")}';
  588. table.render({
  589. elem: "#list",
  590. url: url,
  591. page: true,
  592. height: bodyH,
  593. cols: cols,
  594. id: "tablelist",
  595. limit: 50,
  596. });
  597. },
  598. });
  599. }
  600. $(".lay-setting").click(function () {
  601. let arr = [];
  602. $.each(data, function (key, val) {
  603. arr.push({ ...val, field: key });
  604. });
  605. localStorage.setItem('XQ$SORT', '1');
  606. window.parent.dialogFunc(arr, 1);
  607. });
  608. function setYMD(time) {
  609. let dateTime = new Date(time);
  610. let year = dateTime.getFullYear();
  611. let Month = dateTime.getMonth() + 1;
  612. let days = dateTime.getDate();
  613. return `${year}-${Month > 9 ? Month : "0" + Month}-${days > 9 ? days : "0" + days}`;
  614. }
  615. var dateArr = {};
  616. var today = new Date().getTime();
  617. var oneTime = 24 * 60 * 60 * 1000;
  618. var threeDay1 = today - 3 * oneTime;
  619. var sevenDay1 = today - 6 * oneTime;
  620. var oneMonth = today - 30 * oneTime;
  621. dateArr = {
  622. nowS: setYMD(today),
  623. nowE: setYMD(today),
  624. threeDayS: setYMD(threeDay1),
  625. threeDayE: setYMD(today),
  626. sevenDayS: setYMD(sevenDay1),
  627. sevenDayE: setYMD(today),
  628. oneMonthS: setYMD(oneMonth),
  629. oneMonthE: setYMD(today),
  630. };
  631. $("#timeBtn").on("click", function (e) {
  632. if (!!(e.target.localName != "input")) return;
  633. let o = document.querySelector("#timeBtn").children;
  634. if (e.target.classList.contains("layui-btn-primary") == true) {
  635. for (var i = 0; i < o.length; i++) {
  636. o[i].className = "layui-btn";
  637. }
  638. $("#sDate").val("");
  639. $("#eDate").val("");
  640. return;
  641. } else {
  642. for (var i = 0; i < o.length; i++) {
  643. o[i].className = "layui-btn";
  644. }
  645. e.target.className = "layui-btn layui-btn-primary";
  646. if (!!(e.target.className.indexOf("layui-btn-primary") > 0)) {
  647. if (e.target.value == "今日") {
  648. $("#sDate").val(dateArr.nowS);
  649. $("#eDate").val(dateArr.nowE);
  650. } else if (e.target.value == "3天") {
  651. $("#sDate").val(dateArr.threeDayS);
  652. $("#eDate").val(dateArr.threeDayE);
  653. } else if (e.target.value == "7天") {
  654. $("#sDate").val(dateArr.sevenDayS);
  655. $("#eDate").val(dateArr.sevenDayE);
  656. } else {
  657. $("#sDate").val(dateArr.oneMonthS);
  658. $("#eDate").val(dateArr.oneMonthE);
  659. }
  660. }
  661. }
  662. });
  663. form.on("submit(table-search)", function (data) {
  664. let field = data.field;
  665. let element = $(".layui-btn-primary");
  666. if (element && element[0]) {
  667. let el = element[0].value;
  668. }
  669. let option = {
  670. where: field,
  671. page: {
  672. curr: 1,
  673. },
  674. };
  675. //执行重载
  676. table.reload("tablelist", option);
  677. });
  678. //重置
  679. $("#resetbtn").click(function () {
  680. $("#keyword").val("");
  681. $("#sDate").val("");
  682. $("#eDate").val("");
  683. $("#timeBtn input").attr("class", "layui-btn");
  684. layui.form.render();
  685. departTree.setValue([]);
  686. let option = {
  687. where: { keyword: "", start_date: "", end_date: "", org_id: ""},
  688. page: {
  689. curr: 1,
  690. },
  691. };
  692. table.reload("tablelist", option);
  693. });
  694. //导出
  695. $("#tablebtn").click(function () {
  696. let sdate = $("#sDate").val();
  697. let edate = $("#eDate").val();
  698. let keyword = $("#keyword").val();
  699. // let org_id = $("#org_id").val();
  700. let org_id = departTree.getValue();
  701. orgid = org_id.length == 0 ? '' : org_id[0].id;
  702. let url = "{:url('statistics/export2',['m'=>'behaviorStatisticsData'])}"
  703. layer.confirm('确定要导出该查询结果么?', function () {
  704. $.post(url, { start_date: sdate, end_date: edate, keyword: keyword, org_id: orgid }, function (rs) {
  705. if (typeof rs == 'string') rs = JSON.parse(rs);
  706. layer.msg(rs.msg);
  707. })
  708. })
  709. });
  710. setTimeout(function () {
  711. //调用内容
  712. table.on("tool(datalist)", function (obj) {
  713. switch (obj.event) {
  714. case "noFinishList":
  715. layer.open({
  716. type: 2,
  717. title: ["调用内容", "color:#333333;background-color:#D8E6F1;"],
  718. content:
  719. '{:url("statistics/behaviorStatisticsShareLog")}?index=' +
  720. obj.data.index,
  721. resize: false,
  722. area: ["80%", "80%"],
  723. });
  724. break;
  725. case "explain_count":
  726. layer.open({
  727. type: 2,
  728. title: ["合同客户", "color:#333333;background-color:#D8E6F1;"],
  729. content:
  730. '{:url("statistics/addWechat")}?type=explain_count&index=' +
  731. obj.data.index,
  732. resize: false,
  733. area: ["80%", "80%"],
  734. });
  735. break;
  736. }
  737. });
  738. }, 100);
  739. $('#behavior-export-list').click(function () {
  740. layer.open({
  741. type: 2,
  742. area: ['600px', '600px'],
  743. content: '{:url("statistics/exportList2",array("type"=>"behaviorStatisticsData"))}'
  744. });
  745. });
  746. });
  747. </script>
  748. {/block}