general_statistics.html 59 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000
  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 td,
  12. .layui-table-view .layui-table th {
  13. border-color: #ccc !important;
  14. }
  15. .layui-table thead tr,
  16. .layui-table-header {
  17. background-color: #d8e6f1 !important;
  18. }
  19. .line-middle {
  20. width: 10px;
  21. height: 100%;
  22. margin: 0px 10px;
  23. }
  24. .line {
  25. width: 10px;
  26. height: 2px;
  27. background-color: #999999;
  28. }
  29. .mb0 {
  30. margin-bottom: 0px;
  31. }
  32. .layui-btn {
  33. background-color: #fff;
  34. color: #555;
  35. border: 1px solid #c9c9c9;
  36. }
  37. .layui-btn:hover {
  38. background-color: #fff;
  39. color: #555;
  40. border: 1px solid #249efb;
  41. }
  42. .layui-btn-primary,
  43. .sBtn {
  44. background-color: #249efb;
  45. color: #fff;
  46. border: 1px solid #249efb;
  47. }
  48. .layui-btn-primary:hover {
  49. background-color: #249efb;
  50. color: #fff;
  51. border: 1px solid #249efb;
  52. }
  53. .sBtn:hover {
  54. background-color: #249efb;
  55. color: #fff;
  56. border: 1px solid #249efb;
  57. }
  58. .flex-row,
  59. .row {
  60. display: flex;
  61. }
  62. .align-center {
  63. align-items: center;
  64. }
  65. .ml10 {
  66. margin-left: 10px;
  67. }
  68. .mt10 {
  69. margin-top: 10px;
  70. }
  71. .padding-tlr {
  72. padding: 15px 15px 0px;
  73. }
  74. .layui-input-block {
  75. margin-left: 0px;
  76. }
  77. .justify-between {
  78. justify-content: space-between;
  79. }
  80. table tr td a {
  81. color: #249efb;
  82. }
  83. .qdtj_m {
  84. padding: 0 15px;
  85. width: 100%;
  86. box-sizing: border-box;
  87. margin: 20px 0 10px;
  88. }
  89. .qdtj_ul {
  90. overflow: hidden;
  91. border: 1px solid #94d0ff;
  92. padding: 15px 0;
  93. background-color: #fbfdff;
  94. }
  95. .qdtj_ul li {
  96. float: left;
  97. position: relative;
  98. text-align: center;
  99. width: 10%;
  100. }
  101. .qdtj_1 {
  102. font-size: 20px;
  103. font-weight: 400;
  104. }
  105. .qdtj_2 {
  106. font-size: 14px;
  107. color: #888;
  108. margin-top: 5px;
  109. }
  110. .qdtj_r_x {
  111. height: 40px;
  112. width: 1px;
  113. background: #d8d8d9;
  114. position: absolute;
  115. right: 0;
  116. top: 50%;
  117. margin-top: -20px;
  118. }
  119. .layui-card-body .layui-table-body {
  120. overflow-y: auto !important;
  121. height: 65vh;
  122. }
  123. .layui-table-fixed-r .layui-table-body {
  124. overflow: hidden !important;
  125. }
  126. .layui-table-fixed-l .layui-table-body {
  127. overflow: hidden !important;
  128. }
  129. .relative {
  130. position: relative;
  131. }
  132. .lay-setting {
  133. position: absolute;
  134. right: 30px;
  135. top: 20px;
  136. z-index: 999 !important;
  137. cursor: pointer;
  138. }
  139. .selectDateBox {
  140. position: absolute;
  141. width: 330px;
  142. height: 100px;
  143. box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
  144. background-color: #fff;
  145. z-index: 99999 !important;
  146. top: 45px;
  147. box-sizing: border-box;
  148. padding: 5px 8px;
  149. }
  150. .selecstDateBox {
  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. right: 0;
  159. box-sizing: border-box;
  160. padding: 5px 8px;
  161. }
  162. .date-flex,
  163. .date-flex1 {
  164. display: flex;
  165. align-items: center;
  166. }
  167. .date-box {
  168. padding: 15px 0px 10px;
  169. }
  170. .backPreLevel {
  171. color: #249efb;
  172. cursor: pointer;
  173. }
  174. #rangeDepart {
  175. width: 260px;
  176. height: 38px;
  177. }
  178. xm-select>.xm-body {
  179. z-index: 99999 !important;
  180. }
  181. </style>
  182. {/block} {block name="body"}
  183. <div class="layui-fluid" style="background-color: #fff">
  184. <div class="layui-card">
  185. <div class="search-form layui-form padding-tlr">
  186. <div class="flex-row align-center justify-between">
  187. <div class="flex-row align-center">
  188. <!-- <div class="backPreLevel"><i class="layui-icon layui-icon-return"></i>返回</div> -->
  189. <div class="layui-input-block" style="margin-right: 10px;">
  190. <button class="layui-btn ml10" id="tablebtn">导出</button>
  191. </div>
  192. <div class="layui-input-block" style="line-height:36px;">
  193. <a href="javascript:void(0)" id="general-export-list" style="color:#249efb;">查看</a>
  194. </div>
  195. </div>
  196. <div class="flex-row align-center">
  197. <div class="layui-input-block employeeEle">
  198. <input type="text" class="layui-input" id="keyword" autocomplete="off" name="keyword"
  199. placeholder="请输入员工名称" />
  200. </div>
  201. <div class="layui-input-inline layui-form ml10 departEle">
  202. <div id="rangeDepart"></div>
  203. </div>
  204. <div class="layui-input-inline layui-form ml10" style="display: inline-block;width:200px;">
  205. <div class="layui-input-inline select-date relative">
  206. <!-- 注意:这一层元素并不是必须的 -->
  207. <input type="text" class="layui-input" id="sDate" name="start_date" placeholder="开始日期 - 结束日期"
  208. autocomplete="off" />
  209. <div data-type="" class="selecstDateBox layui-hide">
  210. <div data-type="" class="date-flex1">
  211. <div data-type="today" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  212. 今日
  213. </div>
  214. <div data-type="yesterday" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  215. 昨日
  216. </div>
  217. <div data-type="week" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  218. 本周
  219. </div>
  220. <div data-type="lastWeek" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  221. 上周
  222. </div>
  223. <div data-type="month" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  224. 本月
  225. </div>
  226. <div data-type="lastMonth" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  227. 上月
  228. </div>
  229. <div data-type="all" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  230. 累计
  231. </div>
  232. </div>
  233. <div data-type="" class="date-box">
  234. <input data-type="" type="text" id="select_sDate" placeholder="选择开始时间 - 结束时间" readonly
  235. autocomplete="off" class="layui-input" />
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. <button class="layui-btn sBtn ml10 submitbtn" lay-submit lay-filter="table-search">
  241. 筛选
  242. </button>
  243. <button class="layui-btn sBtn ml10" id="resetbtn">重置</button>
  244. </div>
  245. </div>
  246. </div>
  247. <div class="layui-card-body relative">
  248. <i class="layui-icon layui-icon-set-fill lay-setting"></i>
  249. <table lay-filter="datalist" id="list"></table>
  250. </div>
  251. </div>
  252. </div>
  253. {/block} {block name="js"}
  254. <script src="__STATIC__/layui/layui/lay/modules/xm-select.js" type="text/javascript" charset="utf-8"></script>
  255. <script type="text/html" id="forward_housing_count">
  256. {{# if(d.forward_housing_count){ }}
  257. <a
  258. href="javascript:void(0)"
  259. lay-event="forward_housing_count"
  260. style="color:blue;"
  261. >{{d.forward_housing_count}}</a
  262. >
  263. {{# }else{ }}
  264. <span>{{d.forward_housing_count}}</span>
  265. {{# } }}
  266. </script>
  267. <script type="text/html" id="existing_homes_count">
  268. {{# if(d.existing_homes_count){ }}
  269. <a
  270. href="javascript:void(0)"
  271. lay-event="existing_homes_count"
  272. style="color:blue;"
  273. >{{d.existing_homes_count}}</a
  274. >
  275. {{# }else{ }}
  276. <span>{{d.existing_homes_count}}</span>
  277. {{# } }}
  278. </script>
  279. <script type="text/html" id="square_500">
  280. {{# if(d.square_500){ }}
  281. <a href="javascript:void(0)" lay-event="square_500" style="color:blue;"
  282. >{{d.square_500}}</a
  283. >
  284. {{# }else{ }}
  285. <span>{{d.square_500}}</span>
  286. {{# } }}
  287. </script>
  288. <script type="text/html" id="square_200_500">
  289. {{# if(d.square_200_500){ }}
  290. <a href="javascript:void(0)" lay-event="square_200_500" style="color:blue;"
  291. >{{d.square_200_500}}</a
  292. >
  293. {{# }else{ }}
  294. <span>{{d.square_200_500}}</span>
  295. {{# } }}
  296. </script>
  297. <script type="text/html" id="square_120_200">
  298. {{# if(d.square_120_200){ }}
  299. <a href="javascript:void(0)" lay-event="square_120_200" style="color:blue;"
  300. >{{d.square_120_200}}</a
  301. >
  302. {{# }else{ }}
  303. <span>{{d.square_120_200}}</span>
  304. {{# } }}
  305. </script>
  306. <script type="text/html" id="square_100_120">
  307. {{# if(d.square_100_120){ }}
  308. <a href="javascript:void(0)" lay-event="square_100_120" style="color:blue;"
  309. >{{d.square_100_120}}</a
  310. >
  311. {{# }else{ }}
  312. <span>{{d.square_100_120}}</span>
  313. {{# } }}
  314. </script>
  315. <script type="text/html" id="square_80_100">
  316. {{# if(d.square_80_100){ }}
  317. <a href="javascript:void(0)" lay-event="square_80_100" style="color:blue;"
  318. >{{d.square_80_100}}</a
  319. >
  320. {{# }else{ }}
  321. <span>{{d.square_80_100}}</span>
  322. {{# } }}
  323. </script>
  324. <script type="text/html" id="square_0_80">
  325. {{# if(d.square_0_80){ }}
  326. <a href="javascript:void(0)" lay-event="square_0_80" style="color:blue;"
  327. >{{d.square_0_80}}</a
  328. >
  329. {{# }else{ }}
  330. <span>{{d.square_0_80}}</span>
  331. {{# } }}
  332. </script>
  333. <script type="text/html" id="sign_count">
  334. {{# if(d.sign_count){ }}
  335. <a href="javascript:void(0)" lay-event="sign_count" style="color:blue;"
  336. >{{d.sign_count}}</a
  337. >
  338. {{# }else{ }}
  339. <span>{{d.sign_count}}</span>
  340. {{# } }}
  341. </script>
  342. <script type="text/html" id="strtore_deposit_count_2">
  343. {{# if(d.strtore_deposit_count_2){ }}
  344. <a
  345. href="javascript:void(0)"
  346. lay-event="strtore_deposit_count_2"
  347. style="color:blue;"
  348. >{{d.strtore_deposit_count_2}}</a
  349. >
  350. {{# }else{ }}
  351. <span>{{d.strtore_deposit_count_2}}</span>
  352. {{# } }}
  353. </script>
  354. <script type="text/html" id="strtore_deposit_count_1">
  355. {{# if(d.strtore_deposit_count_1){ }}
  356. <a
  357. href="javascript:void(0)"
  358. lay-event="strtore_deposit_count_1"
  359. style="color:blue;"
  360. >{{d.strtore_deposit_count_1}}</a
  361. >
  362. {{# }else{ }}
  363. <span>{{d.strtore_deposit_count_1}}</span>
  364. {{# } }}
  365. </script>
  366. <script type="text/html" id="strtore_deposit_count_0">
  367. {{# if(d.strtore_deposit_count_0){ }}
  368. <a
  369. href="javascript:void(0)"
  370. lay-event="strtore_deposit_count_0"
  371. style="color:blue;"
  372. >{{d.strtore_deposit_count_0}}</a
  373. >
  374. {{# }else{ }}
  375. <span>{{d.strtore_deposit_count_0}}</span>
  376. {{# } }}
  377. </script>
  378. <script type="text/html" id="strtore_count_0">
  379. {{# if(d.to_the_store_1){ }}
  380. <a href="javascript:void(0)" lay-event="strtore_count_0" style="color:blue;"
  381. >{{d.to_the_store_1}}</a
  382. >
  383. {{# }else{ }}
  384. <span>{{d.to_the_store_1}}</span>
  385. {{# } }}
  386. </script>
  387. <script type="text/html" id="strtore_count_1">
  388. {{# if(d.to_the_store_2){ }}
  389. <a href="javascript:void(0)" lay-event="strtore_count_1" style="color:blue;"
  390. >{{d.to_the_store_2}}</a
  391. >
  392. {{# }else{ }}
  393. <span>{{d.to_the_store_2}}</span>
  394. {{# } }}
  395. </script>
  396. <script type="text/html" id="strtore_count_2">
  397. {{# if(d.to_the_store_3){ }}
  398. <a href="javascript:void(0)" lay-event="strtore_count_2" style="color:blue;"
  399. >{{d.to_the_store_3}}</a
  400. >
  401. {{# }else{ }}
  402. <span>{{d.to_the_store_3}}</span>
  403. {{# } }}
  404. </script>
  405. <script type="text/html" id="yuji_store">
  406. {{# if(d.yuji_store){ }}
  407. <a href="javascript:void(0)" lay-event="yuji_store" style="color:blue;"
  408. >{{d.yuji_store}}</a
  409. >
  410. {{# }else{ }}
  411. <span>{{d.yuji_store}}</span>
  412. {{# } }}
  413. </script>
  414. <script type="text/html" id="room">
  415. {{# if(d.measuring_room_customer){ }}
  416. <a href="javascript:void(0)" lay-event="room" style="color:blue;"
  417. >{{d.measuring_room_customer}}</a
  418. >
  419. {{# }else{ }}
  420. <span>{{d.measuring_room_customer}}</span>
  421. {{# } }}
  422. </script>
  423. <script type="text/html" id="drawing_date_count">
  424. {{# if(d.drawing_date_count){ }}
  425. <a
  426. href="javascript:void(0)"
  427. lay-event="drawing_date_count"
  428. style="color:blue;"
  429. >{{d.drawing_date_count}}</a
  430. >
  431. {{# }else{ }}
  432. <span>{{d.drawing_date_count}}</span>
  433. {{# } }}
  434. </script>
  435. <script type="text/html" id="measuring_room_customer_no_to_store">
  436. {{# if(d.measuring_room_customer_no_to_store){ }}
  437. <a
  438. href="javascript:void(0)"
  439. lay-event="measuring_room_customer_no_to_store"
  440. style="color:blue;"
  441. >{{d.measuring_room_customer_no_to_store}}</a
  442. >
  443. {{# }else{ }}
  444. <span>{{d.measuring_room_customer_no_to_store}}</span>
  445. {{# } }}
  446. </script>
  447. <script type="text/html" id="valid_no_wechat">
  448. {{# if(d.valid_no_wechat){ }}
  449. <a href="javascript:void(0)" lay-event="valid_no_wechat" style="color:blue;"
  450. >{{d.valid_no_wechat}}</a
  451. >
  452. {{# }else{ }}
  453. <span>{{d.valid_no_wechat}}</span>
  454. {{# } }}
  455. </script>
  456. <script type="text/html" id="valid_count">
  457. {{# if(d.valid_count){ }}
  458. <a href="javascript:void(0)" lay-event="valid_count" style="color:blue;"
  459. >{{d.valid_count}}</a
  460. >
  461. {{# }else{ }}
  462. <span>{{d.valid_count}}</span>
  463. {{# } }}
  464. </script>
  465. <script type="text/html" id="deposit_count">
  466. {{# if(d.deposit_count){ }}
  467. <a href="javascript:void(0)" lay-event="deposit_count" style="color:blue;"
  468. >{{d.deposit_count}}</a
  469. >
  470. {{# }else{ }}
  471. <span>{{d.deposit_count}}</span>
  472. {{# } }}
  473. </script>
  474. <script type="text/html" id="reported_quantity">
  475. {{# if(d.reported_quantity){ }}
  476. <a href="javascript:void(0)" lay-event="reported_quantity" style="color:blue;"
  477. >{{d.reported_quantity}}</a
  478. >
  479. {{# }else{ }}
  480. <span>{{d.reported_quantity}}</span>
  481. {{# } }}
  482. </script>
  483. <script type="text/html" id="following_up_count">
  484. {{# if(d.following_up_count){ }}
  485. <a
  486. href="javascript:void(0)"
  487. lay-event="following_up_count"
  488. style="color:blue;"
  489. >{{d.following_up_count}}</a
  490. >
  491. {{# }else{ }}
  492. <span>{{d.following_up_count}}</span>
  493. {{# } }}
  494. </script>
  495. <script type="text/html" id="resource_count">
  496. {{# if(d.resource_count){ }}
  497. <a href="javascript:void(0)" lay-event="resource_count" style="color:blue;"
  498. >{{d.resource_count}}</a
  499. >
  500. {{# }else{ }}
  501. <span>{{d.resource_count}}</span>
  502. {{# } }}
  503. </script>
  504. <script type="text/html" id="shares_count">
  505. {{# if(d.shares_count){ }}
  506. <a href="javascript:void(0)" lay-event="shares_count" style="color:blue;"
  507. >{{d.shares_count}}</a
  508. >
  509. {{# }else{ }}
  510. <span>{{d.shares_count}}</span>
  511. {{# } }}
  512. </script>
  513. <script type="text/html" id="add_wechat_count">
  514. {{# if(d.add_wechat_count){ }}
  515. <a href="javascript:void(0)" lay-event="add_wechat_count" style="color:blue;"
  516. >{{d.add_wechat_count}}</a
  517. >
  518. {{# }else{ }}
  519. <span>{{d.add_wechat_count}}</span>
  520. {{# } }}
  521. </script>
  522. <script type="text/html" id="number_of_explanations">
  523. {{# if(d.number_of_explanations){ }}
  524. <a
  525. href="javascript:void(0)"
  526. lay-event="number_of_explanations"
  527. style="color:blue;"
  528. >{{d.number_of_explanations}}</a
  529. >
  530. {{# }else{ }}
  531. <span>{{d.number_of_explanations}}</span>
  532. {{# } }}
  533. </script>
  534. <script>
  535. layui.use(["table", "form", "laydate", "element"], function () {
  536. let table = layui.table,
  537. laydate = layui.laydate,
  538. form = layui.form,
  539. element = layui.element,
  540. $ = layui.$;
  541. var valType = "{$type}";
  542. var orgId = "{$org_id}";
  543. $("body").attr("layadmin-themealias", "default");
  544. var bodyH = $(".body-h").height() * 0.82;
  545. var istypes = 0;
  546. document.onkeydown = function (event) {
  547. var e = event || window.event || arguments.callee.caller.arguments[0];
  548. if (e && e.keyCode == 13) {
  549. $(".submitbtn").trigger("click");
  550. }
  551. };
  552. //执行一个laydate实例
  553. // laydate.render({
  554. // elem: "#sDate", //指定元素
  555. // });
  556. // laydate.render({
  557. // elem: "#eDate", //指定元素
  558. // });
  559. $("#addWechatTime").click(function () {
  560. $(".selectDateBox").toggleClass("layui-hide");
  561. $(".selecstDateBox").addClass("layui-hide");
  562. });
  563. $("#sDate").click(function () {
  564. $(".selecstDateBox").toggleClass("layui-hide");
  565. $(".selectDateBox").addClass("layui-hide");
  566. });
  567. laydate.render({
  568. elem: "#select_date",
  569. type: "date",
  570. range: true,
  571. format: "yyyy/MM/dd",
  572. trigger: "click", //呼出事件改成click
  573. done: function (value, date, endDate) {
  574. $(".selectDateBox").addClass("layui-hide");
  575. $("#addWechatTime").val(value);
  576. },
  577. });
  578. laydate.render({
  579. elem: "#select_sDate", //指定元素
  580. type: "date",
  581. format: "yyyy/MM/dd",
  582. range: true,
  583. trigger: "click", //呼出事件改成click
  584. done: function (value, date, endDate) {
  585. $(".selecstDateBox").addClass("layui-hide");
  586. $("#sDate").val(value);
  587. },
  588. });
  589. var dateObj = {};
  590. setDate();
  591. function setDate() {
  592. let date = new Date();
  593. let year = date.getFullYear();
  594. let month = date.getMonth() + 1;
  595. let day = date.getDate();
  596. let lastDate = new Date(new Date().getTime() - 1 * 24 * 60 * 60 * 1000);
  597. let lastYear = lastDate.getFullYear();
  598. let lastMonth = lastDate.getMonth() + 1;
  599. let lastDay = lastDate.getDate();
  600. let weekObj = getMondayAndSunday();
  601. let monthObj = getMonthFirstDayAndLastDay();
  602. dateObj = {
  603. today: `${year}/${month}/${day}`,
  604. yesterday: `${lastYear}/${lastMonth}/${lastDay}`,
  605. ...weekObj,
  606. ...monthObj,
  607. };
  608. }
  609. var departTree = xmSelect.render({
  610. el: "#rangeDepart",
  611. name: 'org_id',
  612. autoRow: true,
  613. filterable: true,
  614. tips: '请选择',
  615. radio: true,
  616. tree: {
  617. show: true,
  618. showFolderIcon: true,
  619. showLine: true,
  620. indent: 20,
  621. expandedKeys: [-3],
  622. //是否严格遵守父子模式
  623. strict: false,
  624. },
  625. height: "200px",
  626. data: [],
  627. //文本显示模式
  628. //处理方式
  629. });
  630. $.ajax({
  631. url: '{:url("statistics/get_person")}',
  632. type: "post",
  633. data: {},
  634. success: function (res) {
  635. departTree.update({ data: res })
  636. }
  637. })
  638. $(".date-flex div").click(function () {
  639. let type = $(this).prop("dataset").type;
  640. if (type == "today") {
  641. $("#select_date").val(`${dateObj.today} - ${dateObj.today}`);
  642. $("#addWechatTime").val(`${dateObj.today} - ${dateObj.today}`);
  643. } else if (type == "yesterday") {
  644. $("#select_date").val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
  645. $("#addWechatTime").val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
  646. } else if (type == "week") {
  647. $("#select_date").val(
  648. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  649. );
  650. $("#addWechatTime").val(
  651. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  652. );
  653. } else if (type == "lastWeek") {
  654. $("#select_date").val(
  655. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  656. );
  657. $("#addWechatTime").val(
  658. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  659. );
  660. } else if (type == "month") {
  661. $("#select_date").val(
  662. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  663. );
  664. $("#addWechatTime").val(
  665. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  666. );
  667. } else if (type == "lastMonth") {
  668. $("#select_date").val(
  669. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  670. );
  671. $("#addWechatTime").val(
  672. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  673. );
  674. } else {
  675. $("#select_date").val("");
  676. $("#sDate").val("");
  677. $("#addWechatTime").val("");
  678. }
  679. $(".selectDateBox").addClass("layui-hide");
  680. });
  681. $(".date-flex1 div").click(function () {
  682. let type = $(this).prop("dataset").type;
  683. if (type == "today") {
  684. itmesss = dateToYYYYMMDD(dateObj.today);
  685. itmesss2 = dateToYYYYMMDD(dateObj.today);
  686. $('#select_sDate').val(itmesss + ' - ' + itmesss2);
  687. $('#sDate').val(itmesss + ' - ' + itmesss2);
  688. } else if (type == "yesterday") {
  689. itmesss = dateToYYYYMMDD(dateObj.yesterday);
  690. itmesss2 = dateToYYYYMMDD(dateObj.yesterday);
  691. $('#select_sDate').val(itmesss + ' - ' + itmesss2);
  692. $('#sDate').val(itmesss + ' - ' + itmesss2);
  693. } else if (type == "week") {
  694. $("#select_sDate").val(
  695. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  696. );
  697. $("#sDate").val(
  698. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`
  699. );
  700. } else if (type == "lastWeek") {
  701. $("#select_sDate").val(
  702. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  703. );
  704. $("#sDate").val(
  705. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`
  706. );
  707. } else if (type == "month") {
  708. $("#select_sDate").val(
  709. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  710. );
  711. $("#sDate").val(
  712. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  713. );
  714. } else if (type == "lastMonth") {
  715. $("#select_sDate").val(
  716. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  717. );
  718. $("#sDate").val(
  719. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  720. );
  721. } else {
  722. $("#select_sDate").val("");
  723. $("#sDate").val("");
  724. }
  725. $(".selecstDateBox").addClass("layui-hide");
  726. });
  727. function getMondayAndSunday() {
  728. var today = new Date();
  729. //构建当前日期,格式:2022-08-22 00:00:00
  730. var year = today.getFullYear(); //本年
  731. var month = today.getMonth() + 1; //本月
  732. var day = today.getDate(); //本日
  733. var newDate = new Date(year + "/" + month + "/" + day + " 00:00:00"); //年月日拼接
  734. var nowTime = newDate.getTime(); //当前的时间戳
  735. var weekDay = newDate.getDay(); //当前星期 0.1.2.3.4.5.6 【0 = 周日】
  736. var oneDayTime = 24 * 60 * 60 * 1000; //一天的总ms
  737. // 当前星期减去天数,如今天为周五,则本周一为周五的时间戳减去4天的时间戳。但周日特殊,周一至周六是周几的到的weekDay就是几,但是周日的到的为0,需特殊处理
  738. var thisWeekMondayTime = (1 - weekDay) * oneDayTime + nowTime; //本周一的时间戳
  739. if (weekDay == 0) {
  740. // weekDay = 0 为周日,此时本周一时间为周日减去6天的时间
  741. thisWeekMondayTime = nowTime - 6 * oneDayTime;
  742. }
  743. var thisWeekSundayTime = thisWeekMondayTime + 6 * 24 * 60 * 60 * 1000; // 本周日
  744. var lastWeekMondayTime = thisWeekMondayTime - 7 * oneDayTime; // 上周一
  745. var lastWeekSundayTime = thisWeekMondayTime - oneDayTime; // 上周日
  746. var res = {
  747. thisWeekMonday: dateToYYYYMMDD(thisWeekMondayTime),
  748. thisWeekSunday: dateToYYYYMMDD(thisWeekSundayTime),
  749. lastWeekMonday: dateToYYYYMMDD(lastWeekMondayTime),
  750. lastWeekSunday: dateToYYYYMMDD(lastWeekSundayTime),
  751. };
  752. return res;
  753. }
  754. function getMonthFirstDayAndLastDay() {
  755. var date = new Date();
  756. // 值得注意的是,如果day取值为0,意味着取的是date时间的上一个月的最后一天,简单理解:date当前月的第一天,再减去一天
  757. var thisMonthFirstDay = date.setDate(1); // 本月第一天
  758. var thisMonthLastDay = new Date(
  759. date.getFullYear(),
  760. date.getMonth() + 1,
  761. 0
  762. ); // 本月最后一天
  763. var lastMonthFirstDay = new Date(
  764. date.getFullYear(),
  765. date.getMonth() - 1,
  766. 1
  767. ); // 上月第一天
  768. var lastMonthLastDay = date.setDate(0); // 上月最后一天
  769. // var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate()
  770. // var lastMonthLastDay = new Date(date.getFullYear(), date.getMonth() - 1, day) // 上月最后一天
  771. var res = {
  772. thisMonthFirstDay: dateToYYYYMMDD(thisMonthFirstDay),
  773. thisMonthLastDay: dateToYYYYMMDD(thisMonthLastDay),
  774. lastMonthFirstDay: dateToYYYYMMDD(lastMonthFirstDay),
  775. lastMonthLastDay: dateToYYYYMMDD(lastMonthLastDay),
  776. };
  777. return res;
  778. }
  779. function dateToYYYYMMDD(date) {
  780. var time = new Date(date);
  781. var y = time.getFullYear();
  782. var m = time.getMonth() + 1;
  783. m = m > 9 ? m : "0" + m;
  784. var d = time.getDate();
  785. d = d > 9 ? d : "0" + d;
  786. return y + "/" + m + "/" + d;
  787. }
  788. if (valType != 2) {
  789. $('.backPreLevel').addClass('layui-hide');
  790. $('.employeeEle').addClass('layui-hide');
  791. } else {
  792. // $('.departEle').addClass('layui-hide');
  793. }
  794. var data = [];
  795. window.parent.ajaxslist = function () {
  796. ajaxlist();
  797. };
  798. $('.backPreLevel').click(function () {
  799. window.history.back();
  800. })
  801. ajaxlist();
  802. function ajaxlist() {
  803. $.ajax({
  804. type: "post",
  805. url: '{:url("statistics/fieldList")}',
  806. data: {
  807. type: 5,
  808. is_org: 2, //orgId ? 2 : 1
  809. },
  810. success: function (res) {
  811. data = res.data;
  812. tableData = JSON.parse(JSON.stringify(data));
  813. let col3 = data;
  814. let col3Arr = [];
  815. Object.keys(col3).forEach((key) => {
  816. if (key == "name" && col3[key].show == 1) {
  817. col3Arr.push({
  818. field: "name",
  819. title: col3[key]["name"],
  820. align: "center",
  821. ...col3[key],
  822. fixed: "left",
  823. });
  824. } else if (key == "org_name" && col3[key].show == 1) {
  825. col3Arr.push({
  826. field: "org_name",
  827. title: col3[key]["name"],
  828. align: "center",
  829. ...col3[key],
  830. fixed: "left",
  831. templet: function (res) {
  832. if (valType != 2) {
  833. return `<a href="generalStatistics.html?type=2&org_id=${res.org_id}">${res.org_name}</a>`;
  834. } else {
  835. return `<span>${res.org_name}</span>`
  836. }
  837. }
  838. });
  839. } else if (key == "behavior" && col3[key].show == 1) {
  840. col3Arr.push({
  841. field: "behavior",
  842. title: col3[key]["name"],
  843. align: "center",
  844. ...col3[key],
  845. });
  846. } else if (key == "customer" && col3[key].show == 1) {
  847. col3Arr.push({
  848. field: "customer",
  849. title: col3[key]["name"],
  850. align: "center",
  851. ...col3[key],
  852. });
  853. } else if (key == "house" && col3[key].show == 1) {
  854. col3Arr.push({
  855. field: "house",
  856. title: col3[key]["name"],
  857. align: "center",
  858. ...col3[key],
  859. });
  860. } else if (key == "add_wechat_count" && col3[key].show == 1) {
  861. col3Arr.push({
  862. field: key,
  863. title: col3[key]["name"],
  864. align: "center",
  865. templet: "#add_wechat_count",
  866. ...col3[key],
  867. });
  868. } else if (key == "shares_count" && col3[key].show == 1) {
  869. col3Arr.push({
  870. field: key,
  871. title: col3[key]["name"],
  872. align: "center",
  873. templet: "#shares_count",
  874. ...col3[key],
  875. });
  876. } else if (key == "number_of_explanations" && col3[key].show == 1) {
  877. col3Arr.push({
  878. field: key,
  879. title: col3[key]["name"],
  880. align: "center",
  881. templet: "#number_of_explanations",
  882. ...col3[key],
  883. });
  884. } else if (key == "valid_count" && col3[key].show == 1) {
  885. col3Arr.push({
  886. field: key,
  887. title: col3[key]["name"],
  888. align: "center",
  889. templet: "#valid_count",
  890. ...col3[key],
  891. });
  892. } else if (key == "valid_no_wechat" && col3[key].show == 1) {
  893. col3Arr.push({
  894. field: key,
  895. title: col3[key]["name"],
  896. align: "center",
  897. templet: "#valid_no_wechat",
  898. ...col3[key],
  899. });
  900. } else if (
  901. key == "measuring_room_customer_no_to_store" &&
  902. col3[key].show == 1
  903. ) {
  904. col3Arr.push({
  905. field: key,
  906. title: col3[key]["name"],
  907. align: "center",
  908. templet: "#measuring_room_customer_no_to_store",
  909. ...col3[key],
  910. });
  911. } else if (key == "drawing_date_count" && col3[key].show == 1) {
  912. col3Arr.push({
  913. field: key,
  914. title: col3[key]["name"],
  915. align: "center",
  916. templet: "#drawing_date_count",
  917. ...col3[key],
  918. });
  919. } else if (
  920. key == "measuring_room_customer" &&
  921. col3[key].show == 1
  922. ) {
  923. col3Arr.push({
  924. field: key,
  925. title: col3[key]["name"],
  926. align: "center",
  927. templet: "#room",
  928. ...col3[key],
  929. });
  930. } else if (key == "yuji_store" && col3[key].show == 1) {
  931. col3Arr.push({
  932. field: key,
  933. title: col3[key]["name"],
  934. align: "center",
  935. templet: "#yuji_store",
  936. ...col3[key],
  937. });
  938. } else if (key == "sign_count" && col3[key].show == 1) {
  939. col3Arr.push({
  940. field: key,
  941. title: col3[key]["name"],
  942. align: "center",
  943. templet: "#sign_count",
  944. ...col3[key],
  945. });
  946. } else if (key == "existing_homes_count" && col3[key].show == 1) {
  947. col3Arr.push({
  948. field: key,
  949. title: col3[key]["name"],
  950. align: "center",
  951. templet: "#existing_homes_count",
  952. ...col3[key],
  953. });
  954. } else if (key == "forward_housing_count" && col3[key].show == 1) {
  955. col3Arr.push({
  956. field: key,
  957. title: col3[key]["name"],
  958. align: "center",
  959. templet: "#forward_housing_count",
  960. ...col3[key],
  961. });
  962. } else if (
  963. (key == "call_count" ||
  964. key == "daodian_count" ||
  965. key == "daodian_avg" ||
  966. key == "daodian_grawth" ||
  967. key == "daodian_deposit" ||
  968. key == "daodian_deposit_grawth") &&
  969. col3[key].show == 1
  970. ) {
  971. col3Arr.push({
  972. field: key,
  973. title: col3[key]["name"],
  974. align: "center",
  975. ...col3[key],
  976. });
  977. } else if (key == "exam_data" && col3[key].show == 1) {
  978. col3Arr.push({
  979. field: key,
  980. title: col3[key]["name"],
  981. align: "center",
  982. ...col3[key],
  983. });
  984. } else if (key == "customer_data" && col3[key].show == 1) {
  985. col3Arr.push({
  986. field: key,
  987. title: col3[key]["name"],
  988. align: "center",
  989. ...col3[key],
  990. });
  991. } else if (key == "area" && col3[key].show == 1) {
  992. col3Arr.push({
  993. field: key,
  994. title: col3[key]["name"],
  995. align: "center",
  996. });
  997. } else if (key == "died_customer" && col3[key].show == 1) {
  998. col3Arr.push({
  999. field: key,
  1000. title: col3[key]["name"],
  1001. align: "center",
  1002. ...col3[key],
  1003. });
  1004. } else if (key == "resource_count" && col3[key].show == 1) {
  1005. col3Arr.push({
  1006. field: key,
  1007. title: col3[key]["name"],
  1008. align: "center",
  1009. templet: "#resource_count",
  1010. ...col3[key],
  1011. });
  1012. } else if (key == "following_up_count" && col3[key].show == 1) {
  1013. col3Arr.push({
  1014. field: key,
  1015. title: col3[key]["name"],
  1016. align: "center",
  1017. templet: "#following_up_count",
  1018. ...col3[key],
  1019. });
  1020. } else if (key == "deposit_count" && col3[key].show == 1) {
  1021. col3Arr.push({
  1022. field: key,
  1023. title: col3[key]["name"],
  1024. align: "center",
  1025. templet: "#deposit_count",
  1026. ...col3[key],
  1027. });
  1028. } else if (key == "reported_quantity" && col3[key].show == 1) {
  1029. col3Arr.push({
  1030. field: key,
  1031. title: col3[key]["name"],
  1032. align: "center",
  1033. templet: "#reported_quantity",
  1034. ...col3[key],
  1035. });
  1036. } else if (key == "to_the_store_1" && col3[key].show == 1) {
  1037. col3Arr.push({
  1038. field: key,
  1039. title: col3[key]["name"],
  1040. align: "center",
  1041. templet: "#strtore_count_0",
  1042. ...col3[key],
  1043. });
  1044. } else if (key == "to_the_store_2" && col3[key].show == 1) {
  1045. col3Arr.push({
  1046. field: key,
  1047. title: col3[key]["name"],
  1048. align: "center",
  1049. templet: "#strtore_count_1",
  1050. ...col3[key],
  1051. });
  1052. } else if (key == "to_the_store_3" && col3[key].show == 1) {
  1053. col3Arr.push({
  1054. field: key,
  1055. title: col3[key]["name"],
  1056. align: "center",
  1057. templet: "#strtore_count_2",
  1058. ...col3[key],
  1059. });
  1060. }else if (key == "strtore_2v1" && col3[key].show == 1) {
  1061. col3Arr.push({
  1062. field: key,
  1063. title: col3[key]["name"],
  1064. align: "center",
  1065. ...col3[key],
  1066. });
  1067. } else if (
  1068. key == "strtore_deposit_count_0" &&
  1069. col3[key].show == 1
  1070. ) {
  1071. col3Arr.push({
  1072. field: key,
  1073. title: col3[key]["name"],
  1074. align: "center",
  1075. templet: "#strtore_deposit_count_0",
  1076. ...col3[key],
  1077. });
  1078. } else if (
  1079. key == "strtore_deposit_count_1" &&
  1080. col3[key].show == 1
  1081. ) {
  1082. col3Arr.push({
  1083. field: key,
  1084. title: col3[key]["name"],
  1085. align: "center",
  1086. templet: "#strtore_deposit_count_1",
  1087. ...col3[key],
  1088. });
  1089. } else if (
  1090. key == "strtore_deposit_count_2" &&
  1091. col3[key].show == 1
  1092. ) {
  1093. col3Arr.push({
  1094. field: key,
  1095. title: col3[key]["name"],
  1096. align: "center",
  1097. templet: "#strtore_deposit_count_2",
  1098. ...col3[key],
  1099. });
  1100. } else if (key == "square_0_80" && col3[key].show == 1) {
  1101. col3Arr.push({
  1102. field: key,
  1103. title: col3[key]["name"],
  1104. align: "center",
  1105. templet: "#square_0_80",
  1106. ...col3[key],
  1107. });
  1108. } else if (key == "square_80_100" && col3[key].show == 1) {
  1109. col3Arr.push({
  1110. field: key,
  1111. title: col3[key]["name"],
  1112. align: "center",
  1113. templet: "#square_80_100",
  1114. ...col3[key],
  1115. });
  1116. } else if (key == "square_100_120" && col3[key].show == 1) {
  1117. col3Arr.push({
  1118. field: key,
  1119. title: col3[key]["name"],
  1120. align: "center",
  1121. templet: "#square_100_120",
  1122. ...col3[key],
  1123. });
  1124. } else if (key == "square_120_200" && col3[key].show == 1) {
  1125. col3Arr.push({
  1126. field: key,
  1127. title: col3[key]["name"],
  1128. align: "center",
  1129. templet: "#square_120_200",
  1130. ...col3[key],
  1131. });
  1132. } else if (key == "square_200_500" && col3[key].show == 1) {
  1133. col3Arr.push({
  1134. field: key,
  1135. title: col3[key]["name"],
  1136. align: "center",
  1137. templet: "#square_200_500",
  1138. ...col3[key],
  1139. });
  1140. } else if (key == "square_500" && col3[key].show == 1) {
  1141. col3Arr.push({
  1142. field: key,
  1143. title: col3[key]["name"],
  1144. align: "center",
  1145. templet: "#square_500",
  1146. ...col3[key],
  1147. });
  1148. } else if (
  1149. col3[key].parent == "died_customer" &&
  1150. col3[key].show == 1
  1151. ) {
  1152. let i = key.substring(key.length - 1, key.length);
  1153. col3Arr.push({
  1154. field: key,
  1155. title: col3[key]["name"],
  1156. align: "center",
  1157. ...col3[key],
  1158. templet: function (res) {
  1159. var ls = `${res[key]}`;
  1160. if (ls != 0) {
  1161. return (
  1162. `<a href="javascript:void(0)" data-key=` +
  1163. i +
  1164. ` lay-event="invalid" style="color:blue;">${res[key]}</a>`
  1165. );
  1166. } else {
  1167. return ls;
  1168. }
  1169. },
  1170. });
  1171. } else {
  1172. // if (
  1173. // col3[key].show == 1 &&
  1174. // key != col3[key].parent &&
  1175. // returnBol(col3[key].parent)
  1176. // ) {
  1177. // col3Arr.push({
  1178. // field: key,
  1179. // title: col3[key]["name"],
  1180. // align: "center",
  1181. // ...col3[key],
  1182. // });
  1183. // }
  1184. col3Arr.push({
  1185. field: key,
  1186. title: col3[key]["name"],
  1187. align: "center",
  1188. ...col3[key],
  1189. });
  1190. }
  1191. });
  1192. col3Arr.push({
  1193. title: "",
  1194. width: 30,
  1195. align: "center",
  1196. fixed: "right",
  1197. });
  1198. let cols = [col3Arr];
  1199. let url = '{:url("statistics/generalStatisticsData")}';
  1200. table.render({
  1201. elem: "#list",
  1202. url: url,
  1203. where: {
  1204. type: valType,//org_id: orgId
  1205. },
  1206. page: true,
  1207. height: bodyH,
  1208. cols: cols,
  1209. id: "tablelist",
  1210. limit: 50,
  1211. done: function (res) { },
  1212. });
  1213. },
  1214. });
  1215. }
  1216. function setOneLevelShow(field, data3) {
  1217. let arr = [];
  1218. Object.keys(data3).forEach((key) => {
  1219. if (field == data3[key].parent || key == field) {
  1220. arr.push(data3[key].show);
  1221. }
  1222. });
  1223. return arr.every((v) => v == 0) && arr.length != 0 ? 0 : 1;
  1224. }
  1225. function returnBol(key) {
  1226. return (
  1227. key != "name" &&
  1228. key != "org_name" &&
  1229. key != "behavior" &&
  1230. key != "customer" &&
  1231. key != "house"
  1232. );
  1233. }
  1234. function getCalculationColspan(field, data) {
  1235. let num = 0;
  1236. Object.keys(data).forEach((key) => {
  1237. if (data[key].parent == field && data[key].show == 1) {
  1238. num++;
  1239. }
  1240. });
  1241. return num;
  1242. }
  1243. function getCalculationColspanOne(field, data, data3) {
  1244. let num = 0;
  1245. Object.keys(data).forEach((key) => {
  1246. if (data[key].parent == field && data[key].show == 1 && key != field) {
  1247. num = num + getCalculationColspanTwo(key, data3);
  1248. }
  1249. });
  1250. return num;
  1251. }
  1252. function getCalculationColspanTwo(field, data) {
  1253. let num = 0;
  1254. Object.keys(data).forEach((key) => {
  1255. if (data[key].parent == field && data[key].show == 1) {
  1256. num++;
  1257. }
  1258. });
  1259. return num || 1;
  1260. }
  1261. $(".lay-setting").click(function () {
  1262. let arr = [];
  1263. $.each(tableData, function (key, val) {
  1264. if (key != 'org_name' && key != 'name') {
  1265. arr.push({ ...val, field: key });
  1266. }
  1267. });
  1268. localStorage.setItem('XQ$SORT', '5');
  1269. window.parent.dialogFunc(arr, 5);
  1270. });
  1271. function setYMD(time) {
  1272. let dateTime = new Date(time);
  1273. let year = dateTime.getFullYear();
  1274. let Month = dateTime.getMonth() + 1;
  1275. let days = dateTime.getDate();
  1276. return `${year}-${Month > 9 ? Month : "0" + Month}-${days > 9 ? days : "0" + days}`;
  1277. }
  1278. var dateArr = {};
  1279. var today = new Date().getTime();
  1280. var oneTime = 24 * 60 * 60 * 1000;
  1281. var threeDay1 = today - 3 * oneTime;
  1282. var sevenDay1 = today - 6 * oneTime;
  1283. var oneMonth = today - 30 * oneTime;
  1284. dateArr = {
  1285. nowS: setYMD(today),
  1286. nowE: setYMD(today),
  1287. threeDayS: setYMD(threeDay1),
  1288. threeDayE: setYMD(today),
  1289. sevenDayS: setYMD(sevenDay1),
  1290. sevenDayE: setYMD(today),
  1291. oneMonthS: setYMD(oneMonth),
  1292. oneMonthE: setYMD(today),
  1293. };
  1294. $("#timeBtn").on("click", function (e) {
  1295. if (!!(e.target.localName != "input")) return;
  1296. let o = document.querySelector("#timeBtn").children;
  1297. if (e.target.classList.contains("layui-btn-primary") == true) {
  1298. for (var i = 0; i < o.length; i++) {
  1299. o[i].className = "layui-btn";
  1300. }
  1301. $("#sDate").val("");
  1302. $("#eDate").val("");
  1303. return;
  1304. } else {
  1305. for (var i = 0; i < o.length; i++) {
  1306. o[i].className = "layui-btn";
  1307. }
  1308. e.target.className = "layui-btn layui-btn-primary";
  1309. if (!!(e.target.className.indexOf("layui-btn-primary") > 0)) {
  1310. if (e.target.value == "今日") {
  1311. $("#sDate").val(dateArr.nowS);
  1312. $("#eDate").val(dateArr.nowE);
  1313. } else if (e.target.value == "3天") {
  1314. $("#sDate").val(dateArr.threeDayS);
  1315. $("#eDate").val(dateArr.threeDayE);
  1316. } else if (e.target.value == "7天") {
  1317. $("#sDate").val(dateArr.sevenDayS);
  1318. $("#eDate").val(dateArr.sevenDayE);
  1319. } else {
  1320. $("#sDate").val(dateArr.oneMonthS);
  1321. $("#eDate").val(dateArr.oneMonthE);
  1322. }
  1323. }
  1324. }
  1325. });
  1326. form.on("submit(table-search)", function (data) {
  1327. let field = data.field;
  1328. let element = $(".layui-btn-primary");
  1329. if (element && element[0]) {
  1330. let el = element[0].value;
  1331. }
  1332. if (valType == 2) {
  1333. field.type = valType;
  1334. // field.org_id = orgId;
  1335. }
  1336. let option = {
  1337. where: { ...field },
  1338. page: {
  1339. curr: 1,
  1340. },
  1341. };
  1342. //执行重载
  1343. table.reload("tablelist", option);
  1344. });
  1345. //重置
  1346. $("#resetbtn").click(function () {
  1347. $("#keyword").val("");
  1348. $("#sDate").val("");
  1349. $("#eDate").val("");
  1350. $("#timeBtn input").attr("class", "layui-btn");
  1351. layui.form.render();
  1352. departTree.setValue([]);
  1353. let option = {
  1354. where: { keyword: "", start_date: "", end_date: "", type: valType, org_id: '' },
  1355. page: {
  1356. curr: 1,
  1357. },
  1358. };
  1359. table.reload("tablelist", option);
  1360. });
  1361. //导出
  1362. $("#tablebtn").click(function () {
  1363. let sdate = $("#sDate").val();
  1364. let edate = $("#eDate").val();
  1365. let keyword = $("#keyword").val();
  1366. // let org_id = $("#org_id").val();
  1367. let org_id = departTree.getValue();
  1368. orgid = org_id.length == 0 ? '' : org_id[0].id;
  1369. let url = "{:url('statistics/export2',['m'=>'generalStatisticsData'])}";
  1370. layer.confirm('确定要导出该查询结果么?', function () {
  1371. $.post(url, { start_date: sdate, end_date: edate, keyword: keyword, org_id: orgid }, function (rs) {
  1372. if (typeof rs == 'string') rs = JSON.parse(rs);
  1373. layer.msg(rs.msg);
  1374. })
  1375. })
  1376. });
  1377. //调用内容
  1378. table.on("tool(datalist)", function (obj) {
  1379. let sdate = $("#sDate").val();
  1380. let edate = $("#eDate").val();
  1381. switch (obj.event) {
  1382. case "return_visit_count":
  1383. layer.open({
  1384. type: 2,
  1385. title: [
  1386. "待回访客户列表",
  1387. "color:#333333;background-color:#D8E6F1;",
  1388. ],
  1389. content:
  1390. '{:url("statistics/generalOpen")}?type=&eid=' +
  1391. obj.data.id +
  1392. "&start_date=" +
  1393. sdate +
  1394. "&end_date=" +
  1395. edate,
  1396. resize: false,
  1397. area: ["80%", "80%"],
  1398. });
  1399. break;
  1400. case "add_wechat_count":
  1401. layer.open({
  1402. type: 2,
  1403. title: ["加微客户列表", "color:#333333;background-color:#D8E6F1;"],
  1404. content:
  1405. '{:url("statistics/generalOpen")}?type=wechat&eid=' +
  1406. obj.data.id +
  1407. "&start_date=" +
  1408. sdate +
  1409. "&end_date=" +
  1410. edate,
  1411. resize: false,
  1412. area: ["80%", "80%"],
  1413. });
  1414. break;
  1415. case "shares_count":
  1416. layer.open({
  1417. type: 2,
  1418. title: ["分享内容列表", "color:#333333;background-color:#D8E6F1;"],
  1419. content:
  1420. '{:url("statistics/generalOpen")}?type=share&eid=' +
  1421. obj.data.id +
  1422. "&start_date=" +
  1423. sdate +
  1424. "&end_date=" +
  1425. edate,
  1426. resize: false,
  1427. area: ["80%", "80%"],
  1428. });
  1429. break;
  1430. case "resource_count":
  1431. layer.open({
  1432. type: 2,
  1433. title: ["分配客户列表", "color:#333333;background-color:#D8E6F1;"],
  1434. content:
  1435. '{:url("statistics/generalOpen")}?type=resource&eid=' +
  1436. obj.data.id +
  1437. "&start_date=" +
  1438. sdate +
  1439. "&end_date=" +
  1440. edate,
  1441. resize: false,
  1442. area: ["80%", "80%"],
  1443. });
  1444. break;
  1445. case "following_up_count":
  1446. layer.open({
  1447. type: 2,
  1448. title: [
  1449. "在跟进客户列表",
  1450. "color:#333333;background-color:#D8E6F1;",
  1451. ],
  1452. content:
  1453. '{:url("statistics/generalOpen")}?type=foolow&eid=' +
  1454. obj.data.id +
  1455. "&start_date=" +
  1456. sdate +
  1457. "&end_date=" +
  1458. edate,
  1459. resize: false,
  1460. area: ["80%", "80%"],
  1461. });
  1462. break;
  1463. case "reported_quantity":
  1464. layer.open({
  1465. type: 2,
  1466. title: [
  1467. "报备客户列表",
  1468. "color:#333333;background-color:#D8E6F1;",
  1469. ],
  1470. content:
  1471. '{:url("statistics/generalOpen")}?type=reported_quantity&eid=' +
  1472. obj.data.id +
  1473. "&start_date=" +
  1474. sdate +
  1475. "&end_date=" +
  1476. edate,
  1477. resize: false,
  1478. area: ["80%", "80%"],
  1479. });
  1480. break;
  1481. case "deposit_count":
  1482. layer.open({
  1483. type: 2,
  1484. title: ["签单客户列表", "color:#333333;background-color:#D8E6F1;"],
  1485. content:
  1486. '{:url("statistics/generalOpen")}?type=dep&eid=' +
  1487. obj.data.id +
  1488. "&start_date=" +
  1489. sdate +
  1490. "&end_date=" +
  1491. edate,
  1492. resize: false,
  1493. area: ["80%", "80%"],
  1494. });
  1495. break;
  1496. case "valid_count":
  1497. layer.open({
  1498. type: 2,
  1499. title: ["有效线索列表", "color:#333333;background-color:#D8E6F1;"],
  1500. content:
  1501. '{:url("statistics/generalOpen")}?type=valid&eid=' +
  1502. obj.data.id +
  1503. "&start_date=" +
  1504. sdate +
  1505. "&end_date=" +
  1506. edate,
  1507. resize: false,
  1508. area: ["80%", "80%"],
  1509. });
  1510. break;
  1511. case "valid_no_wechat":
  1512. layer.open({
  1513. type: 2,
  1514. title: [
  1515. "有效未加微客户列表",
  1516. "color:#333333;background-color:#D8E6F1;",
  1517. ],
  1518. content:
  1519. '{:url("statistics/generalOpen")}?type=valid_no_wechat&eid=' +
  1520. obj.data.id +
  1521. "&start_date=" +
  1522. sdate +
  1523. "&end_date=" +
  1524. edate,
  1525. resize: false,
  1526. area: ["80%", "80%"],
  1527. });
  1528. break;
  1529. case "measuring_room_customer_no_to_store":
  1530. layer.open({
  1531. type: 2,
  1532. title: [
  1533. "量房未到店客户列表",
  1534. "color:#333333;background-color:#D8E6F1;",
  1535. ],
  1536. content:
  1537. '{:url("statistics/generalOpen")}?type=room_no_store&eid=' +
  1538. obj.data.id +
  1539. "&start_date=" +
  1540. sdate +
  1541. "&end_date=" +
  1542. edate,
  1543. resize: false,
  1544. area: ["80%", "80%"],
  1545. });
  1546. break;
  1547. case "drawing_date_count":
  1548. layer.open({
  1549. type: 2,
  1550. title: [
  1551. "有户型图客户列表",
  1552. "color:#333333;background-color:#D8E6F1;",
  1553. ],
  1554. content:
  1555. '{:url("statistics/generalOpen")}?type=drawing&eid=' +
  1556. obj.data.id +
  1557. "&start_date=" +
  1558. sdate +
  1559. "&end_date=" +
  1560. edate,
  1561. resize: false,
  1562. area: ["80%", "80%"],
  1563. });
  1564. break;
  1565. case "room":
  1566. layer.open({
  1567. type: 2,
  1568. title: [
  1569. "量房未到店客户列表",
  1570. "color:#333333;background-color:#D8E6F1;",
  1571. ],
  1572. content:
  1573. '{:url("statistics/generalOpen")}?type=room&eid=' +
  1574. obj.data.id +
  1575. "&start_date=" +
  1576. sdate +
  1577. "&end_date=" +
  1578. edate,
  1579. resize: false,
  1580. area: ["80%", "80%"],
  1581. });
  1582. break;
  1583. case "yuji_store":
  1584. layer.open({
  1585. type: 2,
  1586. title: [
  1587. "预计到店客户列表",
  1588. "color:#333333;background-color:#D8E6F1;",
  1589. ],
  1590. content:
  1591. '{:url("statistics/generalOpen")}?type=yuji_store&eid=' +
  1592. obj.data.id +
  1593. "&start_date=" +
  1594. sdate +
  1595. "&end_date=" +
  1596. edate,
  1597. resize: false,
  1598. area: ["80%", "80%"],
  1599. });
  1600. break;
  1601. case "strtore_count_0":
  1602. layer.open({
  1603. type: 2,
  1604. title: [
  1605. "一次到店客户列表",
  1606. "color:#333333;background-color:#D8E6F1;",
  1607. ],
  1608. content:
  1609. '{:url("statistics/generalOpen")}?type=strtore_count_0&eid=' +
  1610. obj.data.id +
  1611. "&start_date=" +
  1612. sdate +
  1613. "&end_date=" +
  1614. edate,
  1615. resize: false,
  1616. area: ["80%", "80%"],
  1617. });
  1618. break;
  1619. case "strtore_count_1":
  1620. layer.open({
  1621. type: 2,
  1622. title: [
  1623. "二次到店客户列表",
  1624. "color:#333333;background-color:#D8E6F1;",
  1625. ],
  1626. content:
  1627. '{:url("statistics/generalOpen")}?type=strtore_count_1&eid=' +
  1628. obj.data.id +
  1629. "&start_date=" +
  1630. sdate +
  1631. "&end_date=" +
  1632. edate,
  1633. resize: false,
  1634. area: ["80%", "80%"],
  1635. });
  1636. break;
  1637. case "strtore_count_2":
  1638. layer.open({
  1639. type: 2,
  1640. title: [
  1641. "三次及以上到店客户列表",
  1642. "color:#333333;background-color:#D8E6F1;",
  1643. ],
  1644. content:
  1645. '{:url("statistics/generalOpen")}?type=strtore_count_2&eid=' +
  1646. obj.data.id +
  1647. "&start_date=" +
  1648. sdate +
  1649. "&end_date=" +
  1650. edate,
  1651. resize: false,
  1652. area: ["80%", "80%"],
  1653. });
  1654. break;
  1655. case "strtore_deposit_count_0":
  1656. layer.open({
  1657. type: 2,
  1658. title: [
  1659. "一次到店签单客户列表",
  1660. "color:#333333;background-color:#D8E6F1;",
  1661. ],
  1662. content:
  1663. '{:url("statistics/generalOpen")}?type=strtore_deposit_count_0&eid=' +
  1664. obj.data.id +
  1665. "&start_date=" +
  1666. sdate +
  1667. "&end_date=" +
  1668. edate,
  1669. resize: false,
  1670. area: ["80%", "80%"],
  1671. });
  1672. break;
  1673. case "strtore_deposit_count_1":
  1674. layer.open({
  1675. type: 2,
  1676. title: [
  1677. "二次到店签单客户列表",
  1678. "color:#333333;background-color:#D8E6F1;",
  1679. ],
  1680. content:
  1681. '{:url("statistics/generalOpen")}?type=strtore_deposit_count_1&eid=' +
  1682. obj.data.id +
  1683. "&start_date=" +
  1684. sdate +
  1685. "&end_date=" +
  1686. edate,
  1687. resize: false,
  1688. area: ["80%", "80%"],
  1689. });
  1690. break;
  1691. case "strtore_deposit_count_2":
  1692. layer.open({
  1693. type: 2,
  1694. title: [
  1695. "三次及以上到店签单客户列表",
  1696. "color:#333333;background-color:#D8E6F1;",
  1697. ],
  1698. content:
  1699. '{:url("statistics/generalOpen")}?type=strtore_deposit_count_2&eid=' +
  1700. obj.data.id +
  1701. "&start_date=" +
  1702. sdate +
  1703. "&end_date=" +
  1704. edate,
  1705. resize: false,
  1706. area: ["80%", "80%"],
  1707. });
  1708. break;
  1709. case "sign_count":
  1710. layer.open({
  1711. type: 2,
  1712. title: ["合同客户列表", "color:#333333;background-color:#D8E6F1;"],
  1713. content:
  1714. '{:url("statistics/generalOpen")}?type=sign_count&eid=' +
  1715. obj.data.id +
  1716. "&start_date=" +
  1717. sdate +
  1718. "&end_date=" +
  1719. edate,
  1720. resize: false,
  1721. area: ["80%", "80%"],
  1722. });
  1723. break;
  1724. case "square_0_80":
  1725. layer.open({
  1726. type: 2,
  1727. title: [
  1728. "房屋面积80平以下客户列表",
  1729. "color:#333333;background-color:#D8E6F1;",
  1730. ],
  1731. content:
  1732. '{:url("statistics/generalOpen")}?type=square_0_80&eid=' +
  1733. obj.data.id +
  1734. "&start_date=" +
  1735. sdate +
  1736. "&end_date=" +
  1737. edate,
  1738. resize: false,
  1739. area: ["80%", "80%"],
  1740. });
  1741. break;
  1742. case "square_80_100":
  1743. layer.open({
  1744. type: 2,
  1745. title: [
  1746. "房屋面积80-100平客户列表",
  1747. "color:#333333;background-color:#D8E6F1;",
  1748. ],
  1749. content:
  1750. '{:url("statistics/generalOpen")}?type=square_80_100&eid=' +
  1751. obj.data.id +
  1752. "&start_date=" +
  1753. sdate +
  1754. "&end_date=" +
  1755. edate,
  1756. resize: false,
  1757. area: ["80%", "80%"],
  1758. });
  1759. break;
  1760. case "square_100_120":
  1761. layer.open({
  1762. type: 2,
  1763. title: [
  1764. "房屋面积100-120平客户列表",
  1765. "color:#333333;background-color:#D8E6F1;",
  1766. ],
  1767. content:
  1768. '{:url("statistics/generalOpen")}?type=square_100_120&eid=' +
  1769. obj.data.id +
  1770. "&start_date=" +
  1771. sdate +
  1772. "&end_date=" +
  1773. edate,
  1774. resize: false,
  1775. area: ["80%", "80%"],
  1776. });
  1777. break;
  1778. case "square_120_200":
  1779. layer.open({
  1780. type: 2,
  1781. title: [
  1782. "房屋面积120-200平客户列表",
  1783. "color:#333333;background-color:#D8E6F1;",
  1784. ],
  1785. content:
  1786. '{:url("statistics/generalOpen")}?type=square_120_200&eid=' +
  1787. obj.data.id +
  1788. "&start_date=" +
  1789. sdate +
  1790. "&end_date=" +
  1791. edate,
  1792. resize: false,
  1793. area: ["80%", "80%"],
  1794. });
  1795. break;
  1796. case "square_200_500":
  1797. layer.open({
  1798. type: 2,
  1799. title: [
  1800. "房屋面积200-500平客户列表",
  1801. "color:#333333;background-color:#D8E6F1;",
  1802. ],
  1803. content:
  1804. '{:url("statistics/generalOpen")}?type=square_200_500&eid=' +
  1805. obj.data.id +
  1806. "&start_date=" +
  1807. sdate +
  1808. "&end_date=" +
  1809. edate,
  1810. resize: false,
  1811. area: ["80%", "80%"],
  1812. });
  1813. break;
  1814. case "square_500":
  1815. layer.open({
  1816. type: 2,
  1817. title: [
  1818. "房屋面积500平以上客户列表",
  1819. "color:#333333;background-color:#D8E6F1;",
  1820. ],
  1821. content:
  1822. '{:url("statistics/generalOpen")}?type=square_500&eid=' +
  1823. obj.data.id +
  1824. "&start_date=" +
  1825. sdate +
  1826. "&end_date=" +
  1827. edate,
  1828. resize: false,
  1829. area: ["80%", "80%"],
  1830. });
  1831. break;
  1832. case "existing_homes_count":
  1833. layer.open({
  1834. type: 2,
  1835. title: ["现房客户列表", "color:#333333;background-color:#D8E6F1;"],
  1836. content:
  1837. '{:url("statistics/generalOpen")}?type=existing_homes_count&eid=' +
  1838. obj.data.id +
  1839. "&start_date=" +
  1840. sdate +
  1841. "&end_date=" +
  1842. edate,
  1843. resize: false,
  1844. area: ["80%", "80%"],
  1845. });
  1846. break;
  1847. case "forward_housing_count":
  1848. layer.open({
  1849. type: 2,
  1850. title: ["期房客户列表", "color:#333333;background-color:#D8E6F1;"],
  1851. content:
  1852. '{:url("statistics/generalOpen")}?type=forward_housing_count&eid=' +
  1853. obj.data.id +
  1854. "&start_date=" +
  1855. sdate +
  1856. "&end_date=" +
  1857. edate,
  1858. resize: false,
  1859. area: ["80%", "80%"],
  1860. });
  1861. break;
  1862. case "invalid":
  1863. var key = $(this).data("key");
  1864. layer.open({
  1865. type: 2,
  1866. title: [
  1867. "无效线索客资客户列表",
  1868. "color:#333333;background-color:#D8E6F1;",
  1869. ],
  1870. content:
  1871. '{:url("statistics/generalOpen")}?type=invalid&eid=' +
  1872. obj.data.id +
  1873. "&start_date=" +
  1874. sdate +
  1875. "&end_date=" +
  1876. edate +
  1877. "&key=" +
  1878. key,
  1879. resize: false,
  1880. area: ["80%", "80%"],
  1881. });
  1882. break;
  1883. case "number_of_explanations":
  1884. var key = $(this).data("key");
  1885. layer.open({
  1886. type: 2,
  1887. title: [
  1888. "智慧屏讲解客户列表",
  1889. "color:#333333;background-color:#D8E6F1;",
  1890. ],
  1891. content:
  1892. '{:url("statistics/generalOpen")}?type=number_of_explanations&eid=' +
  1893. obj.data.id +
  1894. "&start_date=" +
  1895. sdate +
  1896. "&end_date=" +
  1897. edate +
  1898. "&key=" +
  1899. key,
  1900. resize: false,
  1901. area: ["80%", "80%"],
  1902. });
  1903. break;
  1904. }
  1905. });
  1906. $('#general-export-list').click(function () {
  1907. layer.open({
  1908. type: 2,
  1909. area: ['600px', '600px'],
  1910. content: '{:url("statistics/exportList2",array("type"=>"generalStatisticsData"))}'
  1911. });
  1912. });
  1913. });
  1914. </script>
  1915. {/block}