welcome.html 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689
  1. {extend name="public/layout"}
  2. {block name="head"}
  3. {include file="public/head"}
  4. <link rel="stylesheet" href="/static/css/welcome.css?ver=2.8">
  5. <style>
  6. body {
  7. color: #384855;
  8. }
  9. .nonedatabox {
  10. display: block;
  11. width: 100%;
  12. position: absolute;
  13. top: 50%;
  14. left: 0;
  15. margin-top: -101px;
  16. }
  17. .noneimg {
  18. display: block;
  19. width: 200px;
  20. height: 161px;
  21. margin: 0px auto 20px;
  22. }
  23. .nonetext {
  24. font-size: 16px;
  25. text-align: center;
  26. }
  27. .mb0 {
  28. margin-bottom: 0px;
  29. }
  30. .line-middle {
  31. width: 10px;
  32. height: 100%;
  33. margin: 0px 10px;
  34. }
  35. .line {
  36. width: 10px;
  37. height: 2px;
  38. background-color: #999999;
  39. }
  40. .flex-row,
  41. .row {
  42. display: flex;
  43. }
  44. .align-center {
  45. align-items: center;
  46. }
  47. .ml10 {
  48. margin-left: 10px;
  49. }
  50. .mt10 {
  51. margin-top: 10px;
  52. }
  53. .layui-input-block {
  54. margin-left: 0px;
  55. }
  56. .justify-end {
  57. justify-content: flex-end;
  58. }
  59. .justify-between {
  60. justify-content: space-between;
  61. }
  62. .titext {
  63. height: 38px;
  64. line-height: 38px;
  65. font-size: 18px;
  66. padding-left: 12px;
  67. position: relative;
  68. }
  69. .titext::after {
  70. content: ' ';
  71. display: block;
  72. width: 4px;
  73. height: 16px;
  74. border-radius: 3px;
  75. background: #85A1B8;
  76. position: absolute;
  77. top: 11px;
  78. left: 0;
  79. }
  80. .layui-btn {
  81. background-color: #fff;
  82. color: #555;
  83. border: 1px solid #c9c9c9
  84. }
  85. .layui-btn:hover {
  86. background-color: #fff;
  87. color: #555;
  88. border: 1px solid #249efb;
  89. }
  90. .layui-btn-primary,
  91. .sBtn {
  92. background-color: #249efb;
  93. color: #fff;
  94. border: 1px solid #249efb;
  95. }
  96. .layui-btn-primary:hover {
  97. background-color: #249efb;
  98. color: #fff;
  99. border: 1px solid #249efb;
  100. }
  101. .layui-table td,
  102. .layui-table th {
  103. box-sizing: border-box !important;
  104. }
  105. .layui-table-view .layui-table {
  106. width: 100%;
  107. }
  108. .layui-tab-title {
  109. left: 25px;
  110. margin-top: 15px;
  111. }
  112. .layui-this {
  113. background-color: #249EFB !important;
  114. color: #fff !important;
  115. }
  116. .layui-tab-title li {
  117. background-color: #F2F2F2;
  118. margin: 0px 5px;
  119. border-radius: 2px;
  120. }
  121. .layui-tab-title li::after {
  122. border: 0 !important;
  123. }
  124. .layui-tab-content {
  125. padding: 0;
  126. }
  127. .none {
  128. display: none !important;
  129. }
  130. #topleftline{
  131. display: block;
  132. width: 100%;
  133. height: 240px;
  134. position: relative;
  135. top: -30px;
  136. }
  137. #toprightline {
  138. display: block;
  139. width: 95%;
  140. height: 240px;
  141. position: relative;
  142. top: -30px;
  143. float: right;
  144. }
  145. #lookline {
  146. display: block;
  147. height: 240px;
  148. width: calc(100% - 760px);
  149. position: absolute;
  150. bottom: -30px;
  151. right: 10px;
  152. }
  153. #crmpie {
  154. display: block;
  155. width: 130px;
  156. height: 130px;
  157. position: absolute;
  158. bottom: 20px;
  159. left: 0;
  160. }
  161. .crmnumbox {
  162. position: absolute;
  163. bottom: 60px;
  164. left: 26px;
  165. z-index: 8;
  166. width: 76px;
  167. text-align: center;
  168. }
  169. .rightitopbox{
  170. max-width: calc(100% - 100px);
  171. float: right;
  172. }
  173. .layui-table-cell {
  174. padding: 0px 20px;
  175. }
  176. th.layui-table-patch{padding: 0 !important;}
  177. .numtablebox .topnum{
  178. margin-bottom: 0;
  179. }
  180. #cluelineDatabox{
  181. padding: 0 !important;
  182. }
  183. #cluelineData{
  184. display: block;
  185. width: 100%;
  186. height: 240px;
  187. position: relative;
  188. top: -5px;
  189. }
  190. .colorred{
  191. color: #F51231 !important;
  192. }
  193. .levelcrm .otherlev{
  194. display: block;
  195. width: 20px;
  196. height: 12px;
  197. position: relative;
  198. top: 4px;
  199. margin-right: 8px;
  200. background-color: #85A1B8;
  201. }
  202. @media screen and (max-width: 950px) {
  203. .crmpiebox .levelcrm:last-child .otherlev{
  204. margin-right: 0;
  205. }
  206. }
  207. </style>
  208. {/block}
  209. {block name="body"}
  210. <body>
  211. <div class="clearfix titlebox">
  212. <div class="left titext">数据统计</div>
  213. <div class="left search-form layui-form flex-row align-center justify-between rightitopbox">
  214. <div class="flex-row align-center ">
  215. <div class="layui-form-item mb0" lay-filter="form_whereyear">
  216. <select name="whereyear" id="sel" lay-filter="whereyear" lay-search>
  217. </select>
  218. </div>
  219. <div class="layui-inline row ml10" id="timeBtn">
  220. <input type="button" class="layui-btn" value="今日" />
  221. <input type="button" class="layui-btn" value="7天" />
  222. <input type="button" class="layui-btn layui-btn-primary" value="1个月" />
  223. <input type="button" class="layui-btn" value="3个月" />
  224. <input type="button" class="layui-btn " value="1年" />
  225. </div>
  226. <div class="layui-inline ml10">
  227. <!-- 注意:这一层元素并不是必须的 -->
  228. <input type="text" class="layui-input" id="sDate" name="start_date" placeholder="选择开始日期">
  229. </div>
  230. <div class="line-middle">
  231. <div class="line"></div>
  232. </div>
  233. <div class="layui-inline">
  234. <!-- 注意:这一层元素并不是必须的 -->
  235. <input type="text" class="layui-input" id="eDate" name="end_date" placeholder="选择结束日期">
  236. </div>
  237. </div>
  238. <div class="filterbox">
  239. <button id="filtersearch" class="layui-btn sBtn ml10" lay-submit lay-filter="table-search">筛选</button>
  240. </div>
  241. </div>
  242. </div>
  243. <div class="topdatabox">
  244. <div class="clearfix alldatabox">
  245. <div class="clearfix" >
  246. <div class="left everydatabox topleftdata height180 relative alldatatopleftbox" >
  247. </div>
  248. <div class="topleftlinedata left everydatabox topleftdata height180 relative none" style="padding: 0;">
  249. <img class="leftlinecloseimgbox pointer" src="/static/img/golast.png" />
  250. <div id="topleftline" >
  251. </div>
  252. </div>
  253. <div class="right everydatabox toprightdata height180 alldatatoprightbox">
  254. </div>
  255. <div class="toprightlinedata right everydatabox toprightdata height180 relative none" style="padding: 0;">
  256. <img class="rightlinecloseimgbox pointer" src="/static/img/golast.png" />
  257. <div id="toprightline">
  258. </div>
  259. </div>
  260. </div>
  261. <div class="clearfix mt16 everydatabox relative height170">
  262. <div class="clearfix looktit">见面数据</div>
  263. <div class="mt16 center clearfix visitDatabox">
  264. </div>
  265. <div id="lookline">
  266. </div>
  267. </div>
  268. <div class="clearfix mt16">
  269. <div class="left everydatabox topleftdata relative crmleftpiebox height170">
  270. <div class="clearfix">
  271. <img class="left iconimg" src="/static/img/topicon.png" />
  272. <div class="left toptitbox">客户分类</div>
  273. {auth:check name="statistics/customer"}
  274. <a class="right crmlevbox toptitbox pointer color249efb">详情>></a>
  275. {/auth:check}
  276. </div>
  277. <div id="crmpie" ></div>
  278. <div class="crmnumbox">
  279. <div class="crmallnum" id="crmallnum">0</div>
  280. <div>客户总量</div>
  281. </div>
  282. <div class="crmpiebox clearfix">
  283. <div class="levelcrm left center">
  284. <div class="inline-block clearfix">
  285. <div class="crmallnum crmallnum_a colorred">0</div>
  286. <div class="everycrmbox clearfix">
  287. <span class="alev left "></span>
  288. <span class="left">A类客户</span>
  289. </div>
  290. <div class="crmcutnumbox">转化率0%</div>
  291. </div>
  292. </div>
  293. <div class="levelcrm left center">
  294. <div class="inline-block clearfix">
  295. <div class="crmallnum crmallnum_b">0</div>
  296. <div class="everycrmbox clearfix">
  297. <span class="blev left"></span>
  298. <span class="left">B类客户</span>
  299. </div>
  300. </div>
  301. </div>
  302. <div class="levelcrm left center">
  303. <div class="inline-block clearfix">
  304. <div class="crmallnum crmallnum_c">0</div>
  305. <div class="everycrmbox clearfix">
  306. <span class="clev left"></span>
  307. <span class="left">C类客户</span>
  308. </div>
  309. </div>
  310. </div>
  311. <div class="levelcrm left center">
  312. <div class="inline-block clearfix">
  313. <div class="crmallnum crmallnum_d">0</div>
  314. <div class="everycrmbox clearfix">
  315. <span class="dlev left"></span>
  316. <span class="left">D类客户</span>
  317. </div>
  318. </div>
  319. </div>
  320. <div class="levelcrm left center">
  321. <div class="inline-block clearfix">
  322. <div class="crmallnum crmallnum_other">0</div>
  323. <div class="everycrmbox clearfix">
  324. <span class="otherlev left"></span>
  325. <span class="left">其他客户</span>
  326. </div>
  327. </div>
  328. </div>
  329. </div>
  330. </div>
  331. <div class="right everydatabox toprightdata height170 cluenumData">
  332. </div>
  333. <div id="cluelineDatabox" class="right everydatabox toprightdata height170 relative" style="display:none;">
  334. <img class="rightlinecloseimgbox pointer" src="/static/img/golast.png" />
  335. <div id="cluelineData">
  336. </div>
  337. </div>
  338. </div>
  339. <div class="clearfix mt16 clearfix relative">
  340. <div class="left everydatabox rightmainbox relative topleftdata">
  341. <div class="achievement">统计排行</div>
  342. <div class="maintypebox clearfix">
  343. <div class="nowtit dingrank" id="dingrankEle">定金</div>
  344. <div class="signrank" id="signrankEle">合同</div>
  345. </div>
  346. <div class="depositRank">
  347. <div class="rankingbox relative rankingbox1">
  348. <div class="ranktitbox">
  349. <div class="namebox tleft">姓名</div>
  350. <div class="departbox">部门</div>
  351. <div class="complete" id="completeEle">交定数量</div>
  352. <div class="workbox" id="workboxEle">交定率</div>
  353. <div class="ranknum">排名</div>
  354. </div>
  355. <div class="ranklistbox dingrankbox">
  356. </div>
  357. </div>
  358. <div class="dingrankbox1 nonedatabox " style="display: none;">
  359. <img class="noneimg" src="/static/img/nonedata.png" alt="" />
  360. <div class="nonetext" id="nonetextEle">暂无交定数据</div>
  361. </div>
  362. </div>
  363. <div class="signRank" style="display: none;">
  364. <div class="rankingbox relative rankingbox2" >
  365. <div class="ranktitbox">
  366. <div class="namebox tleft">姓名</div>
  367. <div class="departbox">部门</div>
  368. <div class="complete" id="completeEls">定金数量</div>
  369. <div class="workbox" id="workboxEls">定金率</div>
  370. <div class="ranknum">排名</div>
  371. </div>
  372. <div class="ranklistbox signrankbox" >
  373. </div>
  374. </div>
  375. <div class="signrankbox1 nonedatabox " style="display: none;">
  376. <img class="noneimg" src="/static/img/nonedata.png" alt="" />
  377. <div class="nonetext" id="nonetextEls">暂无定金数据</div>
  378. </div>
  379. </div>
  380. </div>
  381. <div class="right everydatabox echartlinebox toprightdata" id='echartbox'>
  382. </div>
  383. </div>
  384. </div>
  385. </div>
  386. </body>
  387. {/block}
  388. {block name="js"}
  389. <script src="/static/js/echarts.min.js"></script>
  390. <script src="/static/js/jquery.min.js"></script>
  391. <script>
  392. var xinjushang = "{$xinjushang}";
  393. function setYMD(time) {
  394. let dateTime = new Date(time);
  395. let year = dateTime.getFullYear();
  396. let Month = dateTime.getMonth() + 1;
  397. let days = dateTime.getDate();
  398. return `${year}-${Month > 9 ? Month : '0' + Month}-${days > 9 ? days : '0' + days}`;
  399. }
  400. var dateArr = {};
  401. var today = new Date().getTime();
  402. var oneTime = 24 * 60 * 60 * 1000;
  403. var sevenDay1 = today - 6 * oneTime;
  404. var oneMonth = today - 30 * oneTime;
  405. var threeMonth = today - 3 * 30 * oneTime;
  406. var oneyear = today - 365 * oneTime;
  407. dateArr = {
  408. nowS: setYMD(today),
  409. nowE: setYMD(today),
  410. sevenDayS: setYMD(sevenDay1),
  411. sevenDayE: setYMD(today),
  412. oneMonthS: setYMD(oneMonth),
  413. oneMonthE: setYMD(today),
  414. threeMonthS: setYMD(threeMonth),
  415. threeMonthE: setYMD(today),
  416. oneyearS: setYMD(oneyear),
  417. oneyearE: setYMD(today),
  418. }
  419. layui.use(['table','form', 'laydate', 'element'], function () {
  420. let form = layui.form,
  421. table=layui.table,
  422. element = layui.element,
  423. laydate = layui.laydate,
  424. $ = layui.$;
  425. $('#sDate').val(dateArr.oneMonthS);
  426. $('#eDate').val(dateArr.oneMonthE);
  427. let textVal = '定金';
  428. let textval1 = '合同';
  429. let textval2 = '定金数量';
  430. let textval3 = '定金率';
  431. let textval4 = '合同数量';
  432. let textval5 = '合同率';
  433. let textval6 = '暂无合同数据';
  434. let textval7 = '暂无定金数据';
  435. $("#dingrankEle").text(textVal);
  436. $("#signrankEle").text(textval1);
  437. $("#completeEle").text(textval2);
  438. $("#workboxEle").text(textval3);
  439. $("#completeEls").text(textval4);
  440. $("#workboxEls").text(textval5);
  441. $("#nonetextEls").text(textval6);
  442. $("#nonetextEle").text(textval7);
  443. $('body').attr('layadmin-themealias', 'default');
  444. laydate.render({
  445. elem: '#sDate', //指定元素
  446. format: 'yyyy-MM-dd',
  447. trigger: 'click'
  448. });
  449. laydate.render({
  450. elem: '#eDate', //指定元素
  451. format: 'yyyy-MM-dd',
  452. trigger: 'click'
  453. });
  454. $.ajax({
  455. type: 'post',
  456. url: '/dashboard/index/org.html',
  457. data: {},
  458. success: function (res) {
  459. // sel
  460. if (res.code == 0) {
  461. var str = '<option value="">全部</option>';
  462. for (var i in res.data) {
  463. str += '<option value="' + res.data[i].id + '">' + res.data[i].name + '</option>';
  464. str += arrfun(res.data[i].child);
  465. }
  466. $('#sel').append(str);
  467. form.render('select');
  468. }
  469. }
  470. })
  471. signData();
  472. depositData();
  473. visitData();
  474. customerLevelData();
  475. clueData();
  476. depositRank();
  477. signRank();
  478. echartline();
  479. lookfun();
  480. $('#timeBtn').on('click', function (e) {
  481. if (!!(e.target.localName != 'input')) return;
  482. let o = document.querySelector('#timeBtn').children;
  483. if (e.target.classList.contains('layui-btn-primary') == true) {
  484. for (var i = 0; i < o.length; i++) {
  485. o[i].className = 'layui-btn';
  486. }
  487. $('#sDate').val('');
  488. $('#eDate').val('');
  489. } else {
  490. for (var i = 0; i < o.length; i++) {
  491. o[i].className = 'layui-btn';
  492. }
  493. e.target.className = 'layui-btn layui-btn-primary';
  494. if (!!(e.target.className.indexOf('layui-btn-primary') > 0)) {
  495. if (e.target.value == '今日') {
  496. $('#sDate').val(dateArr.nowS);
  497. $('#eDate').val(dateArr.nowE);
  498. } else if (e.target.value == '7天') {
  499. $('#sDate').val(dateArr.sevenDayS);
  500. $('#eDate').val(dateArr.sevenDayE);
  501. } else if (e.target.value == '1个月') {
  502. $('#sDate').val(dateArr.oneMonthS);
  503. $('#eDate').val(dateArr.oneMonthE);
  504. } else if (e.target.value == '3个月') {
  505. $('#sDate').val(dateArr.threeMonthS);
  506. $('#eDate').val(dateArr.threeMonthE);
  507. } else if (e.target.value == '1年') {
  508. $('#sDate').val(dateArr.oneyearS);
  509. $('#eDate').val(dateArr.oneyearE);
  510. } else {
  511. $('#sDate').val(dateArr.oneyearS);
  512. $('#eDate').val(dateArr.oneyearE);
  513. }
  514. }
  515. }
  516. getAllData()
  517. })
  518. form.on('submit(table-search)', function (data) {
  519. let field = data.field;
  520. let element = $('.layui-btn-primary');
  521. if (element && element[0]) {
  522. let el = element[0].value;
  523. }
  524. getAllData()
  525. });
  526. function getAllData(){
  527. signData();
  528. depositData();
  529. visitData();
  530. customerLevelData();
  531. clueData();
  532. depositRank();
  533. signRank();
  534. if($('.topleftlinedata').css('display')!='none'){
  535. leftlinefun();
  536. }
  537. if ($('.toprightlinedata').css('display') != 'none') {
  538. rightlinefun();
  539. }
  540. if ($('#cluelineDatabox').css('display') != 'none') {
  541. cluefun();
  542. }
  543. echartline();
  544. lookfun();
  545. }
  546. form.on('select(whereyear)', function () {
  547. getAllData()
  548. });
  549. $('.crmlevbox').on('click',function(){
  550. window.parent.numtap();
  551. })
  552. $('.alldatatopleftbox').on('click','.topleftlistmsgbox',function(){
  553. window.parent.numtap();
  554. })
  555. $('.alldatatopleftbox').on('click', '#topleftimg',function () {
  556. $(this).parents('.everydatabox').addClass('none');
  557. $(this).parents('.everydatabox').siblings('.topleftlinedata').removeClass('none');
  558. leftlinefun();
  559. })
  560. $('.leftlinecloseimgbox').on('click', function () {
  561. $(this).parents('.everydatabox').addClass('none');
  562. $(this).parents('.everydatabox').siblings('.everydatabox')[0].classList.remove('none');
  563. })
  564. $('.alldatatoprightbox').on('click', '.toprightlistmsgbox', function () {
  565. window.parent.numtap();
  566. })
  567. $('.alldatatoprightbox').on('click', '#toprightimg', function () {
  568. $(this).parents('.everydatabox').addClass('none');
  569. $(this).parents('.everydatabox').siblings('.toprightlinedata').removeClass('none');
  570. rightlinefun();
  571. })
  572. $('.cluenumData').on('click','.cluelineshowbox',function () {
  573. $(this).parents('.everydatabox').hide();
  574. $(this).parents('.everydatabox').siblings('#cluelineDatabox').show();
  575. cluefun();
  576. })
  577. $('.toprightlinedata .rightlinecloseimgbox').on('click', function () {
  578. $(this).parents('.everydatabox').addClass('none');
  579. $(this).parents('.everydatabox').siblings('.everydatabox')[2].classList.remove('none');
  580. })
  581. $('#cluelineDatabox .rightlinecloseimgbox').on('click', function () {
  582. $(this).parents('.everydatabox').hide();
  583. $(this).parents('.everydatabox').siblings('.cluenumData').show();
  584. })
  585. $('.maintypebox div').on('click', function () {
  586. $('.nowtit').removeClass('nowtit')
  587. $(this).addClass('nowtit');
  588. if ($(this).hasClass('dingrank')) {
  589. $('.depositRank').show();
  590. $('.signRank').hide();
  591. } else {
  592. $('.depositRank').hide();
  593. $('.signRank').show();
  594. }
  595. });
  596. $('.cluenumData').on('click','.centercluelistbox',function () {
  597. window.parent.numtap();
  598. })
  599. })
  600. function echartline() {
  601. $.ajax({
  602. type: 'post',
  603. url: '/dashboard/index/followUpData.html',
  604. data: {
  605. org_id: $('#sel').val(),
  606. start_date: $('#sDate').val(),
  607. end_date: $('#eDate').val(),
  608. },
  609. success: function (res) {
  610. let dataArr = ['有效线索', '已到店', '已到场', '已量房', '定金', '合同'];
  611. if (res.code == 0) {
  612. var myChart = echarts.init(document.getElementById('echartbox'));
  613. var option = {
  614. title: {
  615. text: '客户跟进次数',
  616. top: 20,
  617. left: '0%',
  618. textStyle:{
  619. fontWeight:'normal'
  620. },
  621. },
  622. grid: {
  623. left: '3%',
  624. right: '4%',
  625. top: 66,
  626. bottom: '3%',
  627. containLabel: true
  628. },
  629. tooltip: {
  630. trigger: 'axis',
  631. axisPointer: {
  632. type: 'shadow'
  633. }
  634. },
  635. xAxis: {
  636. type: 'category',
  637. data: dataArr,
  638. },
  639. yAxis: {
  640. type: 'value',
  641. minInterval: 1
  642. },
  643. series: [
  644. {
  645. type: 'bar',
  646. itemStyle:{
  647. },
  648. data: [res.data.valid_num, res.data.shop_num, res.data.present_num, res.data.measure_num, res.data.deposit_num, res.data.sign_num],
  649. backgroundStyle: {
  650. color: '#249efb'
  651. }
  652. }
  653. ]
  654. };
  655. myChart.setOption(option);
  656. $(window).resize(function () {
  657. myChart.resize();
  658. })
  659. }
  660. }
  661. })
  662. }
  663. function signRank() {
  664. $.ajax({
  665. type: 'post',
  666. url: '/dashboard/index/signRank.html',
  667. data: {
  668. org_id: $('#sel').val(),
  669. start_date: $('#sDate').val(),
  670. end_date: $('#eDate').val(),
  671. },
  672. success: function (res) {
  673. if (res.code == 0) {
  674. var str = "";
  675. for (var i in res.data) {
  676. str += '<div class="bgfff relative clearfix ' + (i == 0 ? 'firstbox' : i == 1 ? 'secondbox': i == 2?'secondbox thirdbox': '') + ' borderbt">' +
  677. '<div class="clearfix namebox tleft" >' +
  678. ' <img class="left" src="' + (res.data[i].headimgurl ? res.data[i].headimgurl : '/static/img/default.png') + '" />' +
  679. ' <div class="left tleft personamebox ellipsis">' + res.data[i].name + '</div>' +
  680. ' </div >' +
  681. ' <div class="departbox">' + res.data[i].org_name + '</div>' +
  682. ' <div class="complete">' + res.data[i].num + '</div>' +
  683. ' <div class="workbox">' + res.data[i].lv + '</div>' +
  684. ' <div class="ranknum">' + (i * 1 + 1) + '</div>' +
  685. '</div >';
  686. }
  687. if (!str) {
  688. $('.rankingbox2').hide();;
  689. $('.signrankbox1').show();;
  690. }
  691. $('.signrankbox').html(str);
  692. }
  693. }
  694. })
  695. }
  696. function depositRank() {
  697. $.ajax({
  698. type: 'post',
  699. url: '/dashboard/index/depositRank.html',
  700. data: {
  701. org_id: $('#sel').val(),
  702. start_date: $('#sDate').val(),
  703. end_date: $('#eDate').val(),
  704. },
  705. success: function (res) {
  706. if (res.code == 0) {
  707. var str = "";
  708. for (var i in res.data) {
  709. str += '<div class="bgfff relative clearfix ' + (i == 0 ? 'firstbox' : i == 1 ? 'secondbox' : i == 2 ? 'secondbox thirdbox' : '') + ' borderbt">' +
  710. '<div class="clearfix namebox tleft" >' +
  711. ' <img class="left" src="' + (res.data[i].headimgurl ? res.data[i].headimgurl : '/static/img/default.png') + '" />' +
  712. ' <div class="left tleft personamebox ellipsis">' + res.data[i].name + '</div>' +
  713. ' </div >' +
  714. ' <div class="departbox">' + res.data[i].org_name + '</div>' +
  715. ' <div class="complete">' + res.data[i].num + '</div>' +
  716. ' <div class="workbox">' + res.data[i].lv + '</div>' +
  717. ' <div class="ranknum">' + (i * 1 + 1) + '</div>' +
  718. '</div >';
  719. }
  720. if (!str) {
  721. $('.rankingbox1').hide();
  722. $('.dingrankbox1').show();
  723. }
  724. $('.dingrankbox').html(str);
  725. }
  726. }
  727. })
  728. }
  729. function clueData() {
  730. $.ajax({
  731. type: 'post',
  732. url: '/dashboard/index/clueData.html',
  733. data: {
  734. org_id: $('#sel').val(),
  735. start_date: $('#sDate').val(),
  736. end_date: $('#eDate').val(),
  737. },
  738. success: function (res) {
  739. if (res.code == 0) {
  740. var str = '<div class="clearfix">' +
  741. ' <img class="left iconimg" src = "/static/img/topicon.png" />' +
  742. ' <div class="left toptitbox">获客数据</div>' +
  743. ' <div class="right">' +
  744. ' <div class="left rightadd '+ ($('#sDate').val()== $('#eDate').val()?'':'none')+'">今日新增:' + res.data.today + '单</div>' +
  745. ' <img class="left righticonimg pointer cluelineshowbox" src="/static/img/lineicon.png" />' +
  746. ' </div>' +
  747. '</div >' +
  748. '<div class="clearfix mt32 center">' +
  749. ' <div class="left cluept">' +
  750. ' <div class="topnum">' + res.data.num + '</div>' +
  751. ' <div class="cluetext">获客量</div>' +
  752. ' </div>' +
  753. ' <div class="left cluept">' +
  754. ' <div class="topnum">' + res.data.valid_num + '</div>' +
  755. ' <div class="cluetext">有效线索建档</div>' +
  756. ' </div>' +
  757. ' <div class="left cluept">' +
  758. ' <div class="topnum">' + res.data.valid_lv + '</div>' +
  759. ' <div class="cluetext">有效率</div>' +
  760. ' </div>' +
  761. ' <div class="left cluept">' +
  762. ' <div class="topnum">' + res.data.invalid_num + '</div>' +
  763. ' <div class="cluetext">无效线索</div>' +
  764. ' </div>' +
  765. '</div>';
  766. '{auth:check name="statistics/customer" }'
  767. str = '<div class="clearfix">' +
  768. ' <img class="left iconimg" src = "/static/img/topicon.png" />' +
  769. ' <div class="left toptitbox">获客数据</div>' +
  770. ' <div class="right">' +
  771. ' <div class="left rightadd ' + ($('#sDate').val() == $('#eDate').val() ? '' : 'none') + '">今日新增:' + res.data.today + '单</div>' +
  772. ' <img class="left righticonimg pointer cluelineshowbox" src="/static/img/lineicon.png" />' +
  773. ' <div class="left toptitbox pointer centercluelistbox color249efb">详情>></div>' +
  774. ' </div>' +
  775. '</div >' +
  776. '<div class="clearfix mt32 center">' +
  777. ' <div class="left cluept">' +
  778. ' <div class="topnum">' + res.data.num + '</div>' +
  779. ' <div class="cluetext">获客量</div>' +
  780. ' </div>' +
  781. ' <div class="left cluept">' +
  782. ' <div class="topnum colorred">' + res.data.valid_num + '</div>' +
  783. ' <div class="cluetext">有效线索建档</div>' +
  784. ' </div>' +
  785. ' <div class="left cluept">' +
  786. ' <div class="topnum">' + res.data.valid_lv + '</div>' +
  787. ' <div class="cluetext">有效率</div>' +
  788. ' </div>' +
  789. ' <div class="left cluept">' +
  790. ' <div class="topnum">' + res.data.invalid_num + '</div>' +
  791. ' <div class="cluetext">无效线索</div>' +
  792. ' </div>' +
  793. '</div>';
  794. '{/auth:check}'
  795. $('.cluenumData').html(str);
  796. }
  797. }
  798. })
  799. }
  800. function customerLevelData() {
  801. $.ajax({
  802. type: 'post',
  803. url: '/dashboard/index/customerLevelData.html',
  804. data: {
  805. org_id: $('#sel').val(),
  806. start_date: $('#sDate').val(),
  807. end_date: $('#eDate').val(),
  808. },
  809. success: function (res) {
  810. if (res.code == 0) {
  811. $('#crmallnum').html(res.data.num);
  812. $('.crmallnum_a').html(res.data.A_num);
  813. $('.crmallnum_b').html(res.data.B_num);
  814. $('.crmallnum_c').html(res.data.C_num);
  815. $('.crmallnum_d').html(res.data.D_num);
  816. $('.crmcutnumbox').html('转化率'+res.data.a_sign_lv);
  817. var num= res.data.num- res.data.A_num- res.data.B_num- res.data.C_num; - res.data.D_num;
  818. $('.crmallnum_other').html(num);
  819. var myChart1 = echarts.init(document.getElementById('crmpie'));
  820. var option1 = {
  821. legend: {
  822. show: false,
  823. },
  824. tooltip: {
  825. show: false,
  826. },
  827. series: [
  828. {
  829. type: 'pie',
  830. radius: ['90%', '55%'],
  831. avoidLabelOverlap: false,
  832. itemStyle: {
  833. borderColor: '#fff',
  834. borderWidth: 10
  835. },
  836. label: {
  837. show: false,
  838. position: 'center'
  839. },
  840. data: [
  841. {
  842. value: res.data.A_num,
  843. itemStyle: {
  844. color: '#ff0000'
  845. }
  846. },
  847. {
  848. value: res.data.B_num,
  849. itemStyle: {
  850. color: '#249efb'
  851. }
  852. },
  853. {
  854. value: res.data.C_num,
  855. itemStyle: {
  856. color: '#f5dc00'
  857. }
  858. },
  859. {
  860. value: res.data.D_num,
  861. itemStyle: {
  862. color: '#5EC530'
  863. }
  864. },
  865. {
  866. value: num,
  867. itemStyle: {
  868. color: '#85A1B8'
  869. }
  870. }
  871. ]
  872. }
  873. ]
  874. };
  875. myChart1.setOption(option1);
  876. $(window).resize(function () {
  877. myChart1.resize();
  878. })
  879. }
  880. }
  881. })
  882. }
  883. function signData() {
  884. $.ajax({
  885. type: 'post',
  886. url: '/dashboard/index/signData.html',
  887. data: {
  888. org_id: $('#sel').val(),
  889. start_date: $('#sDate').val(),
  890. end_date: $('#eDate').val(),
  891. },
  892. success: function (res) {
  893. let signText = '合同';
  894. if (res.code == 0) {
  895. var num= res.data.employee_num?res.data.sign_num?(res.data.sign_num / res.data.employee_num)<1?0: (res.data.sign_num / res.data.employee_num).toFixed(0):0: res.data.sign_num;
  896. var str = "<div class=\"clearfix\">" +
  897. "<img class=\"left iconimg\" src=\"/static/img/topicon.png\" />" +
  898. "<div class=\"left toptitbox\">"+signText+"数据</div>" +
  899. "<div class=\"left " + ($('.layui-btn-primary').val() == '1个月' ? '' : 'none') +" monthaddnum\">同比上月增长:" + res.data.month_lv + "</div> " +
  900. "<div class=\"right\"> " +
  901. "<div class=\"left "+ ($('#sDate').val() == $('#eDate').val() ? '' : 'none') +" rightadd\">今日新增:" + res.data.today + "单</div> " +
  902. "<img class=\"left righticonimg pointer\" id=\"topleftimg\" src=\"/static/img/lineicon.png\" /> " +
  903. "</div> " +
  904. "</div > " +
  905. "<div class=\"clearfix mt32 center signtext\">" +
  906. "<div class=\"left signmoney\">" +
  907. " <div class=\"topnum colorred\">¥ " + res.data.sign_money + "</div>" +
  908. " <div>"+signText+"金额</div>" +
  909. "</div>" +
  910. "<div class=\"left signnum\">" +
  911. " <div class=\"topnum\">" + res.data.sign_num + "</div>" +
  912. " <div>"+signText+"数量</div>" +
  913. "</div>" +
  914. "<div class=\"left signnum\">" +
  915. " <div class=\"topnum\">" + res.data.employee_num + "</div>" +
  916. " <div>见面量</div>" +
  917. "</div>" +
  918. "<div class=\"left signnum\">" +
  919. " <div class=\"topnum\">" + res.data.sign_lv + "</div>" +
  920. " <div>"+signText+"率</div>" +
  921. "</div>" +
  922. "<div class=\"left signnum\">" +
  923. " <div class=\"topnum\">" + res.data.sign_avg + "</div>" +
  924. " <div>均单</div>" +
  925. "</div>" +
  926. "</div>";
  927. '{auth:check name="statistics/customer" }'
  928. str = "<div class=\"clearfix\">" +
  929. "<img class=\"left iconimg\" src=\"/static/img/topicon.png\" />" +
  930. "<div class=\"left toptitbox\">"+signText+"数据</div>" +
  931. "<div class=\"left " + ($('.layui-btn-primary').val() == '1个月' ? '' : 'none') + " monthaddnum\">同比上月增长:" + res.data.month_lv + "</div> " +
  932. "<div class=\"right\"> " +
  933. "<div class=\"left " + ($('#sDate').val() == $('#eDate').val() ? '' : 'none') + " rightadd\">今日新增:" + res.data.today + "单</div> " +
  934. "<img class=\"left righticonimg pointer\" id=\"topleftimg\" src=\"/static/img/lineicon.png\" /> " +
  935. "<div class=\"left toptitbox topleftlistmsgbox pointer color249efb\" >详情>></div> " +
  936. "</div> " +
  937. "</div > " +
  938. "<div class=\"clearfix mt32 center signtext\">" +
  939. "<div class=\"left signmoney\">" +
  940. " <div class=\"topnum colorred\">¥ " + res.data.sign_money + "</div>" +
  941. " <div>"+signText+"金额</div>" +
  942. "</div>" +
  943. "<div class=\"left signnum\">" +
  944. " <div class=\"topnum\">" + res.data.sign_num + "</div>" +
  945. " <div>"+signText+"数量</div>" +
  946. "</div>" +
  947. "<div class=\"left signnum\">" +
  948. " <div class=\"topnum\">" + res.data.num + "</div>" +
  949. " <div>见面量</div>" +
  950. "</div>" +
  951. "<div class=\"left signnum\">" +
  952. " <div class=\"topnum\">" + res.data.sign_lv + "</div>" +
  953. " <div>"+signText+"率</div>" +
  954. "</div>" +
  955. "<div class=\"left signnum\">" +
  956. " <div class=\"topnum\">" + res.data.sign_avg + "</div>" +
  957. " <div>均单</div>" +
  958. "</div>" +
  959. "</div>";
  960. '{/auth:check}'
  961. $('.alldatatopleftbox').html(str);
  962. }
  963. }
  964. })
  965. }
  966. function depositData() {
  967. $.ajax({
  968. type: 'post',
  969. url: '/dashboard/index/depositData.html',
  970. data: {
  971. org_id: $('#sel').val(),
  972. start_date: $('#sDate').val(),
  973. end_date: $('#eDate').val(),
  974. },
  975. success: function (res) {
  976. let depositVal = '定金';
  977. if (res.code == 0) {
  978. var str = '<div class="clearfix">' +
  979. ' <img class="left iconimg" src="/static/img/topicon.png" />' +
  980. ' <div class="left toptitbox">'+depositVal+'数据</div>' +
  981. ' <div class="right">' +
  982. ' <div class="left ' + ($('#sDate').val() == $('#eDate').val() ? '' : 'none') + ' rightadd">今日新增:' + res.data.today + '单</div>' +
  983. ' <img class="left righticonimg pointer" id="toprightimg" src="/static/img/lineicon.png" />' +
  984. ' </div>' +
  985. '</div >' +
  986. '<div class="clearfix mt32 center signtext">' +
  987. ' <div class="left signpt" style="width:50%;">' +
  988. ' <div class="topnum colorred">¥ ' + res.data.deposit_money + '</div>' +
  989. ' <div>'+depositVal+'金额</div>' +
  990. ' </div>' +
  991. ' <div class="left signpt">' +
  992. ' <div class="topnum">' + res.data.deposit_num + '</div>' +
  993. ' <div>'+depositVal+'数量</div>' +
  994. ' </div>' +
  995. ' <div class="left signpt">' +
  996. ' <div class="topnum">' + res.data.deposit_lv + '</div>' +
  997. ' <div>'+depositVal+'率</div>' +
  998. ' </div>' +
  999. '</div>';
  1000. '{auth:check name="statistics/customer" }'
  1001. str = '<div class="clearfix">' +
  1002. ' <img class="left iconimg" src="/static/img/topicon.png" />' +
  1003. ' <div class="left toptitbox">'+depositVal+'数据</div>' +
  1004. ' <div class="right">' +
  1005. ' <div class="left ' + ($('#sDate').val() == $('#eDate').val() ? '' : 'none') + ' rightadd">今日新增:' + res.data.today + '单</div>' +
  1006. ' <img class="left righticonimg pointer" id="toprightimg" src="/static/img/lineicon.png" />' +
  1007. ' <a class="left toptitbox pointer color249efb toprightlistmsgbox">详情>></a>' +
  1008. ' </div>' +
  1009. '</div >' +
  1010. '<div class="clearfix mt32 center signtext">' +
  1011. ' <div class="left signpt" style="width:50%;">' +
  1012. ' <div class="topnum colorred">¥ ' + res.data.deposit_money + '</div>' +
  1013. ' <div>'+depositVal+'金额</div>' +
  1014. ' </div>' +
  1015. ' <div class="left signpt">' +
  1016. ' <div class="topnum">' + res.data.deposit_num + '</div>' +
  1017. ' <div>'+depositVal+'数量</div>' +
  1018. ' </div>' +
  1019. ' <div class="left signpt">' +
  1020. ' <div class="topnum">' + res.data.deposit_lv + '</div>' +
  1021. ' <div>'+depositVal+'率</div>' +
  1022. ' </div>' +
  1023. '</div>';
  1024. '{/auth:check}'
  1025. $('.alldatatoprightbox').html(str);
  1026. }
  1027. }
  1028. })
  1029. }
  1030. function visitData() {
  1031. $.ajax({
  1032. type: 'post',
  1033. url: '/dashboard/index/visitData.html',
  1034. data: {
  1035. org_id: $('#sel').val(),
  1036. start_date: $('#sDate').val(),
  1037. end_date: $('#eDate').val(),
  1038. },
  1039. success: function (res) {
  1040. if (res.code == 0) {
  1041. var str = '<div class="numtablebox left mr52">' +
  1042. ' <div class="topnumtit" > 到店</div >' +
  1043. ' <div class="clearfix">' +
  1044. ' <div class="left width50_ everynumtable">' +
  1045. ' <div class="topnum">' + res.data.confirm_shop_num + '</div>' +
  1046. ' <div>客户量</div>' +
  1047. ' </div>' +
  1048. ' <div class="left width50_ everynumtable leftbdr">' +
  1049. ' <div class="topnum">' + res.data.confirm_shop_lv + '</div>' +
  1050. ' <div>转化率</div>' +
  1051. ' </div>' +
  1052. ' </div>' +
  1053. '</div >' +
  1054. '<div class="numtablebox left mr52">' +
  1055. ' <div class="topnumtit">到场</div>' +
  1056. ' <div class="clearfix">' +
  1057. ' <div class="left width50_ everynumtable">' +
  1058. ' <div class="topnum">' + res.data.confirm_present_num + '</div>' +
  1059. ' <div>客户量</div>' +
  1060. ' </div>' +
  1061. ' <div class="left width50_ everynumtable leftbdr">' +
  1062. ' <div class="topnum">' + res.data.confirm_present_lv + '</div>' +
  1063. ' <div>转化率</div>' +
  1064. ' </div>' +
  1065. ' </div>' +
  1066. '</div>' +
  1067. '<div class="numtablebox left ">' +
  1068. ' <div class="topnumtit">量房</div>' +
  1069. ' <div class="clearfix">' +
  1070. ' <div class="left width50_ everynumtable">' +
  1071. ' <div class="topnum">' + res.data.confirm_measure_num + '</div>' +
  1072. ' <div>客户量</div>' +
  1073. ' </div>' +
  1074. ' <div class="left width50_ everynumtable leftbdr">' +
  1075. ' <div class="topnum">' + res.data.confirm_measure_lv + '</div>' +
  1076. ' <div>转化率</div>' +
  1077. ' </div>' +
  1078. ' </div>' +
  1079. '</div>';
  1080. $('.visitDatabox').html(str);
  1081. }
  1082. }
  1083. })
  1084. }
  1085. function arrfun(arr){
  1086. var str='';
  1087. // child
  1088. for(var i in arr){
  1089. str += '<option value="' + arr[i].id + '">' + arr[i].name + '</option>';
  1090. str += arrfun(arr[i].child);
  1091. }
  1092. return str;
  1093. }
  1094. function leftlinefun() {
  1095. $.ajax({
  1096. type: 'post',
  1097. url: '/dashboard/index/signLine.html',
  1098. data: {
  1099. org_id: $('#sel').val(),
  1100. start_date: $('#sDate').val(),
  1101. end_date: $('#eDate').val(),
  1102. },
  1103. success: function (res) {
  1104. if (res.code == 0) {
  1105. var myChart1 = echarts.init(document.getElementById('topleftline'));
  1106. if($('.layui-btn-primary').val()=='1个月'){
  1107. var option1 = {
  1108. xAxis: {
  1109. type: 'category',
  1110. boundaryGap: false,
  1111. splitLine: {
  1112. show: true
  1113. },
  1114. data: res.data.x
  1115. },
  1116. tooltip: {
  1117. trigger: 'axis'
  1118. },
  1119. legend: {
  1120. width: '100%',
  1121. height: 140,
  1122. data: ['1234']
  1123. },
  1124. yAxis: {
  1125. type: 'value',
  1126. splitLine: {
  1127. show: false
  1128. },
  1129. minInterval: 1
  1130. },
  1131. dataZoom: [
  1132. {
  1133. type: 'inside',
  1134. start: 0,
  1135. end: 50
  1136. }
  1137. ],
  1138. series: [
  1139. {
  1140. type: 'line',
  1141. smooth: 0.6,
  1142. markLine: {
  1143. symbol: ['none', 'none'],
  1144. label: { show: false },
  1145. data: []
  1146. },
  1147. data: res.data.y
  1148. }
  1149. ]
  1150. };
  1151. }else{
  1152. var option1 = {
  1153. xAxis: {
  1154. type: 'category',
  1155. boundaryGap: false,
  1156. splitLine: {
  1157. show: true
  1158. },
  1159. data: res.data.x
  1160. },
  1161. tooltip: {
  1162. trigger: 'axis'
  1163. },
  1164. legend: {
  1165. width: '100%',
  1166. height: 140,
  1167. data: ['1234']
  1168. },
  1169. yAxis: {
  1170. type: 'value',
  1171. splitLine: {
  1172. show: false
  1173. },
  1174. minInterval: 1
  1175. },
  1176. series: [
  1177. {
  1178. type: 'line',
  1179. smooth: 0.6,
  1180. markLine: {
  1181. symbol: ['none', 'none'],
  1182. label: { show: false },
  1183. data: []
  1184. },
  1185. data: res.data.y
  1186. }
  1187. ]
  1188. };
  1189. }
  1190. myChart1.setOption(option1);
  1191. $(window).resize(function () {
  1192. myChart1.resize();
  1193. })
  1194. }
  1195. }
  1196. })
  1197. }
  1198. function rightlinefun() {
  1199. $.ajax({
  1200. type: 'post',
  1201. url: '/dashboard/index/depositLine.html',
  1202. data: {
  1203. org_id: $('#sel').val(),
  1204. start_date: $('#sDate').val(),
  1205. end_date: $('#eDate').val(),
  1206. },
  1207. success: function (res) {
  1208. if (res.code == 0) {
  1209. var myChart1 = echarts.init(document.getElementById('toprightline'));
  1210. if ($('.layui-btn-primary').val() == '1个月') {
  1211. var option1 = {
  1212. xAxis: {
  1213. type: 'category',
  1214. boundaryGap: false,
  1215. splitLine: {
  1216. show: true
  1217. },
  1218. data: res.data.x
  1219. },
  1220. tooltip: {
  1221. trigger: 'axis'
  1222. },
  1223. legend: {
  1224. width: '100%',
  1225. height: 140,
  1226. data: ['1234']
  1227. },
  1228. yAxis: {
  1229. type: 'value',
  1230. splitLine: {
  1231. show: false
  1232. },
  1233. minInterval: 1
  1234. },
  1235. dataZoom: [
  1236. {
  1237. type: 'inside',
  1238. start: 0,
  1239. end: 50
  1240. }
  1241. ],
  1242. series: [
  1243. {
  1244. type: 'line',
  1245. smooth: 0.6,
  1246. markLine: {
  1247. symbol: ['none', 'none'],
  1248. label: { show: false },
  1249. data: []
  1250. },
  1251. data: res.data.y
  1252. }
  1253. ]
  1254. };
  1255. } else {
  1256. var option1 = {
  1257. xAxis: {
  1258. type: 'category',
  1259. boundaryGap: false,
  1260. splitLine: {
  1261. show: true
  1262. },
  1263. data: res.data.x
  1264. },
  1265. tooltip: {
  1266. trigger: 'axis'
  1267. },
  1268. legend: {
  1269. width: '100%',
  1270. height: 140,
  1271. data: ['1234']
  1272. },
  1273. yAxis: {
  1274. type: 'value',
  1275. splitLine: {
  1276. show: false
  1277. },
  1278. minInterval: 1
  1279. },
  1280. series: [
  1281. {
  1282. type: 'line',
  1283. smooth: 0.6,
  1284. markLine: {
  1285. symbol: ['none', 'none'],
  1286. label: { show: false },
  1287. data: []
  1288. },
  1289. data: res.data.y
  1290. }
  1291. ]
  1292. };
  1293. }
  1294. myChart1.setOption(option1);
  1295. $(window).resize(function () {
  1296. myChart1.resize();
  1297. })
  1298. }
  1299. }
  1300. })
  1301. }
  1302. function lookfun(params) {
  1303. $.ajax({
  1304. type: 'post',
  1305. url: '/dashboard/index/visitLine.html',
  1306. data: {
  1307. org_id: $('#sel').val(),
  1308. start_date: $('#sDate').val(),
  1309. end_date: $('#eDate').val(),
  1310. },
  1311. success: function (res) {
  1312. if (res.code == 0) {
  1313. var myChart1 = echarts.init(document.getElementById('lookline'));
  1314. if ($('.layui-btn-primary').val() == '1个月') {
  1315. var option1 = {
  1316. xAxis: {
  1317. type: 'category',
  1318. boundaryGap: false,
  1319. splitLine: {
  1320. show: true
  1321. },
  1322. name: '时间',
  1323. data: res.data.x
  1324. },
  1325. tooltip: {
  1326. trigger: 'axis'
  1327. },
  1328. legend: {
  1329. width: '100%',
  1330. data: ['1234']
  1331. },
  1332. yAxis: {
  1333. type: 'value',
  1334. name: '数量',
  1335. splitLine: {
  1336. show: false
  1337. },
  1338. minInterval: 1
  1339. },
  1340. dataZoom: [
  1341. {
  1342. type: 'inside',
  1343. start: 0,
  1344. end: 50
  1345. }
  1346. ],
  1347. series: [
  1348. {
  1349. type: 'line',
  1350. name: '到店',
  1351. smooth: 0.6,
  1352. data: res.data.y[0]
  1353. },
  1354. {
  1355. type: 'line',
  1356. smooth: 0.6,
  1357. name: '到场',
  1358. data: res.data.y[1]
  1359. },
  1360. {
  1361. type: 'line',
  1362. smooth: 0.6,
  1363. name: '量房',
  1364. data: res.data.y[2]
  1365. }
  1366. ]
  1367. };
  1368. } else {
  1369. var option1 = {
  1370. xAxis: {
  1371. type: 'category',
  1372. boundaryGap: false,
  1373. splitLine: {
  1374. show: true
  1375. },
  1376. name: '时间',
  1377. data: res.data.x
  1378. },
  1379. legend: {
  1380. width: '100%',
  1381. data: ['1234']
  1382. },
  1383. tooltip: {
  1384. trigger: 'axis'
  1385. },
  1386. yAxis: {
  1387. type: 'value',
  1388. name: '数量',
  1389. splitLine: {
  1390. show: false
  1391. },
  1392. minInterval: 1
  1393. },
  1394. series: [
  1395. {
  1396. type: 'line',
  1397. name:'到店',
  1398. smooth: 0.6,
  1399. data: res.data.y[0]
  1400. },
  1401. {
  1402. type: 'line',
  1403. smooth: 0.6,
  1404. name: '到场',
  1405. data: res.data.y[1]
  1406. },
  1407. {
  1408. type: 'line',
  1409. smooth: 0.6,
  1410. name: '量房',
  1411. data: res.data.y[2]
  1412. }
  1413. ]
  1414. };
  1415. }
  1416. myChart1.setOption(option1);
  1417. $(window).resize(function () {
  1418. myChart1.resize();
  1419. })
  1420. }
  1421. }
  1422. })
  1423. }
  1424. function cluefun(params) {
  1425. $.ajax({
  1426. type: 'post',
  1427. url: '/dashboard/index/clueLine.html',
  1428. data: {
  1429. org_id: $('#sel').val(),
  1430. start_date: $('#sDate').val(),
  1431. end_date: $('#eDate').val(),
  1432. },
  1433. success: function (res) {
  1434. if (res.code == 0) {
  1435. var myChart1 = echarts.init(document.getElementById('cluelineData'));
  1436. if ($('.layui-btn-primary').val() == '1个月') {
  1437. var option1 = {
  1438. xAxis: {
  1439. type: 'category',
  1440. boundaryGap: false,
  1441. splitLine: {
  1442. show: true
  1443. },
  1444. name: '时间',
  1445. data: res.data.x
  1446. },
  1447. tooltip: {
  1448. trigger: 'axis'
  1449. },
  1450. legend: {
  1451. width: '100%',
  1452. data: ['1234']
  1453. },
  1454. yAxis: {
  1455. type: 'value',
  1456. name: '数量',
  1457. splitLine: {
  1458. show: false
  1459. },
  1460. minInterval: 1
  1461. },
  1462. dataZoom: [
  1463. {
  1464. type: 'inside',
  1465. start: 0,
  1466. end: 50
  1467. }
  1468. ],
  1469. series: [
  1470. {
  1471. type: 'line',
  1472. smooth: 0.6,
  1473. name:'有效线索',
  1474. data: res.data.y[0]
  1475. },
  1476. {
  1477. type: 'line',
  1478. smooth: 0.6,
  1479. name: '无效线索',
  1480. data: res.data.y[1]
  1481. }
  1482. ]
  1483. };
  1484. } else {
  1485. var option1 = {
  1486. xAxis: {
  1487. type: 'category',
  1488. boundaryGap: false,
  1489. splitLine: {
  1490. show: true
  1491. },
  1492. name: '时间',
  1493. data: res.data.x
  1494. },
  1495. legend: {
  1496. width: '100%',
  1497. data: ['1234']
  1498. },
  1499. tooltip: {
  1500. trigger: 'axis'
  1501. },
  1502. yAxis: {
  1503. type: 'value',
  1504. name: '数量',
  1505. splitLine: {
  1506. show: false
  1507. },
  1508. minInterval: 1
  1509. },
  1510. series: [
  1511. {
  1512. type: 'line',
  1513. name: '有效线索',
  1514. smooth: 0.6,
  1515. data: res.data.y[0]
  1516. },
  1517. {
  1518. type: 'line',
  1519. smooth: 0.6,
  1520. name: '无效线索',
  1521. data: res.data.y[1]
  1522. }
  1523. ]
  1524. };
  1525. }
  1526. myChart1.setOption(option1);
  1527. $(window).resize(function () {
  1528. myChart1.resize();
  1529. })
  1530. }
  1531. }
  1532. })
  1533. }
  1534. </script>
  1535. {/block}