tencent_list.html 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560
  1. {extend name="public/layout"}
  2. {block name="body"}
  3. <link rel="stylesheet" href="__LAYUI__/layui/css/layui.css" media="all">
  4. <link rel="stylesheet" " href=" /static/css/common.css">
  5. <script src="/static/js/jquery.min.js"></script>
  6. <style>
  7. html,
  8. body {
  9. height: 99%;
  10. }
  11. #popinfo {
  12. position: fixed;
  13. top: -1999px;
  14. }
  15. #ID-demo-layer-direction-r #popinfo {
  16. position: static;
  17. }
  18. #popinfo .layui-form-select {
  19. margin: 0;
  20. width: 100%;
  21. }
  22. .detailform {
  23. padding-top: 20px;
  24. }
  25. .detailform .layui-form-label {
  26. width: 100%;
  27. display: block;
  28. text-align: left;
  29. padding: 0;
  30. }
  31. .detailform .layui-form-item {
  32. width: 222px;
  33. display: inline-block;
  34. }
  35. .padding-t-10 {
  36. padding-top: 10px;
  37. }
  38. .searchtitlebox {
  39. display: block;
  40. padding: 15px 10px;
  41. border: 1px solid #F0F0F0;
  42. background: #FCFCFC;
  43. margin-top: 5px;
  44. margin-bottom: 10px;
  45. /* position: relative; */
  46. min-width: 800px;
  47. }
  48. .searchbox {
  49. display: block;
  50. margin-top: 8px;
  51. text-align: center;
  52. }
  53. .searchbox input {
  54. display: inline-block;
  55. height: 26px;
  56. line-height: 26px;
  57. padding-left: 3px;
  58. vertical-align: middle;
  59. border: 2px solid #4479ba;
  60. }
  61. body {
  62. font-size: 12px;
  63. font-family: "宋体";
  64. padding-bottom: 40px;
  65. }
  66. .searchbtn {
  67. display: inline-block;
  68. float: right;
  69. border: none;
  70. width: 98px;
  71. height: 30px;
  72. color: #fff;
  73. font-size: 14px;
  74. font-weight: bold;
  75. text-align: center;
  76. background: url(__STATIC__/img/icon-sub.png) no-repeat;
  77. cursor: pointer;
  78. vertical-align: middle;
  79. }
  80. .selectbox {
  81. float: left;
  82. }
  83. .leftselect {
  84. float: left;
  85. height: 26px;
  86. line-height: 26px;
  87. }
  88. .selectbox select {
  89. float: left;
  90. height: 26px;
  91. }
  92. .searchtext {
  93. border: 1px solid #ccc;
  94. background: #fff url(__STATIC__/img/icon071402.png) no-repeat;
  95. padding: 1px 2px;
  96. height: 24px;
  97. line-height: 24px;
  98. vertical-align: middle;
  99. text-indent: 3px;
  100. margin-left: 4px;
  101. }
  102. .searchbtn1 {
  103. margin-right: 40px;
  104. margin-left: 4px;
  105. cursor: pointer;
  106. color: #000;
  107. background: url(__STATIC__/img/btn_bg.gif) repeat-x;
  108. border: 1px solid #C0C0C0;
  109. padding: 0 12px;
  110. *padding: 0 6px;
  111. height: 26px;
  112. }
  113. .layui-table td,
  114. .layui-table th {
  115. font-size: 12px;
  116. }
  117. .layui-table th {
  118. font-weight: bold;
  119. }
  120. .dingjingorder {
  121. height: 20px;
  122. width: 40px;
  123. background-color: #65c001;
  124. color: #FFF;
  125. text-align: center;
  126. line-height: 25px;
  127. z-index: 100;
  128. display: block;
  129. position: absolute;
  130. top: 1px;
  131. right: 3px;
  132. border-radius: 11px;
  133. font-size: 12px;
  134. }
  135. .addvx {
  136. position: absolute;
  137. top: -5px;
  138. right: 1px;
  139. height: 14px;
  140. line-height: 14px;
  141. font-size: 16px;
  142. color: #666;
  143. font-family: "宋体";
  144. }
  145. .statebox {
  146. width: 40px;
  147. text-align: center;
  148. z-index: 100;
  149. display: block;
  150. position: absolute;
  151. font-size: 12px;
  152. top: -5px;
  153. right: 0px;
  154. border-radius: 0px;
  155. background: #4285f4;
  156. color: #efefef;
  157. height: 20px;
  158. line-height: 20px;
  159. }
  160. .layui-table-cell {
  161. overflow: initial;
  162. }
  163. #customer_detail {
  164. display: block;
  165. width: 435px;
  166. height: 100%;
  167. position: fixed;
  168. top: 0;
  169. left: 0;
  170. bottom: 0;
  171. }
  172. .rightbox {
  173. display: block;
  174. width: calc(100% - 435px);
  175. margin-left: 435px;
  176. }
  177. .unstatusbox {
  178. display: block;
  179. position: absolute;
  180. top: -5px;
  181. left: 0;
  182. width: 100%;
  183. height: 37px;
  184. background-color: #FF6600;
  185. text-align: center;
  186. color: #FFF;
  187. }
  188. .statusbox {
  189. position: absolute;
  190. top: 0px;
  191. right: 0px;
  192. color: #666;
  193. text-align: right;
  194. z-index: 100;
  195. display: block;
  196. font-size: 12px;
  197. }
  198. .layui-table-view .layui-form-checkbox {
  199. width: 16px;
  200. height: 16px;
  201. line-height: 16px;
  202. padding-right: 0;
  203. }
  204. .layui-table-view .layui-form-checkbox i {
  205. height: 16px;
  206. width: 16px;
  207. font-size: 14px;
  208. }
  209. .novisitlog {
  210. background-color: #9139db !important;
  211. color: #FFF;
  212. }
  213. .novisitlog a {
  214. color: #FFF;
  215. }
  216. .crmsearchlist {
  217. max-height: 820px;
  218. cursor: pointer;
  219. }
  220. .tablebox .layui-form.layui-border-box.layui-table-view {
  221. max-height: 760px !important;
  222. height: auto !important;
  223. }
  224. .layui-table-body {
  225. /* max-height: 670px !important; */
  226. height: auto !important;
  227. }
  228. .layui-table-view .layui-table td {
  229. cursor: pointer;
  230. overflow: hidden;
  231. }
  232. .layui-form-checked {
  233. background-color: #37AF6E;
  234. }
  235. .layui-table-view .layui-form-checked i {
  236. color: #fff;
  237. }
  238. .layui-table-cell {
  239. overflow: hidden;
  240. }
  241. .searchbox .layui-form-select {
  242. float: left;
  243. width: 130px;
  244. }
  245. .searchbox input {
  246. border: 1px solid #e6e6e6 !important;
  247. }
  248. .totalBox {
  249. width: 100%;
  250. height: 160px;
  251. display: flex;
  252. align-items: center;
  253. margin-top: 15px;
  254. }
  255. .totalBox .totalBoxClock {
  256. display: flex;
  257. flex-direction: column;
  258. align-items: center;
  259. justify-content: center;
  260. border: 1px solid #e6e6e6;
  261. }
  262. .totalBox .totalBoxClock:nth-child(1) {
  263. width: 220px;
  264. }
  265. .totalBox .totalBoxClock:nth-child(2) {
  266. width: 160px;
  267. }
  268. .totalBox .totalBoxClock:nth-child(3) {
  269. width: 280px;
  270. }
  271. .totalBox .totalBoxClock:nth-child(4) {
  272. width: 150px;
  273. }
  274. .totalBox .totalBoxClock:nth-child(5) {
  275. width: 150px;
  276. }
  277. .totalBox .totalBoxClock:nth-child(6) {
  278. width: 150px;
  279. }
  280. .totalBox .totalBoxClock:nth-child(7) {
  281. width: 280px;
  282. }
  283. .borderRight {
  284. border-right: 1px solid #e6e6e6;
  285. }
  286. .borderTop {
  287. border-top: 1px solid #e6e6e6;
  288. }
  289. .totalBox .totalBoxClock .totalBoxClockDiv{
  290. flex: 1;
  291. display: flex;
  292. flex-direction: column;
  293. align-items: center;
  294. justify-content: center;
  295. padding: 10px 0;
  296. }
  297. .totalBox .totalBoxClock .totalBoxClockDivTwo{
  298. flex: 1;
  299. display: flex;
  300. flex-direction: initial;
  301. align-items: center;
  302. justify-content: center;
  303. padding: 0px 0;
  304. }
  305. .totalBox .totalBoxClock .totalBoxClockDivTwo div{
  306. flex: 1;
  307. display: flex;
  308. flex-direction: column;
  309. align-items: center;
  310. justify-content: center;
  311. padding: 10px 0px;
  312. }
  313. .totalBox .totalBoxClock .huise{
  314. background:#f2f2f2;
  315. width: 100%;
  316. }
  317. .totalName {
  318. font-size: 16px;
  319. color: #999999;
  320. }
  321. .totalNum {
  322. font-size: 20px;
  323. font-weight: 600;
  324. }
  325. .totalline {
  326. flex: none !important;
  327. width: 1px !important;
  328. height: 50px !important;
  329. background-color: #f2f2f2;
  330. }
  331. .ml5 {
  332. margin-left: 5px;
  333. }
  334. .cursor {
  335. cursor: pointer;
  336. margin-bottom: 8px;
  337. position: relative;
  338. }
  339. .cursor>.layui-form-select {
  340. width: 115px;
  341. display: inline-block;
  342. }
  343. .cursor>.layui-form-select>.layui-select-title {
  344. border: none;
  345. }
  346. .cursor>.layui-form-select>.layui-select-title>input {
  347. border: none;
  348. color: #333333;
  349. font-weight: 600;
  350. }
  351. /* .layui-table-fixed-r .layui-table-body {
  352. overflow: hidden !important;
  353. } */
  354. .relative {
  355. position: relative;
  356. }
  357. .lay-setting {
  358. position: absolute;
  359. right: 8px;
  360. top: 9px;
  361. z-index: 999 !important;
  362. cursor: pointer;
  363. }
  364. .lay-mask {
  365. width: 100%;
  366. height: 100%;
  367. background-color: rgba(0, 0, 0, 0.3);
  368. position: fixed;
  369. top: 0px;
  370. left: 0px;
  371. z-index: 9999 !important;
  372. }
  373. .lay-block {
  374. width: 400px;
  375. height: 100%;
  376. background-color: #fff;
  377. position: absolute;
  378. right: 0px;
  379. top: 0px;
  380. box-sizing: border-box;
  381. padding: 10px 10px 30px 10px;
  382. overflow: auto;
  383. }
  384. .lay-title {
  385. width: 100%;
  386. height: 40px;
  387. display: flex;
  388. align-items: center;
  389. justify-content: space-between;
  390. }
  391. .lay-title>span {
  392. font-size: 16px;
  393. color: #333333;
  394. font-weight: 600;
  395. }
  396. .lay-title>i {
  397. font-weight: 600;
  398. cursor: pointer;
  399. }
  400. .layui-content {
  401. width: 100%;
  402. height: auto;
  403. }
  404. .lay-item,
  405. .lay-item1 {
  406. width: 100%;
  407. height: 50px;
  408. /* display: flex;
  409. align-items: center;
  410. justify-content: space-between; */
  411. }
  412. .lay-item>div {
  413. display: flex;
  414. align-items: center;
  415. }
  416. .lay-item>div>span {
  417. margin-left: 6px;
  418. }
  419. .lay-item1>div {
  420. display: flex;
  421. align-items: center;
  422. }
  423. .lay-item1>div>span {
  424. margin-left: 6px;
  425. }
  426. .layui-table-main {
  427. min-height: 60vh;
  428. }
  429. .sort_lis01 {
  430. float: left;
  431. }
  432. .sort_lis02 {
  433. float: right;
  434. }
  435. .sort_time {
  436. overflow: hidden;
  437. }
  438. .layui-form-switch i {
  439. top: 2px !important;
  440. }
  441. ::-webkit-scrollbar {
  442. width: auto;
  443. height: auto;
  444. }
  445. ::-webkit-scrollbar-thumb {
  446. border-radius: 10px;
  447. -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
  448. background: #DFDFDF;
  449. }
  450. ::-webkit-scrollbar-track {
  451. -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
  452. border-radius: 10px;
  453. background: #f5f5f5;
  454. }
  455. th .layui-table-cell {
  456. height: 38px;
  457. line-height: 38px;
  458. padding: 0;
  459. overflow: unset;
  460. }
  461. .layui-table-header {
  462. overflow: visible;
  463. }
  464. .psinput {
  465. top: 45px;
  466. left: 50%;
  467. margin-left: -118px;
  468. width: 236px;
  469. background: #fff;
  470. z-index: 999;
  471. position: absolute;
  472. box-shadow: 0 1px 10px #999;
  473. display: none;
  474. border-radius: 6px;
  475. overflow: visible;
  476. padding-top: 10px;
  477. }
  478. .dsa {
  479. width: 100%;
  480. height: 100%;
  481. display: block;
  482. text-align: center;
  483. }
  484. .pdl12 {
  485. padding-left: 12px;
  486. }
  487. .search_btns {
  488. margin-top: 11px;
  489. border-top: 1px solid #ccc;
  490. }
  491. .search_btns div.button_ {
  492. display: flex;
  493. width: 80%;
  494. overflow: hidden;
  495. margin: 0 auto;
  496. justify-content: space-between;
  497. }
  498. .scroll_body {
  499. overflow-x: auto;
  500. width: calc(100% - -17px)
  501. }
  502. .layui-table-body {
  503. overflow: visible;
  504. }
  505. .layui-form-select dl {
  506. z-index: 1000;
  507. }
  508. .kwovsint {
  509. width: 90%;
  510. height: 40px;
  511. display: block;
  512. border: 1px solid #409EFF;
  513. border-radius: 6px;
  514. }
  515. .checkbox {
  516. width: 20px;
  517. height: 20px;
  518. margin-top: 15px;
  519. display: block;
  520. float: left;
  521. }
  522. .checkdeta {
  523. width: 20px;
  524. height: 20px;
  525. margin-top: 15px;
  526. display: block;
  527. float: left;
  528. }
  529. .psinput .layui-form-checkbox {
  530. display: block;
  531. float: left;
  532. width: 20px;
  533. height: 20px;
  534. padding: 0;
  535. }
  536. .psinput .layui-form-checkbox .layui-icon {
  537. display: block;
  538. float: left;
  539. width: 20px !important;
  540. height: 20px !important;
  541. border: 1px solid #d2d2d2 !important;
  542. top: 1px;
  543. }
  544. .psinput .layui-form-checkbox .layui-icon::before {
  545. position: absolute;
  546. top: 2px;
  547. left: 3px;
  548. font-size: 14px;
  549. }
  550. .check_ul_list {
  551. max-height: 300px;
  552. overflow-y: auto;
  553. }
  554. .check_li {
  555. width: 90%;
  556. margin: 0 auto;
  557. overflow: hidden;
  558. }
  559. .check_li li {
  560. overflow: hidden;
  561. margin-bottom: 15px;
  562. }
  563. .check_name {
  564. float: left;
  565. line-height: 20px;
  566. font-size: 14px;
  567. margin-left: 8px;
  568. }
  569. .dsnone .layui-form-checkbox {
  570. position: absolute;
  571. width: 25px;
  572. height: 28px;
  573. margin-top: 8px;
  574. visibility: hidden;
  575. }
  576. .button_ a {
  577. position: relative;
  578. }
  579. .triangle {
  580. width: 0;
  581. height: 0;
  582. float: left;
  583. border-bottom: 10px solid #fff;
  584. border-left: 10px solid transparent;
  585. border-right: 10px solid transparent;
  586. position: absolute;
  587. top: -10px;
  588. left: 50%;
  589. margin-left: -10px;
  590. }
  591. .psinput02 {
  592. width: 330px !important;
  593. margin-left: -165px !important;
  594. }
  595. .psinput02 .selecstDateBox {
  596. position: inherit !important;
  597. box-shadow: none;
  598. margin-top: 5px;
  599. height: 80px !important;
  600. }
  601. .mapps {
  602. position: absolute;
  603. right: 3%;
  604. top: 15px;
  605. width: 12px;
  606. }
  607. .sectionje {
  608. width: 45%;
  609. }
  610. .ds {
  611. display: block;
  612. }
  613. .wleft {
  614. float: left;
  615. }
  616. .wright {
  617. float: right;
  618. }
  619. .woverflow {
  620. overflow: hidden;
  621. }
  622. .width94_ {
  623. width: 94%;
  624. }
  625. .wauto {
  626. margin: 0 auto;
  627. }
  628. .width05_ {
  629. width: 10%;
  630. text-align: center;
  631. }
  632. .selectDateBox {
  633. position: absolute;
  634. width: 330px;
  635. height: 100px;
  636. box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
  637. background-color: #fff;
  638. z-index: 99999 !important;
  639. top: 45px;
  640. box-sizing: border-box;
  641. padding: 5px 8px;
  642. }
  643. .selecstDateBox {
  644. position: absolute;
  645. width: 330px;
  646. height: 100px;
  647. box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
  648. background-color: #fff;
  649. z-index: 99999 !important;
  650. top: 45px;
  651. right: 0;
  652. box-sizing: border-box;
  653. padding: 5px 8px;
  654. }
  655. .date-flex,
  656. .date-flex1 {
  657. display: flex;
  658. align-items: center;
  659. }
  660. .date-box {
  661. padding: 15px 0px 10px;
  662. }
  663. .layui-bg-green {
  664. background-color: #16baaa!important;
  665. color: #fff!important;
  666. }
  667. #poptags{
  668. position: fixed;
  669. top: -1999px;
  670. }
  671. #ID-demo-layer-direction-r-1 #poptags {
  672. position: static;
  673. }
  674. #poptags .layui-form-label{
  675. font-size: 16px;
  676. color: #333;
  677. }
  678. </style>
  679. <body class="clearfix ">
  680. <iframe id="customer_detail" style="display: none;" src=""></iframe>
  681. <div class="crmbox">
  682. <form class="layui-form">
  683. <div class="searchtitlebox">
  684. <div style="margin-bottom:8px;">您当前的操作 · <b>腾讯线索</b></div>
  685. <form class="layui-form">
  686. <div class="searchbox clearfix">
  687. <div class="selectbox">
  688. {if $is_manager == 1}
  689. <select name="advertiser_id" lay-search>
  690. <option value="">全部账户</option>
  691. {foreach $advertiser_id as $val}
  692. <option value="{$val.id}">{$val.name}</option>
  693. {/foreach}
  694. </select>
  695. <select name="is_allocation" lay-search>
  696. <option value="">转化状态</option>
  697. <option value="2">已转化</option>
  698. <option value="1">未转化</option>
  699. </select>
  700. <select name="is_fenpei" lay-search>
  701. <option value="">分配状态</option>
  702. <option value="2">已分配</option>
  703. <option value="1">未分配</option>
  704. </select>
  705. {/if}
  706. <select name="is_contact" lay-search>
  707. <option value="">联系状态</option>
  708. <option value="2">已联系</option>
  709. <option value="1">未联系</option>
  710. </select>
  711. <select name="searchkey" lay-search lay-filter="searchkey">
  712. <option value="name" selected>按姓名</option>
  713. <option value="clue_id">按线索ID</option>
  714. <option value="telephone">按电话</option>
  715. <option value="tags">按标签</option>
  716. <option value="address">按详细地址</option>
  717. <!-- <option value="advertiser_id">按广告主ID</option> -->
  718. <option value="ad_name">按广告计划名称</option>
  719. <option value="ad_id">按广告计划ID</option>
  720. <option value="promotion_id">按广告ID</option>
  721. <option value="promotion_name">按广告名称</option>
  722. <option value="weixin">按微信号</option>
  723. <option value="qq">按QQ号</option>
  724. <option value="email">按邮箱</option>
  725. <option value="location">按手动填写地域</option>
  726. <option value="module_id">按组件ID</option>
  727. <option value="module_name">按组件名称</option>
  728. <!-- <option value="store_id">按门店ID</option>
  729. <option value="store_name">按门店名称</option>
  730. <option value="store_pack_id">按门店活动ID</option>
  731. <option value="store_pack_name">按门店活动名称</option> -->
  732. </select>
  733. <input class="left searchtext" type="text" autocomplete="off" name="keyname" placeholder="请输入内容" />
  734. <button class="left searchbtn1" style="margin-right: 0;" type="button" lay-submit lay-filter="searchkeywords">搜索</button>
  735. <button class="left searchbtn1" type="button" lay-submit lay-filter="searchkeywords1">重复</button>
  736. </div>
  737. <div class="selectbox">
  738. <select name="searchdate" lay-search lay-filter="datefilter">
  739. <option value="">自定义</option>
  740. <option value="1">全部</option>
  741. <option value="2">今天</option>
  742. <option value="3">昨天</option>
  743. <option value="4">近7天</option>
  744. <option value="5" selected>近30天</option>
  745. <option value="6">本月</option>
  746. <option value="7">上月</option>
  747. </select>
  748. <input class="left searchtext" type="text" name="time" id="time"
  749. style="width: 160px;border-color: #ccc;" placeholder="请选择开始时间到结束时间" readonly>
  750. </div>
  751. </div>
  752. </form>
  753. <form class="layui-form">
  754. <div class="searchbox clearfix">
  755. <div class="selectbox">
  756. <div class="leftselect">排序:</div>
  757. <select name="order_type" lay-search>
  758. <option value="">==线索创建时间==</option>
  759. <option value="1">时间正序</option>
  760. <option value="2">时间倒序</option>
  761. </select>
  762. <button class="left searchbtn1" type="button" lay-submit lay-filter="search">排序</button>
  763. </div>
  764. <!-- <button class="searchbtn" type="button">添加新客户</button> -->
  765. </div>
  766. </form>
  767. {if $is_manager == 1}
  768. <div class="totalBox">
  769. <div class="totalBoxClock">
  770. <div class="totalBoxClockDiv">
  771. <span class="totalNum0 totalNum">0</span>
  772. <span class="totalName">消耗</span>
  773. </div>
  774. <div class="totalBoxClockDiv huise borderTop">
  775. <span class="totalNum1 totalNum">0</span>
  776. <span class="totalName">总产值</span>
  777. </div>
  778. </div>
  779. <div class="totalBoxClock">
  780. <div class="totalBoxClockDiv">
  781. <span class="totalNum2 totalNum">0</span>
  782. <span class="totalName">线索量</span>
  783. </div>
  784. <div class="totalBoxClockDiv huise borderTop">
  785. <span class="totalNum3 totalNum">0</span>
  786. <span class="totalName">线索单价</span>
  787. </div>
  788. </div>
  789. <div class="totalBoxClock">
  790. <div class="totalBoxClockDiv">
  791. <span class="totalNum4 totalNum">0</span>
  792. <span class="totalName">有效线索</span>
  793. </div>
  794. <div class="totalBoxClockDivTwo huise">
  795. <div class="borderRight borderTop">
  796. <span class="totalNum5 totalNum">0</span>
  797. <span class="totalName">有效单价</span>
  798. </div>
  799. <div class="borderTop">
  800. <span class="totalNum6 totalNum">0</span>
  801. <span class="totalName">有效率</span>
  802. </div>
  803. </div>
  804. </div>
  805. <div class="totalBoxClock">
  806. <div class="totalBoxClockDiv">
  807. <span class="totalNum7 totalNum">0</span>
  808. <span class="totalName">量房</span>
  809. </div>
  810. <div class="totalBoxClockDiv huise borderTop">
  811. <span class="totalNum8 totalNum">0</span>
  812. <span class="totalName">量房率</span>
  813. </div>
  814. </div>
  815. <div class="totalBoxClock">
  816. <div class="totalBoxClockDiv">
  817. <span class="totalNum9 totalNum">0</span>
  818. <span class="totalName">到店</span>
  819. </div>
  820. <div class="totalBoxClockDiv huise borderTop">
  821. <span class="totalNum10 totalNum">0</span>
  822. <span class="totalName">到店率</span>
  823. </div>
  824. </div>
  825. <div class="totalBoxClock">
  826. <div class="totalBoxClockDiv">
  827. <span class="totalNum11 totalNum">0</span>
  828. <span class="totalName">定金</span>
  829. </div>
  830. <div class="totalBoxClockDiv huise borderTop">
  831. <span class="totalNum12 totalNum">0</span>
  832. <span class="totalName">定金率</span>
  833. </div>
  834. </div>
  835. <div class="totalBoxClock">
  836. <div class="totalBoxClockDiv">
  837. <span class="totalNum13 totalNum">0</span>
  838. <span class="totalName">合同</span>
  839. </div>
  840. <div class="totalBoxClockDivTwo huise">
  841. <div class="borderRight borderTop">
  842. <span class="totalNum14 totalNum">0</span>
  843. <span class="totalName">均单值</span>
  844. </div>
  845. <div class="borderTop">
  846. <span class="totalNum15 totalNum">0</span>
  847. <span class="totalName">合同率</span>
  848. </div>
  849. </div>
  850. </div>
  851. </div>
  852. {/if}
  853. </div>
  854. <div class="crmsearchlist relative ">
  855. <i class="layui-icon layui-icon-set-fill lay-setting"></i>
  856. <table lay-filter="crmsearchlist" id="crmsearchlist"></table>
  857. </div>
  858. <!-- <div class="crmsearchlist">
  859. <table lay-filter="crmsearchlist" id="crmsearchlist"></table>
  860. </div> -->
  861. </form>
  862. </div>
  863. <!-- -->
  864. <div class="lay-mask layui-hide">
  865. <div class="lay-block">
  866. <div class="lay-title">
  867. <span>表格显示设置</span>
  868. <i class="layui-icon layui-icon-close"></i>
  869. </div>
  870. <div class="layui-content layui-form">
  871. </div>
  872. </div>
  873. </div>
  874. <div style="padding: 16px;" id="popinfo">
  875. <div class="layui-row padding-t-10">
  876. <div class="layui-col-xs2">线索所属人</div>
  877. <div class="layui-col-xs4 clue_owner_name"></div>
  878. <div class="layui-col-xs2">线索创建时间</div>
  879. <div class="layui-col-xs4 create_time"></div>
  880. </div>
  881. <div class="layui-row padding-t-10">
  882. <div class="layui-col-xs2">电话</div>
  883. <div class="layui-col-xs4 telephone"></div>
  884. <div class="layui-col-xs2">线索渠道</div>
  885. <div class="layui-col-xs4 clue_source"></div>
  886. </div>
  887. <div class="layui-row padding-t-10">
  888. <div class="layui-col-xs2">流量来源</div>
  889. <div class="layui-col-xs4 app_name"></div>
  890. <div class="layui-col-xs2">线索类型</div>
  891. <div class="layui-col-xs4 clue_type"></div>
  892. </div>
  893. <h3 class="layui-row padding-t-10 ">
  894. 线索阶段
  895. </h3>
  896. <!-- <div class="layui-form-item" style="width: 100%;padding-bottom: 50px;text-align: center;">
  897. </div> -->
  898. <form class="layui-form detailform" lay-filter="demo-val-filter">
  899. <input type="text" name="id" autocomplete="off" style="display: none;" class="layui-input">
  900. <div class="layui-form-item" style="width: 100%;">
  901. <label class="layui-form-label">选择标签</label>
  902. <div class="layui-input-inline layui-input-wrap addtags" style="width: 415px;">
  903. <input type="text" name="tags" id="labelElement" placeholder="选择标签" autocomplete="off" lay-affix="clear" class="layui-input">
  904. </div>
  905. <!-- <span class="layui-btn layui-btn-primary layui-border-blue addtags">添加标签</button> -->
  906. </div>
  907. <div class="layui-form-item">
  908. <label class="layui-form-label">姓名</label>
  909. <div class="layui-input-inline layui-input-wrap">
  910. <input type="text" name="name" autocomplete="off" lay-affix="clear" class="layui-input">
  911. </div>
  912. </div>
  913. <div class="layui-form-item">
  914. <label class="layui-form-label">电话</label>
  915. <div class="layui-input-inline layui-input-wrap">
  916. <input type="text" name="telephone" autocomplete="off" lay-affix="clear" readonly class="layui-input">
  917. </div>
  918. </div>
  919. <div class="layui-form-item">
  920. <label class="layui-form-label">性别</label>
  921. <div class="layui-input-inline layui-input-wrap">
  922. <select name="gender" lay-filter="aihao">
  923. <option value="未知" selected>未知</option>
  924. <option value="男">男</option>
  925. <option value="女">女</option>
  926. </select>
  927. </div>
  928. </div>
  929. <div class="layui-form-item">
  930. <label class="layui-form-label">年龄</label>
  931. <div class="layui-input-inline layui-input-wrap">
  932. <input type="text" name="age" autocomplete="off" lay-affix="clear" class="layui-input">
  933. </div>
  934. </div>
  935. <div class="layui-form-item">
  936. <label class="layui-form-label">微信</label>
  937. <div class="layui-input-inline layui-input-wrap">
  938. <input type="text" name="weixin" autocomplete="off" lay-affix="clear" class="layui-input">
  939. </div>
  940. </div>
  941. <!-- <div class="layui-form-item">
  942. <label class="layui-form-label">自动定位城市</label>
  943. <div class="layui-input-inline layui-input-wrap">
  944. <input type="text" name="location" readonly lay-verify="required" autocomplete="off"
  945. lay-affix="clear" class="layui-input">
  946. </div>
  947. </div>
  948. <div class="layui-form-item">
  949. <label class="layui-form-label">手机号归属地</label>
  950. <div class="layui-input-inline layui-input-wrap">
  951. <input type="text" name="vercode" readonly lay-verify="required" autocomplete="off"
  952. lay-affix="clear" class="layui-input">
  953. </div>
  954. </div> -->
  955. <div class="layui-form-item">
  956. <label class="layui-form-label">线索创建时间</label>
  957. <div class="layui-input-inline layui-input-wrap">
  958. <input type="text" name="create_time_detail" readonly autocomplete="off" lay-affix="clear"
  959. class="layui-input">
  960. </div>
  961. </div>
  962. <!-- <div class="layui-form-item">
  963. <label class="layui-form-label">最新修改时间</label>
  964. <div class="layui-input-inline layui-input-wrap">
  965. <input type="text" name="create_time" readonly lay-verify="required" autocomplete="off"
  966. lay-affix="clear" class="layui-input">
  967. </div>
  968. </div> -->
  969. <div class="layui-form-item">
  970. <label class="layui-form-label">QQ号</label>
  971. <div class="layui-input-inline layui-input-wrap">
  972. <input type="text" name="qq" autocomplete="off" lay-affix="clear" class="layui-input">
  973. </div>
  974. </div>
  975. <div class="layui-form-item">
  976. <label class="layui-form-label">邮箱</label>
  977. <div class="layui-input-inline">
  978. <input type="text" name="email" autocomplete="off" class="layui-input">
  979. </div>
  980. </div>
  981. <!-- <div class="layui-form-item">
  982. <label class="layui-form-label">日期</label>
  983. <div class="layui-input-inline">
  984. <input type="text" name="date" id="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
  985. </div>
  986. </div> -->
  987. <div class="layui-form-item">
  988. <label class="layui-form-label">详细地址</label>
  989. <div class="layui-input-inline">
  990. <textarea placeholder="请输入详细地址" name="address" class="layui-textarea"></textarea>
  991. </div>
  992. </div>
  993. <div class="layui-form-item">
  994. <label class="layui-form-label">备注</label>
  995. <div class="layui-input-inline">
  996. <textarea placeholder="请输入备注" name="remark" class="layui-textarea"></textarea>
  997. </div>
  998. </div>
  999. <div class="layui-form-item">
  1000. <label class="layui-form-label">手动填写地域</label>
  1001. <div class="layui-input-inline">
  1002. <input type="text" name="location" class="layui-input">
  1003. </div>
  1004. </div>
  1005. <!-- <div class="layui-form-item">
  1006. <label class="layui-form-label">标记</label>
  1007. <div class="layui-input-inline">
  1008. <input type="text" name="employee_remark" class="layui-input">
  1009. </div>
  1010. </div> -->
  1011. <!-- <div class="layui-form-item layui-form-text">
  1012. <label class="layui-form-label">您的房屋面积</label>
  1013. <div class="layui-input-inline">
  1014. <input type="text" name="vercode" lay-verify="required" autocomplete="off" lay-affix="clear"
  1015. class="layui-input">
  1016. </div>
  1017. </div>
  1018. <div class="layui-form-item layui-form-text">
  1019. <label class="layui-form-label">预计装修时间</label>
  1020. <div class="layui-input-inline">
  1021. <input type="text" name="vercode" lay-verify="required" autocomplete="off" lay-affix="clear"
  1022. class="layui-input">
  1023. </div>
  1024. </div> -->
  1025. <div class="layui-form-item" style="width: 100%;padding-bottom: 50px;text-align: center;">
  1026. <button type="button" class="layui-btn popsub" lay-submit lay-filter="popsub">保存</button>
  1027. <button type="button" class="layui-btn layui-btn-primary closebtn" >关闭</button>
  1028. </div>
  1029. </form>
  1030. </div>
  1031. <div style="padding: 16px;" id="poptags">
  1032. <form class="layui-form detailform" lay-filter="tags-val-filter">
  1033. {foreach $table_tags as $val}
  1034. <div class="layui-form-item" style="width:100%;">
  1035. <label class="layui-form-label">{$val.title}</label>
  1036. <div class="{$val.name}">
  1037. <!-- <input type="checkbox" lay-filter="all" name="{$val.name}" value="{$val.value}" lay-skin="primary" title="全选"> -->
  1038. {foreach $val.tags as $v}
  1039. <input type="checkbox" class="labelItem" name="{$v.name}" lay-skin="primary" value="{$v.title}" title="{$v.title}">
  1040. {/foreach}
  1041. </div>
  1042. </div>
  1043. {/foreach}
  1044. <div class="layui-form-item" style="width: 100%;padding-bottom: 50px;text-align: center;">
  1045. <button type="button" class="layui-btn" lay-submit lay-filter="poptagssub">保存</button>
  1046. <button type="button" class="layui-btn layui-btn-primary tagsclosebtn" >关闭</button>
  1047. </div>
  1048. </form>
  1049. </div>
  1050. </body>
  1051. <script src="__LAYUI__/layui/layui.js"></script>
  1052. <script type="text/javascript" src="__STATIC__/js/Sortable.js"></script>
  1053. {/block}
  1054. {block name="js"}
  1055. {if $is_manager == 1}
  1056. <script type="text/html" id="toolbarDemo">
  1057. <div class="layui-btn-container">
  1058. <button class="layui-btn layui-btn-sm" lay-event="getCheckData">批量分配</button>
  1059. </div>
  1060. </script>
  1061. {/if}
  1062. <script type="text/html" id="barDemo">
  1063. <div class="layui-clear-space">
  1064. {{# if(d.is_allocation == 0){ }}
  1065. {{# if(d.is_followup == 1){ }}
  1066. <a style="display:inline-block;color:#f00" lay-event="again" href="javascript:void(0);">分配</a>
  1067. <a style="display:inline-block;color:#338aff" class="layui-btn-xs" lay-event="detail">详情</a>
  1068. {{# } }}
  1069. {{# if(d.is_followup == 2){ }}
  1070. <a style="display:inline-block;color:#f00" lay-event="edit" href="javascript:void(0);">转化</a>
  1071. <!-- <a style="display:inline-block;" lay-event="call" href="javascript:void(0);">拨号</a> -->
  1072. <a style="display:inline-block;color:#338aff" class="layui-btn-xs" lay-event="detail">详情</a>
  1073. {{# } }}
  1074. {{# if(d.is_followup == 3){ }}
  1075. <a style="display:inline-block;color:#f00" lay-event="again" href="javascript:void(0);">分配</a>
  1076. <a style="display:inline-block;color:#f00" lay-event="edit" href="javascript:void(0);">转化</a>
  1077. <!-- <a style="display:inline-block;" lay-event="call" href="javascript:void(0);">拨号</a> -->
  1078. <a style="display:inline-block;color:#338aff" class="layui-btn-xs" lay-event="detail">详情</a>
  1079. {{# } }}
  1080. {{# } }}
  1081. </div>
  1082. </script>
  1083. <script type="text/html" id="community">
  1084. {{d.name}}
  1085. {{# if(d.is_contact==0){ }}
  1086. <!-- <i class="layui-icon layui-icon-fire" style="color:#f00"></i> -->
  1087. <span class="layui-badge">新客户</span>
  1088. {{# } }}
  1089. </script>
  1090. <script type="text/html" id="clue_owner_name">
  1091. {{d.clue_owner_name}}
  1092. {{# if(d.type==4){ }}
  1093. <!-- <i class="layui-icon layui-icon-fire" style="color:#f00"></i> -->
  1094. <span class="layui-badge layui-bg-green">抖音</span>
  1095. {{# } }}
  1096. </script>
  1097. <script type="text/html" id="community_phone">
  1098. {{d.telephone}}
  1099. {{# if(d.is_contact==1){ }}
  1100. <span class="layui-badge layui-bg-green">已联系</span>
  1101. <!-- <i class="layui-icon layui-icon-cellphone" style="color:#f00"></i> -->
  1102. <!-- <span class="dingjingorder jieshaokehu">已联系</span> -->
  1103. {{# } }}
  1104. </script>
  1105. <script type="text/javascript">
  1106. var reload = null,
  1107. resizefun = null;
  1108. layui.config({
  1109. base: '__LAYUI__/',
  1110. urlbase: '/sys'
  1111. }).extend({
  1112. index: 'lib/index' //主入口模块
  1113. }).use(['table', 'laydate','form'], function() {
  1114. var table = layui.table,
  1115. laydate = layui.laydate,
  1116. $ = layui.$;
  1117. form = layui.form;
  1118. fType = 1,
  1119. is_assign = 0,
  1120. firstloading = 0,
  1121. listArr = [],
  1122. idsArr = [];
  1123. var field = {
  1124. 'name': '',
  1125. 'telephone': '',
  1126. 'clue_owner_name': '',
  1127. 'clue_source': '',
  1128. 'create_time_detail': '',
  1129. 'clue_state_name': '',
  1130. 'follow_state_name': '',
  1131. };
  1132. function getAgoDay(n = 0) {
  1133. var date = new Date();
  1134. var seperator = "/"
  1135. var newDate = new Date(date.getTime() - n * 24 * 60 * 60 * 1000);
  1136. var year = newDate.getFullYear();
  1137. var month = newDate.getMonth() + 1;
  1138. var day = newDate.getDate();
  1139. return year.toString() + seperator + month.toString() + seperator + day.toString()
  1140. }
  1141. let arr = [];
  1142. arr.push(getAgoDay(29));
  1143. arr.push(getAgoDay(0));
  1144. var dateObj = {};
  1145. var timeScope = laydate.render({
  1146. elem: '#time',
  1147. type: 'date',
  1148. range: '-',
  1149. value: arr.join(' - '),
  1150. btns: ['now', 'confirm'],
  1151. format: 'yyyy/MM/dd',
  1152. trigger: 'click',
  1153. done: (value, date, endDate) => {
  1154. //控件选择完毕后的回调---点击日期、清空、现在、确定均会触发。
  1155. field['times'] = value;
  1156. $('[name="searchdate"]').val('');
  1157. // layui.form.render('select')
  1158. //执行重载
  1159. fish_list_total(field);
  1160. table.reload('crmsearchlist', {
  1161. where: field,
  1162. page: {
  1163. curr: 1
  1164. }
  1165. });
  1166. }
  1167. });
  1168. form.on('select(datefilter)', function(e) {
  1169. var datearr = [
  1170. [],
  1171. [0, 365],
  1172. [0, 0],
  1173. [1, 1],
  1174. [0, 6],
  1175. [0, 29]
  1176. ];
  1177. var selectArr = [];
  1178. if (e.value == 6) {
  1179. //本月
  1180. var newDate = new Date();
  1181. var year = newDate.getFullYear();
  1182. var month = newDate.getMonth() + 1;
  1183. var day = newDate.getDate();
  1184. selectArr.push(year.toString() + '/' + month.toString() + '/01');
  1185. selectArr.push(year.toString() + '/' + month.toString() + '/' + day.toString());
  1186. } else if (e.value == ''||e.value == 1) {
  1187. $("#time").val("");
  1188. } else if (e.value == 7) {
  1189. //上月
  1190. let now = new Date();
  1191. // 当前月的日期
  1192. let nowDate = now.getDate();
  1193. let lastMonth = new Date(now.getTime());
  1194. // 设置上一个月(这里不需要减1)
  1195. lastMonth.setMonth(lastMonth.getMonth());
  1196. // 设置为0,默认为当前月的最后一天
  1197. lastMonth.setDate(0);
  1198. // 上一个月的天数
  1199. let daysOflastMonth = lastMonth.getDate();
  1200. // 设置上一个月的日期,如果当前月的日期大于上个月的总天数,则为最后一天
  1201. var year = lastMonth.getFullYear();
  1202. var month = lastMonth.getMonth() + 1;
  1203. selectArr.push(year.toString() + '/' + month.toString() + '/01');
  1204. selectArr.push(year.toString() + '/' + month.toString() + '/' + daysOflastMonth
  1205. .toString());
  1206. } else {
  1207. //0 全部 1今天 2昨天 3近7天 4 近30天
  1208. selectArr.push(getAgoDay(datearr[e.value][1]));
  1209. selectArr.push(getAgoDay(datearr[e.value][0]));
  1210. }
  1211. timeScope.config.value = selectArr.join(' - ');
  1212. $('input[name="time"]').val(selectArr.join(' - '));
  1213. firstloading = 0;
  1214. field['times'] = selectArr.join(' - ');
  1215. //执行重载
  1216. fish_list_total(field);
  1217. table.reload('crmsearchlist', {
  1218. where: field,
  1219. page: {
  1220. curr: 1
  1221. }
  1222. });
  1223. });
  1224. var keys = $('[name="searchkey"]').val();
  1225. form.on('select(searchkey)', function(e) {
  1226. field[keys] = '';
  1227. })
  1228. $('.addtags').click(function(){
  1229. let labelVal = $("#labelElement").val();
  1230. let labelArrs = labelVal.split(";");
  1231. console.log(labelArrs)
  1232. $(".labelItem").each(function() {
  1233. if (labelArrs.includes($(this).val())) {
  1234. $(this).prop('checked',true);
  1235. form.render();
  1236. }
  1237. })
  1238. form.render();
  1239. tagsView = layer.open({
  1240. type: 1,
  1241. area: ['800px', '600px'],
  1242. shade: 0.1,
  1243. title: '添加标签',
  1244. shadeClose: true,
  1245. id: 'ID-demo-layer-direction-r-1',
  1246. content: $('#poptags'),
  1247. success: function() {
  1248. // 指定开关事件
  1249. laydate.render({
  1250. elem: '#date'
  1251. });
  1252. },
  1253. end: function() {
  1254. $(".labelItem").each(function() {
  1255. $(this).prop('checked', false);
  1256. })
  1257. form.render();
  1258. }
  1259. });
  1260. })
  1261. form.on('submit(poptagssub)', function (data) {
  1262. console.log(data.field);
  1263. let valArr = [];
  1264. Object.keys(data.field).forEach(key => {
  1265. valArr.push(data.field[key])
  1266. })
  1267. $("#labelElement").val(valArr.join(';'));
  1268. layer.close(tagsView)
  1269. });
  1270. form.on('checkbox(all)', function (data) {
  1271. console.log(data);
  1272. var formdata = JSON.parse(JSON.stringify(form.val('tags-val-filter')));
  1273. form.val('tags-val-filter', {});
  1274. // if (data.value === '0') {
  1275. // if (data.elem.checked) {
  1276. // formdata.all0_1 = 'on';
  1277. // formdata.all0_2 = 'on';
  1278. // formdata.all0_3 = 'on';
  1279. // formdata.all0_4 = 'on';
  1280. // } else {
  1281. // delete formdata.all0_1;
  1282. // delete formdata.all0_2;
  1283. // delete formdata.all0_3;
  1284. // delete formdata.all0_4;
  1285. // }
  1286. // } else if (data.value === '1') {
  1287. // if (data.elem.checked) {
  1288. // formdata.all1_1 = 'on';
  1289. // formdata.all1_2 = 'on';
  1290. // formdata.all1_3 = 'on';
  1291. // formdata.all1_4 = 'on';
  1292. // } else {
  1293. // delete formdata.all1_1;
  1294. // delete formdata.all1_2;
  1295. // delete formdata.all1_3;
  1296. // delete formdata.all1_4;
  1297. // }
  1298. // } else if (data.value === '2') {
  1299. // if (data.elem.checked) {
  1300. // formdata.all2_1 = 'on';
  1301. // formdata.all2_2 = 'on';
  1302. // formdata.all2_3 = 'on';
  1303. // formdata.all2_4 = 'on';
  1304. // } else {
  1305. // delete formdata.all2_1;
  1306. // delete formdata.all2_2;
  1307. // delete formdata.all2_3;
  1308. // delete formdata.all2_4;
  1309. // }
  1310. // }
  1311. let datas = JSON.parse(JSON.stringify(formdata));
  1312. form.val('tags-val-filter', datas || {});
  1313. form.render();
  1314. if (!data.elem.checked) {
  1315. $('.all' + data.value + ' input').prop("checked", false);
  1316. $('.all' + data.value + ' .layui-form-checked').removeClass("layui-form-checked");
  1317. }
  1318. });
  1319. $('.tagsclosebtn').click(function () {
  1320. layer.close(tagsView)
  1321. })
  1322. form.on('submit(searchkeywords)', function(data) {
  1323. firstloading = 0;
  1324. keys = $('[name="searchkey"]').val();
  1325. field.is_allocation = $('[name="is_allocation"]').val();
  1326. field.advertiser_id = $('[name="advertiser_id"]').val();
  1327. field.is_contact = $('[name="is_contact"]').val();
  1328. field.is_fenpei = $('[name="is_fenpei"]').val();
  1329. field[keys] = $('input[name="keyname"]').val();
  1330. //执行重载
  1331. fish_list_total(field);
  1332. table.reload('crmsearchlist', {
  1333. where: field,
  1334. page: {
  1335. curr: 1
  1336. }
  1337. });
  1338. });
  1339. form.on('submit(searchkeywords1)', function(data) {
  1340. firstloading = 0;
  1341. field.is_repeat = 1;
  1342. //执行重载
  1343. fish_list_total(field);
  1344. table.reload('crmsearchlist', {
  1345. where: field,
  1346. page: {
  1347. curr: 1
  1348. }
  1349. });
  1350. });
  1351. fish_list_total({});
  1352. function fish_list_total(field)
  1353. {
  1354. $.ajax({
  1355. type: "post",
  1356. url: '{:url("empcrm/tencent_list_total")}',
  1357. data: field,
  1358. success: function(res) {
  1359. if (res.code == 0) {
  1360. let data = res.data;
  1361. $.each(data, function (key,val) {
  1362. $('.' + key).text(val);
  1363. })
  1364. }else if(res.code==403){
  1365. $(".exitbtn").trigger("click");
  1366. }
  1367. }
  1368. })
  1369. }
  1370. $('.closebtn').click(function(){
  1371. layer.closeAll()
  1372. })
  1373. // //详情信息修改提交
  1374. form.on('submit(popsub)', function (data) {
  1375. $.ajax({
  1376. type: "post",
  1377. url: '{:url("empcrm/fish_update_data")}',
  1378. data: data.field,
  1379. success: function (res) {
  1380. if (res.code == 403) {
  1381. $(".exitbtn").trigger("click");
  1382. }
  1383. if (res.code == 1) {
  1384. alert(res.msg);
  1385. }
  1386. if (res.code == 0) {
  1387. alert('保存成功');
  1388. }
  1389. firstloading = 0;
  1390. reload();
  1391. layer.closeAll()
  1392. }
  1393. })
  1394. // return false;
  1395. });
  1396. function closepop(){
  1397. layer.closeAll()
  1398. }
  1399. // laydate.render({
  1400. // elem: '#visitime',
  1401. // max: 0
  1402. // , trigger: 'click'
  1403. // });
  1404. resizefun = function() {
  1405. table.resize('crmsearchlist');
  1406. };
  1407. reload = function() {
  1408. table.reload('crmsearchlist', {
  1409. where: field
  1410. }, true);
  1411. };
  1412. var flag = true;
  1413. // 工具栏事件
  1414. table.on('toolbar(crmsearchlist)', function(obj){
  1415. var id = obj.config.id;
  1416. var checkStatus = table.checkStatus(id);
  1417. var othis = lay(this);
  1418. switch(obj.event){
  1419. case 'getCheckData':
  1420. let arr=$('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-body input[name="layTableCheckbox"]');
  1421. let flag=false;
  1422. for(let i in arr){
  1423. if(!arr[0].checked){
  1424. flag=true;
  1425. }
  1426. }
  1427. if(flag){
  1428. layer.msg('请先选择要分配的数据');
  1429. return false;
  1430. }
  1431. //var tmp_data = array_column(data, 'id');
  1432. layer.open({
  1433. type: 2,
  1434. title: ['重新分配', 'color:#333333;background-color:#D8E6F1;'],
  1435. content: "{:url('empcrm/fish_validation_view')}" + "?id=" + idsArr.join(','),
  1436. resize: false,
  1437. area: ['20%', '20%']
  1438. });
  1439. break;
  1440. };
  1441. });
  1442. function array_column(array, field) {
  1443. return array.map(v => v[field]);
  1444. }
  1445. table.on('tool(crmsearchlist)', function(result) {
  1446. let event = result.event;
  1447. let row = result.data;
  1448. flag = true;
  1449. if (event === "again") {
  1450. flag = false;
  1451. layer.open({
  1452. type: 2,
  1453. title: ['重新分配', 'color:#333333;background-color:#D8E6F1;'],
  1454. content: "{:url('empcrm/fish_validation_view')}" + "?id=" + result.data.id,
  1455. resize: false,
  1456. area: ['20%', '20%']
  1457. });
  1458. return false;
  1459. } else if (event === "edit") {
  1460. flag = false;
  1461. if (confirm('是否转化为有效线索?')) {
  1462. $.ajax({
  1463. url: '{:url("empcrm/fish_validation")}',
  1464. data: {
  1465. customer_id: row.id,
  1466. },
  1467. type: 'post',
  1468. success: function(res) {
  1469. if (res.code == 0) {
  1470. alert('转化成功!!!');
  1471. } else if (res.code == 403) {
  1472. $(".exitbtn").trigger("click");
  1473. } else {
  1474. alert(res.msg)
  1475. }
  1476. }
  1477. });
  1478. }
  1479. return false;
  1480. }else if (event === "call") {
  1481. if (confirm('是否确认拨打客户电话?')) {
  1482. $.ajax({
  1483. url: '{:url("empcrm/create_bridge_call_tx")}'
  1484. , data: {
  1485. customer_id: row.id,
  1486. }
  1487. , type: 'post'
  1488. , success: function (res) {
  1489. if (res.code == 0) {
  1490. alert('拨号成功');
  1491. }else if(res.code == 403){
  1492. $(".exitbtn").trigger("click");
  1493. } else {
  1494. alert(res.msg)
  1495. }
  1496. }
  1497. });
  1498. }
  1499. return false;
  1500. } else if (event === "detail") {
  1501. $('#popinfo .clue_owner_name').html(row.clue_owner_name);
  1502. $('#popinfo .create_time').html(row.create_time_detail);
  1503. $('#popinfo .telephone').html(row.telephone);
  1504. $('#popinfo .app_name').html(row.app_name);
  1505. $('#popinfo .clue_type').html(row.clue_type);
  1506. $('#popinfo .clue_source').html(row.clue_source);
  1507. if (row.is_followup == 1){
  1508. $('#popinfo .popsub').hide();
  1509. }else{
  1510. $('#popinfo .popsub').show();
  1511. }
  1512. form.val('demo-val-filter', row);
  1513. layer.open({
  1514. type: 1,
  1515. offset: 'r',
  1516. anim: 'slideLeft', // 从右往左
  1517. area: ['500px', '100%'],
  1518. shade: 0.1,
  1519. title: row.name || '未命名',
  1520. shadeClose: true,
  1521. id: 'ID-demo-layer-direction-r',
  1522. content: $('#popinfo'),
  1523. success: function() {
  1524. // 指定开关事件
  1525. laydate.render({
  1526. elem: '#date'
  1527. });
  1528. }
  1529. });
  1530. } else {
  1531. flag = true;
  1532. }
  1533. flag = true;
  1534. })
  1535. ajaxlist();
  1536. function ajaxlist() {
  1537. $.ajax({
  1538. type: "post",
  1539. url: '{:url("empcrm/poolFieldsList")}',
  1540. data: {
  1541. type: 12
  1542. },
  1543. success: function(res) {
  1544. if (res.code == 403) {
  1545. $(".exitbtn").trigger("click");
  1546. }
  1547. data = res.data;
  1548. tableData = data;
  1549. var cols = [[]];
  1550. {if $is_manager == 1}
  1551. cols = [
  1552. [
  1553. {
  1554. type: 'checkbox',
  1555. width: 60,
  1556. align: 'center',
  1557. fixed: "left",
  1558. }
  1559. ]
  1560. ];
  1561. {/if}
  1562. $.each(data, function(key, val) {
  1563. if (key == 'name') {
  1564. cols[0].push({
  1565. field: key,
  1566. title: val['name'],
  1567. minWidth: 120,
  1568. align: 'center',
  1569. show: val['show'],
  1570. fixed: "left",
  1571. templet: '#community',
  1572. });
  1573. } else if (key == 'telephone') {
  1574. cols[0].push({
  1575. field: key,
  1576. title: val['name'],
  1577. minWidth: 150,
  1578. align: 'center',
  1579. show: val['show'],
  1580. // fixed: "left",
  1581. templet: '#community_phone',
  1582. });
  1583. }
  1584. // else if (key == 'clue_owner_name') {
  1585. // cols[0].push({
  1586. // field: key,
  1587. // title: val['name'],
  1588. // minWidth: 150,
  1589. // align: 'center',
  1590. // show: val['show'],
  1591. // // fixed: "left",
  1592. // templet: '#clue_owner_name',
  1593. // });
  1594. // }
  1595. else if (key == 'tags' && val['show'] == 1) {
  1596. cols[0].push({
  1597. field: key,
  1598. title: val['name'],
  1599. minWidth: 200,
  1600. align: 'center',
  1601. show: val['show']
  1602. });
  1603. } else if (key == 'create_time_detail' && val['show'] == 1) {
  1604. cols[0].push({
  1605. field: key,
  1606. title: val['name'],
  1607. minWidth: 160,
  1608. align: 'center',
  1609. show: val['show']
  1610. });
  1611. } else {
  1612. if (val['show'] == 1) {
  1613. cols[0].push({
  1614. field: key,
  1615. title: val['name'],
  1616. minWidth: 120,
  1617. align: 'center',
  1618. show: val['show']
  1619. });
  1620. }
  1621. }
  1622. })
  1623. cols[0].push({
  1624. title: '操作',
  1625. width: 140,
  1626. align: 'center',
  1627. fixed: "right",
  1628. templet: '#barDemo'
  1629. })
  1630. cols[0].push({
  1631. title: '',
  1632. width: 30,
  1633. align: 'center',
  1634. fixed: "right",
  1635. templet: ''
  1636. })
  1637. let url = '{:url("empcrm/tencent_list")}';
  1638. table.render({
  1639. elem: '#crmsearchlist',
  1640. id:'crmsearchlist',
  1641. url: url,
  1642. cols: cols,
  1643. page: true,
  1644. toolbar: '#toolbarDemo',
  1645. defaultToolbar:[],
  1646. limits: [17],
  1647. limit: 17, //每页默认显示的数量,
  1648. height: 'full-120',
  1649. text: '对不起,加载出现异常!',
  1650. done: function(res, curr, count) {
  1651. // form.render('checkbox');
  1652. listArr = res.data;
  1653. form.render('checkbox');
  1654. searchHtmlBody(curr);
  1655. }
  1656. });
  1657. }
  1658. });
  1659. }
  1660. form.on('checkbox(layTableAllChoose)', function (obj) {
  1661. let that=this;
  1662. let all_child=$('input[name=layTableCheckbox]');
  1663. all_child.each(function(index, item){
  1664. item.checked = that.checked;
  1665. });
  1666. let arr=$('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-body tr');
  1667. if (that.checked) {
  1668. idsArr = listArr.map(v => v.id);
  1669. }else{
  1670. idsArr=[];
  1671. }
  1672. form.render('checkbox');
  1673. });
  1674. table.on('checkbox(crmsearchlist)',function(obj){
  1675. let arr=$('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-body input[name="layTableCheckbox"]');
  1676. let flag=false;
  1677. idsArr=[];
  1678. for(let j=0;j< arr.length;j++){
  1679. if(!arr[j].checked){
  1680. flag=true;
  1681. $('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-header input[name="layTableCheckbox"]')[0].checked=false;
  1682. $('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-header .layui-form-checkbox')[0].classList.remove('layui-form-checked');
  1683. }
  1684. if(arr[j].checked){
  1685. idsArr.push(listArr[j].id);
  1686. }
  1687. }
  1688. if(!flag){
  1689. $('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-header input[name="layTableCheckbox"]')[0].checked=true;
  1690. $('.crmsearchlist .layui-table-box .layui-table-fixed-l .layui-table-header .layui-form-checkbox')[0].classList.add('layui-form-checked');
  1691. }
  1692. })
  1693. $('.lay-setting').click(function() {
  1694. let arr = [];
  1695. $.each(data, function(key, val) {
  1696. arr.push({
  1697. ...val,
  1698. field: key
  1699. });
  1700. })
  1701. renderTableSwitch(arr, 12);
  1702. $('.lay-mask').removeClass('layui-hide');
  1703. })
  1704. $('.layui-icon-close').click(function() {
  1705. $('.lay-mask').addClass('layui-hide');
  1706. })
  1707. $('.lay-block').click(function(e) {
  1708. e.stopPropagation();
  1709. })
  1710. $('.lay-mask').click(function() {
  1711. $(this).addClass('layui-hide');
  1712. })
  1713. function renderTableSwitch(data, types) {
  1714. let htmls = data.map((item, index) => {
  1715. return `<div class="sort_time lay-item">
  1716. <div class="sort_lis01">
  1717. <span>${item.name}</span>
  1718. </div>
  1719. <div class="sort_lis02 ${item.field == 'name' ? 'hideclass' : ''}">
  1720. <input type="checkbox" ${item.field == 'name' ? 'disabled' : ''} lay-filter="tableSort" ${item.show == 1 && item.field !== 'name' ? 'checked' : ''} name="${item.field}" lay-skin="switch">
  1721. </div>
  1722. </div>`;
  1723. }).join('');
  1724. $('.layui-content').html(htmls);
  1725. setTimeout(() => {
  1726. form.render();
  1727. var check = '';
  1728. var names = '';
  1729. $('.hideclass').find('.layui-checkbox-disbaled').removeClass('layui-form-onswitch');
  1730. form.on('switch(tableSort)', function(data) {
  1731. getdatalist(types);
  1732. })
  1733. if (types != 5) {
  1734. new Sortable($('.layui-content')[0], {
  1735. handle: '.lay-item', // handle's class
  1736. animation: 150,
  1737. // 结束拖拽
  1738. onEnd: function( /**Event*/ evt) {
  1739. getdatalist(types, 0);
  1740. },
  1741. });
  1742. }
  1743. }, 300)
  1744. }
  1745. if (window.performance) {
  1746. localStorage.setItem('data','');
  1747. }
  1748. function getdatalist(types) {
  1749. let getCheckedField = $('.sort_time');
  1750. let itemArr = [];
  1751. let check;
  1752. getCheckedField.each(function(i) {
  1753. let ischeck = $(this).find('input').prop("checked");
  1754. if (ischeck) {
  1755. check = 1
  1756. } else {
  1757. check = 0
  1758. }
  1759. let names = $(this).find('input').attr('name');
  1760. itemArr.push({
  1761. name: names,
  1762. show: check,
  1763. sort: i + 1
  1764. });
  1765. })
  1766. var datajson = JSON.stringify(itemArr);
  1767. $.ajax({
  1768. type: "post",
  1769. url: '{:url("empcrm/poolFieldsSet")}',
  1770. data: {
  1771. type: types,
  1772. content: datajson
  1773. },
  1774. success: function(res) {
  1775. if (res.code == 403) {
  1776. $(".exitbtn").trigger("click");
  1777. }
  1778. firstloading = 0;
  1779. ajaxlist();
  1780. }
  1781. })
  1782. }
  1783. var source_nameHtml = `<div class="wpsa psinput">
  1784. <div class="triangle"></div>
  1785. <form class="layui-form">
  1786. <input class="pdl12 kwovsint" id="select_check" placeholder="输入关键字....." type="text" id=""/>
  1787. <div class="check_li">
  1788. <div style="overflow:hidden;padding-bottom:5px;text-align: left;">
  1789. <span class="checkAlls">全选</span>
  1790. <span style="margin:0 10px;">/</span>
  1791. <span class="nocheckAlls">清除</span>
  1792. </div>
  1793. <ul class="check_ul_list">
  1794. {volist name="soudata_now" key="ky" id="vo"}
  1795. <li class="check_li_">
  1796. <input class="checkbox" type="checkbox" name="check_m" lay-filter="checkall02" value="{$ky}">
  1797. <p class="check_name">{$vo}</p>
  1798. </li>
  1799. {/volist}
  1800. </ul>
  1801. </div>
  1802. <div class="search_btns">
  1803. <div class="button_">
  1804. <a class="submitbtn">确定</a>
  1805. <a class="dsnonebtn">取消</a>
  1806. </div>
  1807. </div>
  1808. </form>
  1809. </div>`;
  1810. var employee_nameHtml = `<div class="wpsa psinput">
  1811. <div class="triangle"></div>
  1812. <form class="layui-form">
  1813. <input class="pdl12 kwovsint" id="select_check" placeholder="输入关键字....." type="text" id=""/>
  1814. <div class="check_li">
  1815. <div style="overflow:hidden;padding-bottom:5px;text-align: left;">
  1816. <span class="checkAlls">全选</span>
  1817. <span style="margin:0 10px;">/</span>
  1818. <span class="nocheckAlls">清除</span>
  1819. </div>
  1820. <ul class="check_ul_list">
  1821. {volist name="employee_list" id="vo"}
  1822. <li class="check_li_">
  1823. <input class="checkbox" type="checkbox" name="check_m" lay-filter="checkall02" value="{$vo.name}">
  1824. <p class="check_name">{$vo.name}</p>
  1825. </li>
  1826. {/volist}
  1827. </ul>
  1828. </div>
  1829. <div class="search_btns">
  1830. <div class="button_">
  1831. <a class="submitbtn">确定</a>
  1832. <a class="dsnonebtn">取消</a>
  1833. </div>
  1834. </div>
  1835. </form>
  1836. </div>`;
  1837. var designer_nameHtml = `<div class="wpsa psinput">
  1838. <div class="triangle"></div>
  1839. <form class="layui-form">
  1840. <input class="pdl12 kwovsint" id="select_check" placeholder="输入关键字....." type="text" id=""/>
  1841. <div class="check_li">
  1842. <div style="overflow:hidden;padding-bottom:5px;text-align: left;">
  1843. <span class="checkAlls">全选</span>
  1844. <span style="margin:0 10px;">/</span>
  1845. <span class="nocheckAlls">清除</span>
  1846. </div>
  1847. <ul class="check_ul_list">
  1848. {foreach $clue_state as $ky => $vo}
  1849. <li class="check_li_">
  1850. <input class="checkbox" type="checkbox" name="check_m" lay-filter="checkall02" value="{$ky}">
  1851. <p class="check_name">{$vo}</p>
  1852. </li>
  1853. {/foreach}
  1854. </ul>
  1855. </div>
  1856. <div class="search_btns">
  1857. <div class="button_">
  1858. <a class="submitbtn">确定</a>
  1859. <a class="dsnonebtn">取消</a>
  1860. </div>
  1861. </div>
  1862. </form>
  1863. </div>`;
  1864. var selHtml2 = `<div class="wpsa psinput">
  1865. <div class="triangle"></div>
  1866. <form class="layui-form dsa" onsubmit="return false;">
  1867. <input class="pdl12 kwovsint" id="kwovsint" placeholder="输入关键字....." type="text" id=""/>
  1868. <div class="search_btns">
  1869. <div class="button_">
  1870. <a class="submitbtn">确定</a>
  1871. <a class="resetbtn">重置</a>
  1872. </div>
  1873. </div>
  1874. </form>
  1875. </div>`;
  1876. var detatime = `<div class="wpsa psinput psinput02">
  1877. <div class="triangle"></div>
  1878. <form class="layui-form dsa" onsubmit="return false;">
  1879. <div data-type="" class="selecstDateBox">
  1880. <div data-type="" class="date-flex1">
  1881. <div data-type="today" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">今日
  1882. </div>
  1883. <div data-type="yesterday" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">昨日</div>
  1884. <div data-type="week" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">本周
  1885. </div>
  1886. <div data-type="lastWeek" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">上周</div>
  1887. <div data-type="month" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">本月
  1888. </div>
  1889. <div data-type="lastMonth" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">上月</div>
  1890. <div data-type="all" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">累计</div>
  1891. </div>
  1892. <div data-type="" class="date-box">
  1893. <input type="text" id="select_sDate" placeholder="选择开始时间 - 结束时间" readonly autocomplete="off" class="layui-input select_sDate">
  1894. </div>
  1895. </div>
  1896. <div class="search_btns">
  1897. <div class="button_">
  1898. <a class="submitbtn">确定</a>
  1899. <a class="resetbtn">重置</a>
  1900. </div>
  1901. </div>
  1902. </form>
  1903. </div>`;
  1904. var tags_nameHtml = `<div class="wpsa psinput">
  1905. <div class="triangle"></div>
  1906. <form class="layui-form">
  1907. <input class="pdl12 kwovsint" id="select_check" placeholder="输入关键字....." type="text" id=""/>
  1908. <div class="check_li">
  1909. <div style="overflow:hidden;padding-bottom:5px;text-align: left;">
  1910. <span class="checkAlls">全选</span>
  1911. <span style="margin:0 10px;">/</span>
  1912. <span class="nocheckAlls">清除</span>
  1913. </div>
  1914. <ul class="check_ul_list">
  1915. {volist name="table_tags" id="vo"}
  1916. {volist name="vo.tags" id="va"}
  1917. <li class="check_li_">
  1918. <input class="checkbox" type="checkbox" name="check_m" lay-filter="checkall02" value="{$va.title}">
  1919. <p class="check_name">{$va.title}</p>
  1920. </li>
  1921. {/volist}
  1922. {/volist}
  1923. </ul>
  1924. </div>
  1925. <div class="search_btns">
  1926. <div class="button_">
  1927. <a class="submitbtn">确定</a>
  1928. <a class="dsnonebtn">取消</a>
  1929. </div>
  1930. </div>
  1931. </form>
  1932. </div>`;
  1933. var org_id = `<div class="wpsa psinput">
  1934. <div class="triangle"></div>
  1935. <form class="layui-form">
  1936. <input class="pdl12 kwovsint" id="select_check" placeholder="输入关键字....." type="text" id=""/>
  1937. <div class="check_li">
  1938. <div style="overflow:hidden;padding-bottom:5px;text-align: left;">
  1939. <span class="checkAlls">全选</span>
  1940. <span style="margin:0 10px;">/</span>
  1941. <span class="nocheckAlls">清除</span>
  1942. </div>
  1943. <ul class="check_ul_list">
  1944. {volist name="emporg_list" id="vo"}
  1945. <li class="check_li_">
  1946. <input class="checkbox" type="checkbox" name="check_m" lay-filter="checkall02" value="{$vo.id}">
  1947. <p class="check_name">{$vo.name}</p>
  1948. </li>
  1949. {/volist}
  1950. </ul>
  1951. </div>
  1952. <div class="search_btns">
  1953. <div class="button_">
  1954. <a class="submitbtn">确定</a>
  1955. <a class="dsnonebtn">取消</a>
  1956. </div>
  1957. </div>
  1958. </form>
  1959. </div>`;
  1960. function searchHtmlBody(pages) {
  1961. setTimeout(function() {
  1962. $('body').find('.layui-table-header').find("tr").each(function(index, val) {
  1963. apphtml02($(this), 'th[data-field="name"]', '客户姓名', selHtml2, 'name', 'ishtml2');
  1964. apphtml02($(this), 'th[data-field="telephone"]', '手机号', selHtml2, 'telephone', 'ishtml2');
  1965. {if $is_manager == 1}
  1966. apphtml02($(this), 'th[data-field="clue_owner_name"]', '所属员工', employee_nameHtml, 'clue_owner_name', 'ishtml1');
  1967. {/if}
  1968. apphtml02($(this), 'th[data-field="org_id"]','所属部门',org_id,'org_id','ishtml1');
  1969. apphtml02($(this), 'th[data-field="tags"]', '线索标签', tags_nameHtml, 'tags', 'ishtml1');
  1970. apphtml02($(this), 'th[data-field="clue_source"]', '线索来源', source_nameHtml, 'clue_source', 'ishtml1');
  1971. apphtml02($(this), 'th[data-field="create_time_detail"]', '线索创建时间', detatime,
  1972. 'create_time_detail', 'detatime');
  1973. apphtml02($(this), 'th[data-field="clue_state_name"]', '线索阶段',
  1974. designer_nameHtml, 'clue_state_name', 'ishtml1');
  1975. apphtml02($(this), 'th[data-field="follow_state_name"]', '通话状态', selHtml2,
  1976. 'follow_state_name', 'ishtml2');
  1977. $(this).find('th[data-field="name"]').find('.psinput').css({
  1978. 'left': 0,
  1979. 'marginLeft': 0
  1980. })
  1981. $(this).find('th[data-field="name"]').find('.triangle').css({
  1982. 'left': '25%'
  1983. })
  1984. })
  1985. if (pages == 1 && firstloading < 1) {
  1986. firstloading++;
  1987. $('.layui-table-body:eq(0),.layui-table-header:eq(0)').wrapAll(
  1988. "<div class='scroll_body'></div>");
  1989. }
  1990. if (localStorage.getItem('data')) {
  1991. var bodyjson = JSON.parse(localStorage.getItem('data'));
  1992. var listarr = [];
  1993. if (bodyjson) {
  1994. $.each(bodyjson, function(i, v) {
  1995. if (v) {
  1996. listarr.push(v);
  1997. $('body').find('.layui-table-header').find("tr th").each(function(
  1998. n, va) {
  1999. if (i == $(this).data('field')) {
  2000. $('body').find('.layui-table-header').find("tr th")
  2001. .eq(n).find('img.mapps').attr('src',
  2002. '__STATIC__/img/search_ico02.png');
  2003. if (i == 'name' || i == 'phone' || i ==
  2004. 'follow_state_name') {
  2005. $('body').find('.layui-table-header').find(
  2006. "tr th").eq(n).find('.kwovsint').val(v);
  2007. } else if (i == 'create_time_detail') {
  2008. $('body').find('.layui-table-header').find(
  2009. "tr th").eq(n).find('.select_sDate')
  2010. .val(v);
  2011. } else {
  2012. $.each(listarr, function(s, vv) {
  2013. var checkarrs = listarr[s].split(
  2014. ',');
  2015. $.each(checkarrs, function(iiii,
  2016. vvvv) {
  2017. $('body').find(
  2018. '.layui-table-header'
  2019. ).find("tr th")
  2020. .eq(n).find(
  2021. '.check_ul_list li'
  2022. ).each(
  2023. function(ii,
  2024. vvv) {
  2025. if (vvvv ==
  2026. $(this)
  2027. .find(
  2028. 'input'
  2029. )
  2030. .val()
  2031. ) {
  2032. $('body')
  2033. .find(
  2034. '.layui-table-header'
  2035. )
  2036. .find(
  2037. "tr th"
  2038. )
  2039. .eq(
  2040. n)
  2041. .find(
  2042. '.check_ul_list li'
  2043. )
  2044. .eq(
  2045. ii
  2046. )
  2047. .find(
  2048. 'input[type="checkbox"]'
  2049. )
  2050. .prop(
  2051. 'checked',
  2052. true
  2053. )
  2054. }
  2055. })
  2056. })
  2057. })
  2058. }
  2059. }
  2060. })
  2061. }
  2062. })
  2063. }
  2064. form.render('checkbox');
  2065. }
  2066. }, 100)
  2067. function apphtml02(this_, obj, names, htmlbox, idarr, is_html) {
  2068. this_.find(obj).find('div').eq(0).empty();
  2069. this_.find(obj).addClass('is_show');
  2070. this_.find(obj).find('div.layui-table-cell').eq(0).prepend(
  2071. '<span class="btnbtn5 dsa" data-isshow="1">' + names +
  2072. '</span><img class="mapps" src="__STATIC__/img/search_ico01.png"/>');
  2073. this_.find(obj).find('div.layui-table-cell').eq(0).append(htmlbox);
  2074. form.render();
  2075. setTimeout(function() {
  2076. var search_input = this_.find(obj).find("#select_check"),
  2077. search_content = this_.find(obj).find(".check_li_");
  2078. $(search_input).on("keyup", function() {
  2079. this_.find(obj).find(".check_li_").hide().filter(":contains(" +
  2080. search_input.val().trim() + ")").show();
  2081. });
  2082. function stopPropagation(e) {
  2083. if (e.stopPropagation)
  2084. e.stopPropagation();
  2085. else
  2086. e.cancelBubble = true;
  2087. }
  2088. this_.find(obj).find('.dsnonebtn').on('click', function() {
  2089. this_.find(obj).find('div.layui-table-cell').eq(0).find('.psinput').hide();
  2090. this_.find(obj).find('div.layui-table-cell').eq(0).find('.btnbtn5').attr(
  2091. 'data-isshow', 1);
  2092. this_.find(obj).find('div.layui-table-cell').eq(0).find('input').val('');
  2093. })
  2094. var isradio = 1;
  2095. this_.find(obj).find('div.layui-table-cell').eq(0).find('.btnbtn5,.mapps').on('click',
  2096. function(e) {
  2097. $('.is_show').find('.psinput').hide();
  2098. if ($(this).attr('data-isshow') == 1) {
  2099. $(this).siblings('.psinput').show();
  2100. $(this).attr('data-isshow', 0)
  2101. } else {
  2102. $(this).siblings('.psinput').hide();
  2103. $(this).attr('data-isshow', 1)
  2104. }
  2105. })
  2106. this_.find(obj).find('.checkAlls').on('click', function() {
  2107. this_.find(obj).find('.checkbox').each(function(index, item) {
  2108. this_.find(obj).find('.checkbox').eq(index).prop('checked',
  2109. 'checked')
  2110. });
  2111. form.render('checkbox');
  2112. })
  2113. this_.find(obj).find('.nocheckAlls').on('click', function() {
  2114. this_.find(obj).find('.checkbox').each(function(index, item) {
  2115. this_.find(obj).find('.checkbox').eq(index).prop('checked', '')
  2116. });
  2117. form.render('checkbox');
  2118. })
  2119. this_.find(obj).find(".checkdeta").each(function(i, v) {
  2120. form.on('checkbox(checkall03)', function(data) {
  2121. this_.find(obj).find(".checkdeta").prop('checked', false);
  2122. data.elem.checked = true;
  2123. form.render('checkbox');
  2124. })
  2125. })
  2126. this_.find(obj).find('div.layui-table-cell').eq(0).find('.resetbtn').on('click',
  2127. function() {
  2128. $(this).parents('.search_btns').siblings('.kwovsint').val('');
  2129. $(this).parents('.search_btns').siblings().find('.select_sDate').val('');
  2130. $(this).parents('.search_btns').siblings().find('.jestart').val('');
  2131. $(this).parents('.search_btns').siblings().find('.jeend').val('');
  2132. })
  2133. if (is_html == 'detatime') {
  2134. laydate.render({
  2135. elem: '#select_sDate' //指定元素
  2136. ,
  2137. type: 'date',
  2138. format: 'yyyy/MM/dd',
  2139. range: true,
  2140. trigger: 'click', //呼出事件改成click
  2141. done: function(value, date, endDate) {
  2142. }
  2143. });
  2144. $('.date-flex div').click(function() {
  2145. let type = $(this).prop('dataset').type;
  2146. if (type == 'today') {
  2147. $('.select_date').val(`${dateObj.today} - ${dateObj.today}`);
  2148. } else if (type == 'yesterday') {
  2149. $('.select_date').val(
  2150. `${dateObj.yesterday} - ${dateObj.yesterday}`);
  2151. } else if (type == 'week') {
  2152. $('.select_date').val(
  2153. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`);
  2154. } else if (type == 'lastWeek') {
  2155. $('.select_date').val(
  2156. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`);
  2157. } else if (type == 'month') {
  2158. $('.select_date').val(
  2159. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  2160. );
  2161. } else if (type == 'lastMonth') {
  2162. $('.select_date').val(
  2163. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  2164. );
  2165. } else {
  2166. $('.select_date').val('');
  2167. }
  2168. })
  2169. $('.date-flex1 div').click(function() {
  2170. let type = $(this).prop('dataset').type;
  2171. if (type == 'today') {
  2172. itmesss = dateToYYYYMMDD(dateObj.today);
  2173. itmesss2 = dateToYYYYMMDD(dateObj.today);
  2174. $('.select_sDate').val(itmesss + ' - ' + itmesss2);
  2175. // $('.select_sDate').val(`${dateObj.today} - ${dateObj.today}`);
  2176. } else if (type == 'yesterday') {
  2177. itmesss = dateToYYYYMMDD(dateObj.yesterday);
  2178. itmesss2 = dateToYYYYMMDD(dateObj.yesterday);
  2179. $('.select_sDate').val(itmesss + ' - ' + itmesss2);
  2180. // $('.select_sDate').val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
  2181. } else if (type == 'week') {
  2182. $('.select_sDate').val(
  2183. `${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`);
  2184. } else if (type == 'lastWeek') {
  2185. $('.select_sDate').val(
  2186. `${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`);
  2187. } else if (type == 'month') {
  2188. $('.select_sDate').val(
  2189. `${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`
  2190. );
  2191. } else if (type == 'lastMonth') {
  2192. $('.select_sDate').val(
  2193. `${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`
  2194. );
  2195. } else {
  2196. $('.select_sDate').val('');
  2197. }
  2198. })
  2199. }
  2200. this_.find(obj).find('div.layui-table-cell').eq(0).find('.submitbtn').on('click',
  2201. function() {
  2202. if (is_html == 'ishtml1') {
  2203. var arr = new Array();
  2204. this_.find(obj).find('div.layui-table-cell').eq(0).find(
  2205. "input:checkbox:checked").each(function(i) {
  2206. arr[i] = $(this).val();
  2207. });
  2208. var datastr = arr.join(",");
  2209. field[idarr] = datastr;
  2210. } else if (is_html == 'ishtml2') {
  2211. var kwos = $(this).parents('.search_btns').siblings('#kwovsint').val();
  2212. field[idarr] = kwos;
  2213. } else if (is_html == 'detatime') {
  2214. var deta = $(this).parents('.search_btns').siblings().find(
  2215. '#select_sDate').val();
  2216. field[idarr] = deta;
  2217. }
  2218. if (this_.find(obj).find('input.kwovsint').val() && !field[idarr]) {
  2219. layer.msg('请选择内容', {
  2220. anim: 1000,
  2221. time: 1000,
  2222. });
  2223. return;
  2224. }
  2225. firstloading = 0;
  2226. var datas = JSON.stringify(field);
  2227. localStorage.setItem('data', datas);
  2228. searchfn(field, idarr);
  2229. $(this).parents('.psinput').hide();
  2230. this_.find(obj).find('div.layui-table-cell').eq(0).find('.btnbtn5').attr(
  2231. 'data-isshow', 1);
  2232. })
  2233. $(document).bind('click', function() {
  2234. this_.find(obj).find('div.layui-table-cell').eq(0).find('.psinput').hide();
  2235. this_.find(obj).find('div.layui-table-cell').eq(0).find('.btnbtn5').attr(
  2236. 'data-isshow', 1);
  2237. });
  2238. this_.find('th').on('click', function(e) {
  2239. stopPropagation(e);
  2240. })
  2241. }, 100)
  2242. }
  2243. form.on('submit(search)', function(data) {
  2244. var order_type = $('[name=order_type]').val();
  2245. field['order_type'] = order_type;
  2246. //执行重载
  2247. firstloading = 0;
  2248. table.reload('crmsearchlist', {
  2249. where: field,
  2250. page: {
  2251. curr: 1
  2252. }
  2253. });
  2254. });
  2255. function searchfn(field, idarr) {
  2256. firstloading = 0;
  2257. table.reload('crmsearchlist', {
  2258. where: field,
  2259. page: {
  2260. curr: 1
  2261. }
  2262. });
  2263. }
  2264. var dateObj = {};
  2265. setDate();
  2266. function setDate() {
  2267. let date = new Date();
  2268. let year = date.getFullYear();
  2269. let month = date.getMonth() + 1;
  2270. let day = date.getDate();
  2271. let lastDate = new Date(new Date().getTime() - (1 * 24 * 60 * 60 * 1000));
  2272. let lastYear = lastDate.getFullYear();
  2273. let lastMonth = lastDate.getMonth() + 1;
  2274. let lastDay = lastDate.getDate();
  2275. let weekObj = getMondayAndSunday();
  2276. let monthObj = getMonthFirstDayAndLastDay();
  2277. dateObj = {
  2278. today: `${year}/${month}/${day}`,
  2279. yesterday: `${lastYear}/${lastMonth}/${lastDay}`,
  2280. ...weekObj,
  2281. ...monthObj
  2282. }
  2283. }
  2284. function getMondayAndSunday() {
  2285. var today = new Date();
  2286. //构建当前日期,格式:2022-08-22 00:00:00
  2287. var year = today.getFullYear(); //本年
  2288. var month = today.getMonth() + 1; //本月
  2289. var day = today.getDate(); //本日
  2290. var newDate = new Date(year + "/" + month + "/" + day + " 00:00:00"); //年月日拼接
  2291. var nowTime = newDate.getTime(); //当前的时间戳
  2292. var weekDay = newDate.getDay(); //当前星期 0.1.2.3.4.5.6 【0 = 周日】
  2293. var oneDayTime = 24 * 60 * 60 * 1000; //一天的总ms
  2294. // 当前星期减去天数,如今天为周五,则本周一为周五的时间戳减去4天的时间戳。但周日特殊,周一至周六是周几的到的weekDay就是几,但是周日的到的为0,需特殊处理
  2295. var thisWeekMondayTime = (1 - weekDay) * oneDayTime + nowTime; //本周一的时间戳
  2296. if (weekDay == 0) {
  2297. // weekDay = 0 为周日,此时本周一时间为周日减去6天的时间
  2298. thisWeekMondayTime = nowTime - 6 * oneDayTime
  2299. }
  2300. var thisWeekSundayTime = thisWeekMondayTime + 6 * 24 * 60 * 60 * 1000 // 本周日
  2301. var lastWeekMondayTime = thisWeekMondayTime - 7 * oneDayTime // 上周一
  2302. var lastWeekSundayTime = thisWeekMondayTime - oneDayTime // 上周日
  2303. var res = {
  2304. thisWeekMonday: dateToYYYYMMDD(thisWeekMondayTime),
  2305. thisWeekSunday: dateToYYYYMMDD(thisWeekSundayTime),
  2306. lastWeekMonday: dateToYYYYMMDD(lastWeekMondayTime),
  2307. lastWeekSunday: dateToYYYYMMDD(lastWeekSundayTime),
  2308. }
  2309. return res;
  2310. }
  2311. function getMonthFirstDayAndLastDay() {
  2312. var date = new Date()
  2313. // 值得注意的是,如果day取值为0,意味着取的是date时间的上一个月的最后一天,简单理解:date当前月的第一天,再减去一天
  2314. var thisMonthFirstDay = date.setDate(1) // 本月第一天
  2315. var thisMonthLastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0) // 本月最后一天
  2316. var lastMonthFirstDay = new Date(date.getFullYear(), date.getMonth() - 1, 1) // 上月第一天
  2317. var lastMonthLastDay = date.setDate(0) // 上月最后一天
  2318. // var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate()
  2319. // var lastMonthLastDay = new Date(date.getFullYear(), date.getMonth() - 1, day) // 上月最后一天
  2320. var res = {
  2321. thisMonthFirstDay: dateToYYYYMMDD(thisMonthFirstDay),
  2322. thisMonthLastDay: dateToYYYYMMDD(thisMonthLastDay),
  2323. lastMonthFirstDay: dateToYYYYMMDD(lastMonthFirstDay),
  2324. lastMonthLastDay: dateToYYYYMMDD(lastMonthLastDay),
  2325. }
  2326. return res
  2327. }
  2328. function dateToYYYYMMDD(date) {
  2329. var time = new Date(date);
  2330. var y = time.getFullYear();
  2331. var m = (time.getMonth() + 1);
  2332. m = m > 9 ? m : '0' + m;
  2333. var d = time.getDate();
  2334. d = d > 9 ? d : '0' + d;
  2335. return y + "/" + m + "/" + d;
  2336. }
  2337. }
  2338. })
  2339. </script>
  2340. {/block}