build.concat.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910
  1. /**
  2. * Created by MyPC on 2019/11/11.
  3. */
  4. var mobile2InfoTimeout = null;
  5. var searchCuringTimeout = null;
  6. var mobile='';
  7. var getClentListTimeout = null;
  8. var clientname='';
  9. var columnLength=10;
  10. //获得CLD客户list数据
  11. function getClentList(){
  12. if(!isExistence(clientname)){
  13. console.log('参数错误');
  14. return ;
  15. }
  16. $.ajax({
  17. cache :false,
  18. type: 'GET',
  19. url: '/contacts/client/ajax/getClentList',
  20. data: { clientname: encodeURI(clientname) },
  21. dataType: 'json',
  22. success: function(data){
  23. if(data.status==1){
  24. var html=buildClientBySearch(data.list);
  25. $('div[searchClient] curingClient').html(html);
  26. }else {
  27. console.log(data.msg);
  28. }
  29. },
  30. error: function(xhr, type){
  31. console.log('Ajax error!')
  32. }
  33. })
  34. }
  35. /**
  36. * 用户升级专业版 弹框提示--用户详情界面
  37. * @param name
  38. * @param _id
  39. * @param username
  40. * @returns
  41. */
  42. function upCuring(name,_id,username){
  43. $('#name').val(name);
  44. $('#_id').val(_id);
  45. var curingMobile=$('#curingMobile').val();
  46. var html='为用户 <b>'+curingMobile+','+username+'</b> 升级 <b>'+name+'</b>';
  47. $('div[upCuring] span').html(html);
  48. }
  49. $(document).ready(function(){
  50. init();
  51. })
  52. $(function() {
  53. //------用户列表界面相关----------
  54. /**
  55. * 绑定分页-点击事件-刷新用户列表和分页列表
  56. * parameter 传递参数
  57. * currentPage
  58. */
  59. $('div[pageDetail]').delegate( 'a','click', function(){
  60. // 只获取第一个选中的值
  61. var parameter = $(this).attr('parameter');
  62. var currentPage = $(this).attr('currentPage');
  63. $('button[closeRefresh]').attr('currentPage',currentPage);
  64. $('button[closeRefresh]').attr('parameter',parameter);
  65. refreshCuringPagination(parameter,currentPage);
  66. });
  67. /**
  68. * 编办下拉选择
  69. */
  70. $('select[curingByCompilation]').on('change', function(e){
  71. var compilation=$(this).val();
  72. var latestCompilation=$('select[curingByLatestCompilation]').val();
  73. refreshCuringPage(compilation,latestCompilation);
  74. });
  75. $('select[curingByLatestCompilation]').on('change', function(e){
  76. var latestCompilation=$(this).val();
  77. var compilation=$('select[curingByCompilation]').val();
  78. refreshCuringPage(compilation,latestCompilation);
  79. });
  80. /**
  81. * 用户列表排序相关
  82. */
  83. $('input[type=radio][name=sortField]').on('change', function(e){
  84. var sortField=$(this).attr('data');
  85. var latestCompilation=$('select[curingByLatestCompilation]').val();
  86. var compilation=$('select[curingByCompilation]').val();
  87. refreshCuringPage(compilation,latestCompilation,sortField);
  88. });
  89. $('input[type=radio][name=sort]').on('change', function(e){
  90. var sort=$(this).attr('data');
  91. var latestCompilation=$('select[curingByLatestCompilation]').val();
  92. var compilation=$('select[curingByCompilation]').val();
  93. refreshCuringPage(compilation,latestCompilation,'',sort);
  94. });
  95. /**
  96. * 通行证账号检索养护用户--缓冲300
  97. */
  98. $('input[mobile2Info]').on('keyup', function(e){
  99. if(mobile2InfoTimeout != null){
  100. clearTimeout(mobile2InfoTimeout);
  101. }
  102. mobile = $(this).val();
  103. //if((/^1[34578]\d{9}$/.test(mobile))) {
  104. mobile2InfoTimeout = setTimeout(fnMobile2Info, 300);
  105. //}
  106. });
  107. //--------------用户详情界面相关---------
  108. /**
  109. * 动态绑定养护用户列表 打开用户详情页面事件
  110. * ssoid
  111. * id
  112. * client_id
  113. */
  114. var coordinate = {};
  115. var ssoid='',client_id='';
  116. $('tbody[curingUser]').delegate( 'tr','mousedown', function(e){
  117. coordinate.x= e.pageX;
  118. coordinate.y= e.pageY;
  119. ssoid = $(this).attr('data');
  120. client_id=$(this).attr('dataCid');
  121. }).click(function(e){
  122. if(coordinate.x==e.pageX&&coordinate.y==e.pageY){
  123. $(this).attr('data-toggle',' ');
  124. refreshCuringPageDetail(ssoid,client_id);
  125. }
  126. });
  127. /**
  128. * 确定升级专业版--用户详情界面
  129. */
  130. $('button[upCuringDo]').on('click', function(e){
  131. // 只获取第一个选中的值
  132. var compilationId = $('#_id').val();
  133. var name = $('#name').val();
  134. var curingSsoid = $('#curingSsoid').val();
  135. var mobile = $('#curingMobile').val();
  136. var client_id = $('#client_id').val();
  137. if (curingSsoid != '' && compilationId != '') {
  138. $.ajax({
  139. cache :false,
  140. type: 'post',
  141. url: '/cloud/build/ajax/upCuringDo',
  142. data: {ssoid: curingSsoid, compilationId: compilationId, mobile: mobile, client_id: client_id, name: name},
  143. dataType: 'json',
  144. success: function(data) {
  145. if (data.status == 1) {
  146. refreshCuringPageDetail(curingSsoid,client_id);
  147. } else {
  148. alert(data.msg);
  149. }
  150. }
  151. })
  152. } else {
  153. alert('请选择需要升级的版本');
  154. }
  155. });
  156. /**
  157. * 用户绑定CLD客户--用户详情页
  158. */
  159. $('div[relevanceClientDo]').delegate( 'span','click', function(){
  160. // 只获取第一个选中的值
  161. var cidKey = $(this).attr('data');
  162. var ssoId = $('#curingSsoid').val();
  163. //var id=$('#id').val();
  164. $.ajax({
  165. cache :false,
  166. type: 'POST',
  167. url: '/cloud/build/ajax/relevanceClientDo',
  168. data: {cidKey: encodeURI(cidKey),ssoId:encodeURI(ssoId)},
  169. dataType: 'json',
  170. success: function(data){
  171. if(data.status==1){
  172. refreshCuringPageDetail(ssoId,cidKey);
  173. $('#linkcld').modal('hide');
  174. }else{
  175. alert(data.msg);
  176. }
  177. },
  178. error: function(xhr, type){
  179. console.log('Ajax error!')
  180. }
  181. })
  182. });
  183. /**
  184. * 用户取消关联CLD客户--用户详情页
  185. */
  186. $('button[relieveClientDo]').on('click', function(e){
  187. // 只获取第一个选中的值
  188. var cid = $(this).attr('data');
  189. var ssoId = $('#curingSsoid').val();
  190. $('#unlinkcld').modal('hide');
  191. $.ajax({
  192. cache :false,
  193. type: 'POST',
  194. url: '/cloud/build/ajax/relieveClientDo',
  195. data: {cid: encodeURI(cid),ssoId:encodeURI(ssoId)},
  196. dataType: 'json',
  197. success: function(data){
  198. if(data.status==1){
  199. refreshCuringPageDetail(ssoId,cid);
  200. }else{
  201. alert(data.msg);
  202. }
  203. },
  204. error: function(xhr, type){
  205. console.log('Ajax error!')
  206. }
  207. })
  208. });
  209. /**
  210. * 关闭详情页--刷新用户列表
  211. */
  212. $('button[closeRefresh]').on('click', function(e){
  213. // 只获取第一个选中的值
  214. var parameter=$('button[closeRefresh]').attr('parameter');
  215. if(parameter!=''){
  216. var currentPage=$('button[closeRefresh]').attr('currentPage');
  217. refreshCuringPagination(parameter,currentPage);
  218. }else{
  219. var latestCompilation=$('select[curingByLatestCompilation]').val();
  220. var compilation=$('select[curingByCompilation]').val();
  221. refreshCuringPage(compilation,latestCompilation,'','',mobile);
  222. }
  223. });
  224. //
  225. /**
  226. * 检索cld用户
  227. */
  228. $('input[getClentList]').on('keyup', function(e){
  229. if(getClentListTimeout != null){
  230. clearTimeout(getClentListTimeout);
  231. }
  232. clientname = $(this).val();
  233. if(isExistence(clientname)){
  234. getClentListTimeout = setTimeout(getClentList, 500);
  235. }
  236. });
  237. //列表 号码检索事件绑定
  238. $('div[mobile2Info]').on('click', function(e){
  239. mobile=$('input[mobile2Info]').val();
  240. if(mobile==''){
  241. location.reload()
  242. }
  243. fnMobile2Info();
  244. });
  245. })
  246. /**
  247. * 分页列表--刷新用户列表
  248. * @param parameter
  249. * @param currentPage
  250. * @returns
  251. */
  252. function refreshCuringPagination(parameter,currentPage){
  253. $.ajax({
  254. cache :false,
  255. type: 'get',
  256. url: '/cloud/build/ajax/getCuringPage/'+currentPage+parameter,
  257. dataType: 'json',
  258. success: function(data) {
  259. if (data.status == 1) {
  260. fnStructureCuringUser(data.curingList);
  261. fnPage(data.pageData);
  262. refreshColumn(columnLength);
  263. } else {
  264. alert(data.msg);
  265. }
  266. }
  267. })
  268. }
  269. /**
  270. * 筛选-统一请求--刷新用户列表
  271. * @returns
  272. */
  273. function refreshCuringPage(compilation,latestCompilation,sortField,sort,wd){
  274. $.ajax({
  275. cache :false,
  276. type: 'get',
  277. url: '/cloud/build/ajax/refreshCuringPage?sortField='+sortField+'&sort='+sort+'&compilation='+compilation+'&latestCompilation='+latestCompilation+
  278. '&wd='+wd,
  279. dataType: 'json',
  280. success: function(data) {
  281. if (data.status == 1) {
  282. fnStructureCuringUser(data.curingList);
  283. fnPage(data.pageData);
  284. refreshColumn(columnLength);
  285. } else {
  286. alert(data.msg);
  287. }
  288. }
  289. })
  290. }
  291. /**
  292. * 通行证账号检索用户--刷新列表和分页
  293. * @returns
  294. */
  295. function fnMobile2Info(){
  296. mobile2InfoTimeout = null;
  297. //if((/^1[34578]\d{9}$/.test(mobile))) {
  298. refreshCuringPage('','','','',mobile);
  299. //}
  300. }
  301. /**
  302. * 刷新用户详情页
  303. * @param ssoid
  304. * @param client_id
  305. * @returns
  306. */
  307. function refreshCuringPageDetail(ssoid,client_id){
  308. $.ajax({
  309. cache :false,
  310. type: 'GET',
  311. url: '/cloud/build/ajax/getCuringBySsoid',
  312. data: {ssoid: encodeURI(ssoid),client_id:encodeURI(client_id)},
  313. dataType: 'json',
  314. success: function(data){
  315. if(data.status==1||data.status==2){
  316. //设置 养护用户信息
  317. var objHtml=buildCuringInfo(data.detail.userInfo);
  318. $('div[curingInfo] curing').html(objHtml);
  319. $('div[curingInfo] curingClient').html('');
  320. //设置CLD客户信息
  321. //if(data.detail.curingInfo.updateTotal!=0){
  322. //$("#id").val(id);
  323. var clientHtml=relevanceClient(data.detail.clientInfo);
  324. $('div[curingInfo] curingClient').html(clientHtml);
  325. //}
  326. //设置养护详情页里产品升级信息
  327. var upMajorBoxHtml=buildCuringCompilation(data);
  328. $('tbody[upMajorBox]').html(upMajorBoxHtml);
  329. //更新在线时长
  330. var onlineTimesHtml=buildCuringOnlineTimes(data.detail.userInfo.online_list);
  331. $('tbody[onlineTimes]').html(onlineTimesHtml);
  332. //设置参数
  333. $('#curingSsoid').val(data.detail.userInfo.ssoIdKey);
  334. $('#curingMobile').val(data.detail.userInfo.mobile);
  335. $('#client_id').val(data.detail.clientInfo.cidKey);
  336. //设置养护日志
  337. var operateLogHtml=buildCuringOperateLog(data.detail.operateLog);
  338. $('div[operateLog] curingOperate').html(operateLogHtml);
  339. setTimeout(autoHeight, 400);
  340. //autoHeight();
  341. $('#detail').modal('show');
  342. }else if(data.status==3){
  343. alert(data.msg);
  344. }
  345. },
  346. error: function(xhr, type){
  347. console.log('Ajax error!')
  348. }
  349. })
  350. }
  351. /**
  352. * DOM加载完毕后初始化
  353. * @returns
  354. */
  355. function init(){
  356. refreshColumn(columnLength);
  357. }
  358. /**
  359. * Created by cp on 2019/12/17.
  360. */
  361. /**
  362. * 用户列表--首页分页列表刷新
  363. * @param data
  364. * @returns
  365. */
  366. function fnStructureCuringUser(data){
  367. var html='';
  368. $.each(data, function(k, v) {
  369. html+='<tr class="pointer-hover" curingInfoEdi dataCid="'+setUndefined(v.client_id)+'" data='+setUndefined(v.ssoId)+' dataId="'+setUndefined(v._id)+'" data-toggle="modal" data-target="">';
  370. html+='<td>'+setUndefined(v.mobile)+'</td>';
  371. html+='<td>'+setUndefined(v.username)+'</td>';
  372. html+='<td>'+setUndefined(v.real_name)+'</td>';
  373. html+='<td>'+setUndefined(v.qq)+'</td>';
  374. html+='<td>'+setUndefined(v.company)+'</td>';
  375. html+='<td>'+setUndefined(v.clientInfo.clientname)+'</td>';
  376. html+='<td>'+setUndefined(v.clientInfo.companyname)+'</td>';
  377. html+='<td>'+setUndefined(v.latest_login)+'</td>';
  378. html+='<td>'+setUndefined(v.latest_usedName)+'</td>';
  379. html+='<td>'+setUndefined(v.online_newest)+'</td>';
  380. html+='<td>'+setUndefined(v.addtime)+'</td>';
  381. html+='<td>'+setUndefined(v.upgradeListName)+'</td>';
  382. html+='</tr>';
  383. });
  384. $('tbody[curingUser]').html(html);
  385. $('div[curingListBox]').show();
  386. $('p[upClientBox]').hide();
  387. }
  388. /**
  389. * 用户详情页 养护信息更新
  390. * @param data
  391. * @returns
  392. */
  393. function buildCuringInfo(data){
  394. var html=' ' +
  395. ' <div class="form-header">' +
  396. ' <div class="d-flex justify-content-between"><span class="text-muted">大司空用户</span></div> ' ;
  397. if(data.mobile==''){
  398. html+='<legend>'+setUndefined(data.email)+'</legend> ';
  399. }else{
  400. html+='<legend>'+setUndefined(data.mobile)+'</legend> ';
  401. }
  402. html+='</div><div class="cldform clearfix"> <div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3"> ' +
  403. '<div class="cldform-label">手机</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">' +
  404. '<span>'+setUndefined(data.mobile)+'</span></div> </div> </div> <div class="cldform-item cldform-item-half pl-3"> ' +
  405. '<div class="cldform-label">邮箱</div> ' +
  406. '<div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">' +
  407. '<span>'+setUndefined(data.email)+'</span></div></div>';
  408. html+='</div> <div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3"> ' +
  409. '<div class="cldform-label">称呼</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank"> ' +
  410. '<span>'+setUndefined(data.username)+'</span></div> </div> </div>';
  411. html+='<div class="cldform-item cldform-item-half pl-3">'+
  412. '<div class="cldform-label">QQ</div>'+
  413. '<div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">'+
  414. '<span>'+setUndefined(data.qq)+
  415. '</span></div></div></div>';
  416. html+='<div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3">'+
  417. '<div class="cldform-label">真实姓名</div>'+
  418. '<div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank"> '+
  419. '<span>'+setUndefined(data.real_name)+
  420. '</span></div></div></div>';
  421. html+='<div class="cldform-item cldform-item-half pl-3"> ' +
  422. '<div class="cldform-label">注册云版</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">' +
  423. '<span>'+setUndefined(data.create_time)+'</span></div> </div> </div>';
  424. html+='<div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3"> ' +
  425. '<div class="cldform-label">企业名称</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">' +
  426. '<span>'+setUndefined(data.company)+'</span></div> </div> </div>';
  427. html+='<div class="cldform-item cldform-item-half pl-3"> ' +
  428. '<div class="cldform-label">企业地区</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">' +
  429. '<span>'+setUndefined(data.province)+'</span></div> </div> </div> ';
  430. html+='<div class="cldform-line"></div><div class="cldform-item cldform-item-half pr-3">'+
  431. '<div class="cldform-label">最近使用</div><div class="cldform-control"><div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">'+
  432. '<span>'+setUndefined(data.latest_usedName)+'</span>'+
  433. '</div></div></div>';
  434. html+='<div class="cldform-item cldform-item-half pl-3">'+
  435. '<div class="cldform-label">累计时长</div><div class="cldform-control"><div class="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">'+
  436. '<span>'+setUndefined(data.online_times)+'</span>'+
  437. '</div></div></div>'+
  438. '</div>';
  439. return html;
  440. }
  441. /**
  442. * 关联CLD客户--检索CLD客户后的结果列表
  443. * @param data
  444. * @returns
  445. */
  446. function buildClientBySearch(data){
  447. var html='';
  448. $.each(data, function(k, v) {
  449. html+='<span data="'+ v.cidKey+'" ><div class="card pointer-hover p-3 mb-3" data-toggle="tooltip" data-placement="bottom" title="点击关联该客户" data-original-title="点击关联该客户"> <div class="row">' +
  450. '<div class="col-1 pr-0">'+ v.clientname+'</div>' +
  451. '<div class="col-2 pr-0">'+ v.position+'</div>' +
  452. '<div class="col-2 pr-0">'+ v.telephone+'</div>' +
  453. '<div class="col-4 pr-0">'+ v.companyname+'</div></div> </div></span>';
  454. });
  455. return html;
  456. }
  457. //构建养护升级产品信息
  458. function buildCuringCompilation(data){
  459. var upMajorBoxHtml='';
  460. $.each(data.detail.compilationList, function(k, v) {
  461. upMajorBoxHtml+='<tr>';
  462. upMajorBoxHtml+='<td></td>';
  463. upMajorBoxHtml+='<td>'+ v.name+'</td>';
  464. upMajorBoxHtml+='<td>';
  465. if(v.isUpgrade !== undefined && v.isUpgrade === true){
  466. upMajorBoxHtml+='已升级';
  467. }else{
  468. upMajorBoxHtml+='<a onclick=upCuring("'+ v.name+'","'+ v._id+'","'+data.detail.userInfo.username+'") ' +
  469. 'href="#update-confirm" class="btn btn-xs btn-outline-primary waves-effect waves-themed" data-toggle="modal" data-target="#update-confirm">升级</a>';
  470. }
  471. upMajorBoxHtml+='</td>';
  472. upMajorBoxHtml+='</tr>';
  473. });
  474. return upMajorBoxHtml;
  475. }
  476. function buildCuringOnlineTimes(data){
  477. var onlineTimesHtml='';
  478. var i=1;
  479. $.each(data, function(k, v) {
  480. onlineTimesHtml+='<tr><td width="20">'+i+'</td><td width="140">'+v.dateString+'</td><td>'+v.online_times+'</td></tr>';
  481. i++;
  482. });
  483. return onlineTimesHtml;
  484. }
  485. //关联CLD客户
  486. function relevanceClient(data){
  487. var html='';
  488. if(isExistence(data)){
  489. html=buildClient(data);
  490. }else{
  491. html='<div class="form-header mt-3"> <div class="d-flex justify-content-between"><span class="text-muted">CLD客户</span><span class="text-muted"></span></div> <div class="text-center">' +
  492. '<a href="#linkcld" class="btn btn-sm btn-outline-primary" data-toggle="modal" data-target="#linkcld"><i class="far fa-link"></i> 关联CLD客户</a></div> </div>';
  493. }
  494. return html;
  495. }
  496. /**
  497. * 构建操作日志
  498. * @param data
  499. * @returns
  500. */
  501. function buildCuringOperateLog(data){
  502. var html='';
  503. if(isExistence(data)){
  504. $.each(data, function(k, v) {
  505. html+='<p>' +
  506. '<a href="#">@'+ v.username+'</a>' +
  507. ' '+ v.operation+'<br>' +
  508. '<span class="text-muted">'+ v.createDate+'</span></p></p> ';
  509. });
  510. }else{
  511. html='';
  512. }
  513. html+='';
  514. return html;
  515. }
  516. function autoHeight(){
  517. var html='<script type="text/javascript">autoFlashHeight();</script> <script type="text/javascript">$(".slimScroll1").slimScroll({position: \'right\', height:\'auto\' , railVisible: true}); </script> <script type="text/javascript"> $(".slimScrol2").slimScroll({ position: \'right\', height:\'auto\' , railVisible: true });</script> <script type="text/javascript"> $(".slimScrol3").slimScroll({ position: \'right\', height:\'auto\' , railVisible: true});</script> <script type="text/javascript"> $(".slimScrol4").slimScroll({position: \'right\', height:\'auto\' , railVisible: true});</script>';
  518. $('div[autoHeight]').html(html);
  519. }
  520. //构建养护用户分页
  521. function fnPage(data){
  522. var html='<ul class="pagination pagination-sm">';
  523. if( Number(data.previousPage) === Number(0)) {
  524. html+='<li class="page-item disabled"><span class="page-link" aria-label="Previous"> <span aria-hidden="true"><i class="fal fa-chevron-left"></i></span> </span> </li>';
  525. }else{
  526. html+='<li class="page-item "> <a' +
  527. ' parameter="'+ data.parameter+'" currentPage="'+ data.previousPage +'" class="page-link" href="javascript:void(0)" aria-label="Previous"> <span aria-hidden="true"><i class="fal fa-chevron-left"></i></span> </a> </li>';
  528. }
  529. if( Number(data.currentPage)>=Number(data.pageWidth) ) {
  530. html+='<li class="page-item">'+
  531. '<a parameter="'+data.parameter+'" currentPage="1" class="page-link" href="javascript:void(0)">1</a></li><li class="page-item "><span ><span aria-hidden="true">...</span></span></li>';
  532. }
  533. for (var i = data.startPage; i <= data.endPage; i++) {
  534. if(Number(data.currentPage) === Number(i)){
  535. html+='<li class="page-item active" aria-current="page"> <span class="page-link"> ' +
  536. ''+ i +'<span class="sr-only">(current)</span> </span> </li>';
  537. }else{
  538. html+='<li class="page-item">' +
  539. ' <a parameter="'+data.parameter+'" currentPage="'+i+'" class="page-link" href="javascript:void(0)">' +
  540. ''+i+'</a> ' +
  541. '</li>';
  542. }
  543. }
  544. if( Number(data.totalPage) >Number(data.pageWidth) && Number(data.totalPage)!== Number(data.currentPage) ) {
  545. html+='<li class="page-item "><span><span aria-hidden="true">...</span></span></li>';
  546. }
  547. if( Number(data.nextPage) === Number(data.currentPage)||Number(data.totalPage)===Number(0)) {
  548. html+='<li class="page-item disabled"> <span class="page-link" aria-label="Next"> <span aria-hidden="true"><i class="fal fa-chevron-right"></i></span> </span> </li>';
  549. }else{
  550. html+='<li class="page-item"> <a ' +
  551. 'parameter="'+ data.parameter +'" currentPage="'+ data.nextPage +'" class="page-link" href="#" aria-label="Next" > <span aria-hidden="true"><i class="fal fa-chevron-right"></i></span> </a> </li>';
  552. }
  553. html+='</ul>';
  554. $('div[pageDetail]').html(html);
  555. $('div[page]').show();
  556. }
  557. /**
  558. * Created by MyPC on 2019/12/16.
  559. */
  560. function setUndefined(data){
  561. if(data===null||typeof(data) == "undefined"||data.length==0){
  562. return '';
  563. }else{
  564. return data;
  565. }
  566. }
  567. //
  568. function isExistence(data){
  569. if(Array.isArray(data)){
  570. if(data.length==0){
  571. return false;
  572. }else{
  573. return true;
  574. }
  575. }else if(data==''||data===null||typeof(data) == 'undefined'||data=='undefined'){
  576. return false;
  577. }else{
  578. return true;
  579. }
  580. }
  581. $(function() {
  582. /**
  583. * change事件-隐藏-显示数据列
  584. */
  585. $('input[type=checkbox][name=columnShow]').on('change', function(e) {
  586. var column = $(this).attr('column');
  587. var isAccept = $(this).prop("checked");
  588. isColumnShow(isAccept,column);
  589. localStorage.setItem('curingColumn_'+column, isAccept);
  590. });
  591. })
  592. /**
  593. * 初始化数据列--是否展示
  594. * @param columnLength
  595. * @returns
  596. */
  597. function refreshColumn(columnLength){
  598. var checkBoxList=$('input[type=checkbox][name=columnShow]');
  599. var cbi=0;
  600. for(var i=1;i<=columnLength;i++){
  601. var isAccept=localStorage.getItem("curingColumn_"+i);
  602. if(isAccept=='false'){
  603. isAccept=false;
  604. }
  605. if (isAccept==null||isAccept) {
  606. //console.log(isAccept);
  607. checkBoxList.eq(cbi).attr("checked",'true');
  608. }else{
  609. //console.log(isAccept+'dddd');
  610. checkBoxList.eq(cbi).removeAttr("checked");
  611. }
  612. isColumnShow(isAccept,i);
  613. cbi++;
  614. }
  615. }
  616. function isColumnShow(isAccept,column){
  617. if (isAccept==null||isAccept) {
  618. //console.log(isAccept==null||isAccept);
  619. $('table[columnShow] tr').find('th:eq('+column+')').show();
  620. $('table[columnShow] tr').find('td:eq('+column+')').show();
  621. } else {
  622. //console.log(column);
  623. $('table[columnShow] tr').find('th:eq('+column+')').hide();
  624. $('table[columnShow] tr').find('td:eq('+column+')').hide();
  625. }
  626. }
  627. /**
  628. * Created by MyPC on 2019/12/17.
  629. */
  630. //构建地区HTML
  631. function buildArea(data){
  632. //data-toggle="dropdown"
  633. var html='<div class="cldform-contarl-box cldform-contarl-textareabox" >' +
  634. '<span class="cldform-contarl-dropdown">'+setUndefined(data.local)+'<i class="far fa-map-marker-alt mt-1"></i></span></div>' +
  635. '<div class="dropdown-menu" style="width:300px"> ' +
  636. '<ul class="nav nav-tabs nav-tabs-clean justify-content-center" role="tablist"> ' +
  637. '<li class="nav-item"><a class="nav-link text-center active" data-toggle="tab" href="#tab-province" role="tab" aria-selected="true">省份</a></li> ' +
  638. '<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#tab-city" role="tab" aria-selected="false">市区</a></li> ' +
  639. '<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#tab-area" role="tab" aria-selected="false">县区</a></li> ' +
  640. '</ul>';
  641. html+='<div class="tab-content p-3"> <div class="tab-pane city-item fade active show" id="tab-province" role="tabpanel" aria-labelledby="tab-province">';
  642. html+='<button type="button" class="btn btn-xs btn-outline-default">黑龙江省</button>';
  643. html+='</div>';
  644. html+='<div class="tab-pane city-item fade" id="tab-city" role="tabpanel" aria-labelledby="tab-city">';
  645. html+='<button type="button" class="btn btn-xs btn-outline-default">广州市</button>';
  646. html+='</div>';
  647. html+='<div class="tab-pane city-item fade" id="tab-area" role="tabpanel" aria-labelledby="tab-area">';
  648. html+='<button type="button" class="btn btn-xs btn-primary">香洲区</button>';
  649. html+='</div> </div> </div>';
  650. return html;
  651. }
  652. //构建客户HTML
  653. function buildClient(data){
  654. var html='';
  655. html+='<div class="form-header mt-3">';
  656. html+='<div class="d-flex justify-content-between"><span class="text-muted">CLD客户</span>' +
  657. '<span class="text-muted">'+setUndefined(data.staff.username)+' 创建于 '+setUndefined(data.createTime)+'</span></div>';
  658. html+='<legend>'+setUndefined(data.clientname)+'</legend> ' +
  659. '</div>';
  660. html+='<div class="cldform clearfix">' +
  661. '<div class="cldform-line"></div> <div class="cldform-item"> ' +
  662. '<div class="cldform-label">姓名</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  663. ' <span>'+setUndefined(data.clientname)+'</span></div> </div> </div>';
  664. //地区
  665. var areaHtml=buildArea(data);
  666. html+='<div class="cldform-line"></div> <div class="cldform-item cldform-item-wauto"> <div class="cldform-label">客户地区</div>';
  667. html+='<div class="cldform-control">';
  668. html+=areaHtml;
  669. html+='</div> </div>';
  670. if(isExistence(data.companyname)){
  671. /*
  672. '<a href="javascript:void(0);" data-original-title="移除单位" class="btn btn-outline-danger btn-xs btn-icon mr-1" data-toggle="modal" data-target="#remover-com"><i class="far fa-unlink" data-toggle="tooltip" data-placement="left" ></i></a>' +
  673. '<a href="javascript:void(0);" data-original-title="更换单位" class="btn btn-outline-primary btn-xs btn-icon" data-toggle="modal" data-target="#link-com"><i class="far fa-retweet" data-toggle="tooltip" data-placement="left" ></i></a>' +
  674. * */
  675. //单位
  676. html+='<div class="cldform-line"></div> <div class="cldform-item">';
  677. html+='<div class="cldform-label">单位名称</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox"><div class="card p-2 text-primary" href="#"><div class="d-flex justify-content-between">' +
  678. '<span>'+setUndefined(data.companyname)+'</span><span>' +
  679. '</span></div></div></div> </div> </div>';
  680. }else{
  681. html+='<div class="cldform-line"></div> <div class="cldform-item"> <div class="cldform-label">单位名称</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox"><span>' +
  682. '<a href="#link-com" data-toggle="modal" data-target="#link-com"><i class="far fa-link"></i> 关联单位</a></span></div> </div> </div>';
  683. }
  684. html+='<div class="cldform-line"></div> ' +
  685. '<div class="cldform-item cldform-item-half pr-3"> ' +
  686. '<div class="cldform-label">性别</div> ' +
  687. '<div class="cldform-control"> ' +
  688. '<div class="cldform-contarl-box cldform-contarl-textareabox" data-toggle="dropdown">' +
  689. '<span class="cldform-contarl-dropdown">'+setUndefined(data.gender)+'</span></div> </div> </div>';
  690. html+='<div class="cldform-item cldform-item-half pl-3">' +
  691. '<div class="cldform-label">昵称</div> ' +
  692. '<div class="cldform-control"> ' +
  693. '<div class="cldform-contarl-box cldform-contarl-textareabox">' +
  694. '<span>'+setUndefined(data.nicename)+'</span></div> </div> </div>' +
  695. '' +
  696. '<div class="cldform-line"></div>' +
  697. '<div class="cldform-item cldform-item-half pr-3"> ' +
  698. '<div class="cldform-label">手机</div> ' +
  699. '<div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  700. '<span>'+setUndefined(data.telephone)+'</span></div> </div> </div> ' +
  701. '<div class="cldform-item cldform-item-half pl-3"> ' +
  702. '<div class="cldform-label">QQ</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  703. '<span>'+setUndefined(data.qq)+'</span></div> </div> </div> ' +
  704. '' +
  705. '<div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3"> ' +
  706. '<div class="cldform-label">电话</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  707. '<span>'+setUndefined(data.phone)+'</span></div> </div> </div> <div class="cldform-item cldform-item-half pl-3"> ' +
  708. '<div class="cldform-label">邮箱</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  709. '<span>'+setUndefined(data.email)+'</span></div> </div> </div> ' +
  710. '' +
  711. '<div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3"> ' +
  712. '<div class="cldform-label">传真</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  713. '<span>'+setUndefined(data.fax)+'</span></div> </div> </div> ' +
  714. '' +
  715. '<div class="cldform-line"></div> <div class="cldform-item cldform-item-half pr-3"> ' +
  716. '<div class="cldform-label">部门/职称</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox text-muted">' +
  717. '<span>'+setUndefined(data.position)+'</span></div> </div> </div> <div class="cldform-item cldform-item-half pl-3"> ' +
  718. '<div class="cldform-label">办公室</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  719. '<span>'+setUndefined(data.office)+'</span></div> </div> </div> ' +
  720. '' +
  721. '<div class="cldform-line"></div> <div class="cldform-item">' +
  722. '<div class="cldform-label">客户地址</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox">' +
  723. '<span>'+setUndefined(data.address)+'</span></div> </div> </div> ' +
  724. '' +
  725. '<div class="cldform-line"></div> <div class="cldform-item"> ' +
  726. '<div class="cldform-label">客户乘车</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox text-muted">' +
  727. '<span>'+setUndefined(data.ride)+'</span></div> </div> </div> ' +
  728. '' +
  729. '<div class="cldform-line"></div> <div class="cldform-item"> ' +
  730. '<div class="cldform-label">客户地标</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox text-muted">' +
  731. '<span>'+setUndefined(data.landmarks)+'</span></div></div> </div> ' +
  732. '' +
  733. '<div class="cldform-line"></div> <div class="cldform-item">' +
  734. '<div class="cldform-label">客户住宿</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox text-muted">' +
  735. '<span>'+setUndefined(data.stay)+'</span></div> </div> </div> ' +
  736. '' +
  737. '<div class="cldform-line"></div> <div class="cldform-item"> ' +
  738. '<div class="cldform-label">备注</div> <div class="cldform-control"> <div class="cldform-contarl-box cldform-contarl-textareabox text-muted">' +
  739. '<span>'+setUndefined(data.mark)+'&nbsp;</span></div> </div> </div>';
  740. html+='<div class="cldform-line"></div> <div class="cldform-item text-center">' +
  741. '<a data="'+setUndefined(data.cid)+'" href="javascript:void(0)" class="btn btn-sm btn-outline-danger" data-toggle="modal" data-target="#unlinkcld"><i class="far fa-unlink"></i> 移除CLD客户</a> ' +
  742. '</div>';
  743. html+='';
  744. html+='</div>' +
  745. '<script type="text/javascript">autoFlashHeight();</script> <script type="text/javascript">$(".slimScroll1").slimScroll({position: \'right\', height:\'auto\' , railVisible: true}); </script> <script type="text/javascript"> $(".slimScrol2").slimScroll({ position: \'right\', height:\'auto\' , railVisible: true });</script> <script type="text/javascript"> $(".slimScrol3").slimScroll({ position: \'right\', height:\'auto\' , railVisible: true});</script> <script type="text/javascript"> $(".slimScrol4").slimScroll({position: \'right\', height:\'auto\' , railVisible: true});</script>' +
  746. '';
  747. return html;
  748. }