edit_customer.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821
  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. body {
  8. padding-bottom: 40px;
  9. background-color: #F3F3F3;
  10. position: relative;
  11. }
  12. .mainbox{
  13. display: block;
  14. width: 900px;
  15. padding-top: 20px;
  16. margin: 0 auto;
  17. }
  18. .titbox{
  19. padding: 15px 10px;
  20. border: 1px solid #F0F0F0;
  21. background: #FCFCFC;
  22. margin-bottom: 10px;
  23. position: relative;
  24. line-height: 28px;
  25. }
  26. .goback{
  27. display: block;
  28. cursor: pointer;
  29. color: #000;
  30. background: url(__STATIC__/img/btn_bg.gif) repeat-x;
  31. border: 1px solid #C0C0C0;
  32. padding: 0 12px;
  33. *padding: 0 6px;
  34. height: 28px;
  35. width: 84px;
  36. }
  37. .crmsgbox{
  38. display: block;
  39. width: 100%;
  40. _width: 100%;
  41. width: 100%;
  42. border: 1px solid #DFDFDF;
  43. background-color: #FFF;
  44. border-bottom: 2px solid #DFDFDF;
  45. padding: 0 10px;
  46. font-size: 0;
  47. }
  48. .everytit{
  49. border-bottom: 1px solid #999;
  50. font-weight: bold;
  51. font-size: 15px;
  52. margin-bottom: 10px;
  53. margin-top: 5px;
  54. text-indent: 3px;
  55. font-family: Arial;
  56. letter-spacing: 1px;
  57. line-height: 35px;
  58. }
  59. .everydiv{
  60. display: inline-block;
  61. border-bottom: 1px solid #EAEAEC;
  62. padding: 7px;
  63. line-height: 25px;
  64. font-size: 13px;
  65. /* position: relative; */
  66. box-sizing: border-box;
  67. width:auto;
  68. }
  69. .w70{
  70. width: 70px;
  71. }
  72. .addbtn{
  73. display: block;
  74. margin: 20px auto;
  75. border: none;
  76. width: 98px;
  77. height: 30px;
  78. color: #fff;
  79. font-size: 14px;
  80. font-weight: bold;
  81. text-align: center;
  82. background: url(__STATIC__/img/icon-sub.png) no-repeat;
  83. cursor: pointer;
  84. }
  85. .noticebox{
  86. display: block;
  87. width: 100%;
  88. padding: 15px 10px;
  89. border: 1px solid #F0F0F0;
  90. background: #FCFCFC;
  91. margin-bottom: 10px;
  92. position: relative;
  93. line-height: 23px;
  94. color: #666;
  95. }
  96. input[type=radio] {
  97. vertical-align: middle;
  98. width: 16px;
  99. height: 16px;
  100. appearance: radio;
  101. /**css3属性,不支持ie,但不影响使用**/
  102. -webkit-appearance: radio;
  103. -moz-appearance: radio;
  104. background-color: transparent;
  105. border: 0;
  106. outline: 0 !important;
  107. line-height: 14px;
  108. color: #d8d8d8;
  109. }
  110. input[type=radio]+label {
  111. vertical-align: middle;
  112. padding-left: 1px;
  113. padding-right: 1px;
  114. }
  115. input[type=radio]:after {
  116. content: "";
  117. background-color:unset;
  118. border:unset;
  119. }
  120. input[type=radio]:checked:after {
  121. content: "";
  122. transform: unset;
  123. background-color:unset;
  124. }
  125. .uploadbtn{
  126. float:left;
  127. height: 28px;
  128. line-height: 28px;
  129. padding: 0 18px;
  130. background-color: #249efb;
  131. color: #fff;
  132. white-space: nowrap;
  133. text-align: center;
  134. font-size: 12px;
  135. border: none;
  136. border-radius: 2px;
  137. cursor: pointer;
  138. }
  139. .uploadbtn .layui-icon{
  140. margin-right: 3px;
  141. font-size: 14px;
  142. vertical-align: bottom;
  143. }
  144. .addimgbox{
  145. float: left;
  146. }
  147. .addimgbox img{
  148. display: block;
  149. float: left;
  150. width: 28px;
  151. height: 28px;
  152. margin-right: 8px;
  153. }
  154. .foldbtn {
  155. display: block;
  156. font-weight: 500;
  157. cursor: pointer;
  158. }
  159. .foldbtn:hover{
  160. text-decoration: underline
  161. }
  162. ::-webkit-scrollbar {
  163. width: 8px;
  164. height: 8px;
  165. }
  166. .everydiv span{
  167. float: left;
  168. }
  169. .everydiv select{
  170. float: left;
  171. }
  172. </style>
  173. <body class="clearfix">
  174. <div class="mainbox">
  175. <div class="titbox clearfix">
  176. <div class="left">你正在编辑"<span style="color:#336699;">{$customer.name}</span></div>
  177. <div class="right">
  178. <div class="left">点击这里返回:</div>
  179. <button class="left goback" type="button">返回</button>
  180. </div>
  181. </div>
  182. <div class="crmsgbox" id="crmsgbox">
  183. </div>
  184. <button class="addbtn" type="button">提交保存</button>
  185. </div>
  186. </body>
  187. <script src="__LAYUI__/layui/layui.js"></script>
  188. <script src="__STATIC__/layui/layui/lay/modules/xm-select.js" type="text/javascript" charset="utf-8"></script>
  189. {/block}{block name="js"}
  190. <script id="csutomerdiv" type="text/html">
  191. {{# for(let index=0;index<d.length;index++){ }}
  192. {{# if(index==0){ }}
  193. <div class="everytit">{{ d[index].name }}:</div>
  194. {{# }else{ }}
  195. <div class="everytit clearfix" style="margin-top: 14px;"><div class="left">{{d[index].name}}:</div><div class="right foldbtn seebtn" style="padding-right: 10px;">折叠</div></div><div class="everyinputbox" style="display: none;">
  196. {{# }; }}
  197. {{# for(let j=0,len=d[index].child.length;j<len;j++){ }}
  198. {{# d[index].child[j].keyname= 'wzh--'+d[index].child[j].keyname; }}
  199. {{# if(d[index].child[j].type==1){ }}
  200. {{# if(d[index].child[j].keyname=='wzh--live_broadcast_business'||d[index].child[j].keyname=='wzh--live_broadcast_design'||d[index].child[j].keyname=='wzh--live_broadcast_personnel'){ }}
  201. {{# var selectstr='';
  202. for(let h=0,len56=d[index].child[j].select.designer.length;h<len56;h++){
  203. selectstr+='<option value="'+d[index].child[j].select.designer[h].name+'">'+
  204. d[index].child[j].select.designer[h].name+'</option>';
  205. };
  206. var optionfun=function (arr){
  207. let str='' ;
  208. for(let r=0;r<arr.length;r++){
  209. str+='<option '+((d[index].child[j].value==arr[r].name) ? 'selected' : '')+' value="' +arr[r].name+'">'+ arr[r].name+'</option>'
  210. };
  211. selectstr+=str;
  212. };
  213. var employeefun=function(obj){
  214. if(obj.designer.length>0){
  215. optionfun(obj.designer);
  216. };
  217. if(obj.child_org&&obj.child_org.length>0){
  218. for(let n=0;n< obj.child_org.length;n++){ employeefun(obj.child_org[n]); }
  219. };
  220. };
  221. employeefun(d[index].child[j].select.child_org[0]);
  222. }}
  223. {{# if(d[index].child[j].keyname=='wzh--live_broadcast_business'){ }}
  224. <div title="{{d[index].child[j].value}}" id="liveperson1" style="display:none;" class="clearfix everydiv">
  225. {{# if(d[index].child[j].is_must==0){ }}
  226. <div class="left" style="line-height: 36px;"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  227. {{# }else{ }}
  228. <div class="left" style="line-height: 36px;"><span>{{d[index].child[j].name}}</span>:</div>
  229. {{# }; }}
  230. <select name="{{ d[index].child[j].keyname }}" id="{{ d[index].child[j].keyname }}">
  231. <option value="">------------</option>
  232. {{ selectstr }}
  233. </select>
  234. {{# }else if(d[index].child[j].keyname=='wzh--live_broadcast_design'){ }}
  235. <div title="{{d[index].child[j].value}}" id="liveperson2" style="display:none;" class="clearfix everydiv">
  236. {{# if(d[index].child[j].is_must==0){ }}
  237. <div class="left" style="line-height: 36px;"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  238. {{# }else{ }}
  239. <div class="left" style="line-height: 36px;"><span>{{d[index].child[j].name}}</span>:</div>
  240. {{# }; }}
  241. <select name="{{ d[index].child[j].keyname }}" id="{{ d[index].child[j].keyname }}">
  242. <option value="">------------</option>
  243. {{ selectstr }}
  244. </select>
  245. {{# }else{ }}
  246. <div title="{{d[index].child[j].value}}" id="liveperson3" style="display:none;" class="clearfix everydiv">
  247. {{# if(d[index].child[j].is_must==0){ }}
  248. <div class="left" style="line-height: 36px;"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  249. {{# }else{ }}
  250. <div class="left" style="line-height: 36px;"><span>{{d[index].child[j].name}}</span>:</div>
  251. {{# }; }}
  252. <select style="display:none;" id="{{ d[index].child[j].keyname }}">
  253. {{ selectstr }}
  254. </select>
  255. <div class="left" style="width:60%;" id="range_person"></div>
  256. {{# } }}
  257. {{# }else if(d[index].child[j].keyname=='wzh--house_location'){ }}
  258. <div class="clearfix everydiv">
  259. {{# if(d[index].child[j].is_must==0){ }}
  260. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  261. {{# }else{ }}
  262. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  263. {{# }; }}
  264. <form title="{{d[index].child[j].value}}" class="layui-form layui-form-pane" id="addForm">
  265. <div id="area-picker" class="clearfix">
  266. <div class="layui-row left">
  267. <select name="province" class="province-selector" lay-verify="required" data-value="" lay-filter="province-1">
  268. <option value="">请选择省份</option>
  269. </select>
  270. </div>
  271. <div class="layui-row left">
  272. <select name="city" class="city-selector" lay-verify="required" data-value="" lay-filter="city-1">
  273. <option value="">请选择市</option>
  274. </select>
  275. </div>
  276. <div class="layui-row left">
  277. <select name="county" class="county-selector" lay-verify="required" data-value="" lay-filter="county-1">
  278. <option value="">请选择区</option>
  279. </select>
  280. </div>
  281. </div>
  282. </form>
  283. {{# }else if(d[index].child[j].keyname=='wzh--talking_about_single_time'){ }}
  284. <div class="clearfix everydiv">
  285. {{# if(d[index].child[j].is_must==0){ }}
  286. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  287. {{# }else{ }}
  288. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  289. {{# }; }}
  290. <input autocomplete="off" name="{{ d[index].child[j].keyname }}" type="text" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')"
  291. placeholder="请填写{{ d[index].child[j].name }}" class="txtbox left" value="{{ d[index].child[j].value }}" id="{{ d[index].child[j].keyname }}" />
  292. {{# }else{ }}
  293. <div class="clearfix everydiv">
  294. {{# if(d[index].child[j].is_must==0){ }}
  295. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  296. {{# }else{ }}
  297. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  298. {{# }; }}
  299. <input autocomplete="off" name="{{ d[index].child[j].keyname }}" type="text" placeholder="请填写{{ d[index].child[j].name }}" class="txtbox left" value="{{ d[index].child[j].value }}" id="{{ d[index].child[j].keyname }}" />
  300. {{# } }}
  301. {{# if(d[index].child[j].is_must==0){ }}
  302. <span title="必填信息" class="red2">*</span>
  303. {{# }; }}
  304. </div>
  305. {{# }else if(d[index].child[j].type==2){ }}
  306. <div class="clearfix everydiv">
  307. {{# if(d[index].child[j].is_must==0){ }}
  308. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  309. {{# }else{ }}
  310. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  311. {{# }; }}
  312. {{# if(d[index].child[j].keyname=='wzh--phone'){ }}
  313. <input name="{{d[index].child[j].keyname}}" type="text" autocomplete="off" value="{{d[index].child[j].value}}" class="txtbox left" size="21" maxlength="11"
  314. id="{{d[index].child[j].keyname}}" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" />
  315. {{# }else if(d[index].child[j].keyname=='wzh--square'){ }}
  316. <input name="{{d[index].child[j].keyname}}" type="text" autocomplete="off" value="{{d[index].child[j].value}}" class="txtbox left" size="8" maxlength="5"
  317. id="{{d[index].child[j].keyname}}" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" />
  318. {{# }else{ }}
  319. <input name="{{d[index].child[j].keyname}}" type="text" autocomplete="off" value="{{d[index].child[j].value}}" class="txtbox left"
  320. id="{{d[index].child[j].keyname}}" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" />
  321. {{# }; }}
  322. {{# if(d[index].child[j].is_must==0){ }}
  323. <span title="必填信息" class="red2">*</span>
  324. {{# }; }}
  325. {{# if(d[index].child[j].unity==null){ }}
  326. <span style="display:none;">{{d[index].child[j].unity}}</span>
  327. {{# }else{ }}
  328. <span >{{d[index].child[j].unity}}</span>
  329. {{# }; }}
  330. </div>
  331. {{# }else if(d[index].child[j].type==3 && d[index].child[j].select.length){ }}
  332. <div class="clearfix everydiv">
  333. {{# if(d[index].child[j].is_must==0){ }}
  334. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  335. {{# }else{ }}
  336. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  337. {{# }; }}
  338. {{# if(d[index].child[j].select.length>3){ }}
  339. <select class="left" name="{{d[index].child[j].keyname}}" id="{{d[index].child[j].keyname}}" style="height:26px;">
  340. <option value="">------------</option>
  341. {{# for(var x=0,len1=d[index].child[j].select.length;x<len1;x++){ }}
  342. {{# if(d[index].child[j].select[x].id==d[index].child[j].value){ }}
  343. <option value="{{d[index].child[j].select[x].id}}" selected>{{d[index].child[j].select[x].name}}</option>
  344. {{# }else{ }}
  345. <option value="{{d[index].child[j].select[x].id}}">{{d[index].child[j].select[x].name}}</option>
  346. {{# }; }}
  347. {{# }; }}
  348. </select>
  349. {{# }else{ }}
  350. {{# for(let w=0,len3=d[index].child[j].select.length;w<len3;w++){ }}
  351. {{# if(d[index].child[j].select[w].id==d[index].child[j].value){ }}
  352. <div class="left ml10">
  353. <input name="{{d[index].child[j].keyname}}" type="radio" value="{{d[index].child[j].select[w].id}}" checked
  354. id="{{d[index].child[j].keyname+(w*1+1)}}" title="{{d[index].child[j].select[w].name}}">
  355. <label for="{{d[index].child[j].keyname+(w*1+1)}}"
  356. title="{{d[index].child[j].select[w].name}}">{{d[index].child[j].select[w].name}}</label>
  357. </div>
  358. {{# }else{ }}
  359. <div class="left ml10">
  360. <input name="{{d[index].child[j].keyname}}" type="radio" value="{{d[index].child[j].select[w].id}}"
  361. id="{{d[index].child[j].keyname+(w*1+1)}}" title="{{d[index].child[j].select[w].name}}">
  362. <label for="{{d[index].child[j].keyname+(w*1+1)}}"
  363. title="{{d[index].child[j].select[w].name}}">{{d[index].child[j].select[w].name}}</label>
  364. </div>
  365. {{# }; }}
  366. {{# }; }}
  367. {{# }; }}
  368. {{# if(d[index].child[j].is_must==0){ }}
  369. <span title="必填信息" class="red2">*</span>
  370. {{# }; }}
  371. </div>
  372. {{# }else if(d[index].child[j].type==4 && d[index].child[j].select.length){ }}
  373. <div class="clearfix everydiv">
  374. {{# if(d[index].child[j].is_must==0){ }}
  375. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  376. {{# }else{ }}
  377. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  378. {{# }; }}
  379. {{# for(let k=0,len2=d[index].child[j].select.length;k<len2;k++){ }}
  380. <div class="left ml10">
  381. {{# if(!!d[index].child[j].select[k].check&&d[index].child[j].select[k].check=='true'){ }}
  382. <input name="{{d[index].child[j].keyname}}" type="checkbox" value="{{d[index].child[j].select[k].id}}" checked
  383. id="{{d[index].child[j].keyname+(k*1+1)}}" title="{{d[index].child[j].select[k].name}}">
  384. {{# }else{ }}
  385. <input name="{{d[index].child[j].keyname}}" type="checkbox" value="{{d[index].child[j].select[k].id}}"
  386. id="{{d[index].child[j].keyname+(k*1+1)}}" title="{{d[index].child[j].select[k].name}}">
  387. {{# }; }}
  388. <label for="{{d[index].child[j].keyname+(k*1+1)}}" title="{{d[index].child[j].select[k].name}}">{{ d[index].child[j].select[k].name }}</label>
  389. </div>
  390. {{# }; }}
  391. {{# if(d[index].child[j].is_must==0){ }}
  392. <span title="必填信息" class="red2">*</span>
  393. {{# }; }}
  394. </div>
  395. {{# }else if(d[index].child[j].type==5){ }}
  396. <div class="clearfix everydiv">
  397. {{# if(d[index].child[j].is_must==0){ }}
  398. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  399. {{# }else{ }}
  400. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  401. {{# }; }}
  402. <input name="{{ d[index].child[j].keyname }}" type="text" autocomplete="off" value="{{ d[index].child[j].value }}"
  403. class="txtbox left" placeholder="请选择{{ d[index].child[j].name }}" id="{{ d[index].child[j].keyname }}"
  404. readonly="readonly" />
  405. {{# if(d[index].child[j].is_must==0){ }}
  406. <span title="必填信息" class="red2">*</span>
  407. {{# }; }}
  408. </div>
  409. {{# }else if(d[index].child[j].type==6){ }}
  410. <div class="clearfix everydiv">
  411. {{# if(d[index].child[j].is_must==0){ }}
  412. <div class="left"><span style="color:#FF0000;">{{d[index].child[j].name}}</span>:</div>
  413. {{# }else{ }}
  414. <div class="left"><span>{{d[index].child[j].name}}</span>:</div>
  415. {{# }; }}
  416. <div class="{{ d[index].child[j].keyname }} addimgbox">
  417. {{# if(d[index].child[j].value){ }}
  418. {{# for(var t=0;t<d[index].child[j].value.length;t++){ }}
  419. <img src='{{ d[index].child[j].value[t].oss_url }}' onclick='delimg(this)' img='{{ d[index].child[j].value[t].url }}' />
  420. {{# }; }}
  421. {{# }; }}
  422. </div>
  423. <button type="button" class="uploadbtn" id="{{ d[index].child[j].keyname }}">
  424. <i class="layui-icon">&#xe67c;</i>上传图片
  425. </button>
  426. {{# if(d[index].child[j].is_must==0){ }}
  427. <span title="必填信息" class="red2">*</span>
  428. {{# }; }}
  429. </div>
  430. {{# }; }}
  431. {{# }; }}
  432. </div>
  433. {{# }; }}
  434. </script>
  435. <script type="text/javascript">
  436. layui.config({
  437. base: '__LAYUI__/',
  438. urlbase: '/sys'
  439. }).extend({
  440. index: 'lib/index', //主入口模块
  441. layarea: 'lib/layarea' // 这里的layarea为插件的别名
  442. , version: '1.0'
  443. }).use(['table', 'laydate', 'form', 'upload', 'layarea', 'laytpl'], function () {
  444. var table = layui.table, laydate = layui.laydate,form=layui.form
  445. $ = layui.$, upload = layui.upload, laytpl=layui.laytpl,layarea = layui.layarea;
  446. let hobj = GetRequest();
  447. var cid = hobj.id;//客户id
  448. $.ajax({
  449. url: '{:url("empcrm/model_new_report")}'
  450. , data: {
  451. id:cid
  452. }
  453. , type: 'post'
  454. , success: function (res) {
  455. if (res.code == 0) {
  456. let designer = [];
  457. let uploadarr = [];
  458. var getTpl = csutomerdiv.innerHTML, view = document.getElementById('crmsgbox');
  459. laytpl(getTpl).render(res.data, function (html) {
  460. view.innerHTML = html;
  461. });
  462. for (let i = 0; i < res.data.length; i++) {
  463. for (let j = 0; j < res.data[i].child.length; j++) {
  464. // res.data[i].child[j].keyname = 'wzh--' + res.data[i].child[j].keyname;
  465. // ,1输入框,2数字框,3单选框,4多选框,5日期,6上传图片
  466. if (res.data[i].child[j].type == 5) {
  467. if (res.data[i].child[j].keyname == 'wzh--group_building_date') {
  468. laydate.render({
  469. elem: '#' + res.data[i].child[j].keyname,
  470. value: res.data[i].child[j].value ? res.data[i].child[j].value : '',
  471. max: 0
  472. , trigger: 'click'
  473. });
  474. } else if (res.data[i].child[j].keyname == 'wzh--add_wechat_time') {
  475. laydate.render({
  476. elem: '#' + res.data[i].child[j].keyname,
  477. max: 0,
  478. trigger: 'click',
  479. type: 'date',
  480. });
  481. } else if(res.data[i].child[j].keyname == 'wzh--sign_time'){
  482. laydate.render({
  483. elem: '#'+res.data[i].child[j].keyname,
  484. trigger:'click',
  485. type: 'datetime',
  486. format: "yyyy/MM/dd HH:mm"
  487. });
  488. } else {
  489. laydate.render({
  490. elem: '#' + res.data[i].child[j].keyname,
  491. value: res.data[i].child[j].value ? res.data[i].child[j].value : ''
  492. , trigger: 'click'
  493. });
  494. }
  495. } else if (res.data[i].child[j].type == 6) {
  496. uploadarr.push(res.data[i].child[j].keyname);
  497. }
  498. }
  499. }
  500. new Promise(function (resolve, reject) {
  501. setTimeout(() => {
  502. let arr = [], nowarr = $('#liveperson3').attr('title') ? $('#liveperson3').attr('title').split(',') : [];
  503. for (let r = 0; r < $('#wzh--live_broadcast_personnel option').length; r++) {
  504. let flag = false;
  505. for (let l in nowarr) {
  506. if (nowarr[l] == $($('#wzh--live_broadcast_personnel option')[r]).val()) {
  507. flag = true;
  508. }
  509. }
  510. let obj = {
  511. name: $($('#wzh--live_broadcast_personnel option')[r]).val(),
  512. value: $($('#wzh--live_broadcast_personnel option')[r]).val(),
  513. selected: flag ? flag : false,
  514. }
  515. arr.push(obj);
  516. }
  517. xmSelect.render({
  518. el: '#range_person',
  519. data: arr,
  520. on: function (data) {
  521. var arr = data.arr;
  522. let valarr = [];
  523. for (let j in arr) {
  524. valarr.push(arr[j].name);
  525. }
  526. $('#range_person').attr('title', valarr.join(','))
  527. }
  528. })
  529. resolve();
  530. }, 100);
  531. }).then(function () {
  532. setTimeout(() => {
  533. form.render();
  534. let lstr = $('#addForm').attr('title') ? $('#addForm').attr('title').split('/') : [];
  535. layarea.render({
  536. elem: '#area-picker',
  537. data: {
  538. province: lstr.length>0?lstr[0]:'',
  539. city: lstr.length > 0 ? lstr[1] : '',
  540. county: lstr.length > 0 ? lstr[2] : ''
  541. },
  542. change: function (res) {
  543. //选择结果
  544. // console.log(res)
  545. $('#area-picker').attr('title', res.province + '/' + res.city + '/' + res.county)
  546. }
  547. });
  548. }, 1200);
  549. }).then(function () {
  550. setTimeout(() => {
  551. if (!!$('input[name="wzh--live_broadcast"]')[0].checked) {
  552. $('#liveperson1').val($('#liveperson1').attr('title'));
  553. $('#liveperson1').show();
  554. }
  555. if (!!$('input[name="wzh--live_broadcast"]')[1].checked) {
  556. $('#liveperson2').val($('#liveperson2').attr('title'));
  557. $('#liveperson2').show();
  558. }
  559. if (!!$('input[name="wzh--live_broadcast"]')[2].checked) {
  560. $('#liveperson3').show();
  561. }
  562. $('input[name="wzh--live_broadcast"]').change(function (e) {
  563. if ($(this).attr('title') == '1对1业务直播') {
  564. if ($(this).is(':checked') == true) {
  565. $('#liveperson1').show();
  566. } else {
  567. $('#liveperson1').hide();
  568. }
  569. } else if ($(this).attr('title') == '1对1设计直播') {
  570. if ($(this).is(':checked') == true) {
  571. $('#liveperson2').show();
  572. } else {
  573. $('#liveperson2').hide();
  574. }
  575. } else {
  576. if ($(this).is(':checked') == true) {
  577. $('#liveperson3').show();
  578. } else {
  579. $('#liveperson3').hide();
  580. }
  581. }
  582. });
  583. }, 300);
  584. }).then(function () {
  585. setTimeout(() => {
  586. for (let g = 0; g < uploadarr.length; g++) {
  587. upload.render({
  588. elem: '#' + uploadarr[g] //绑定元素
  589. , url: '/empcrm/empcrm/upload_file' //上传接口
  590. , accept: 'image',
  591. multiple: true,
  592. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  593. field: 'file',
  594. done: function (res) {
  595. let imgstr = "<img src='https://o.nczyzs.com/" + res.url + "' onclick='delimg(this)' img='" + res.url + "' />";
  596. $('.' + uploadarr[g]).append(imgstr);
  597. }
  598. , error: function () {
  599. //请求异常回调
  600. }
  601. });
  602. }
  603. }, 550);
  604. });
  605. for (let st = 0; st < $('.seebtn').length; st++) {
  606. $('.seebtn').index = st;
  607. $($('.seebtn')[st]).click(function () {
  608. let show = $(this).parent('').next().css('display');
  609. console.log(show)
  610. if (show != 'block') {
  611. $(this).parent('').next().css('display', 'block')
  612. } else {
  613. $(this).parent('').next().css('display', 'none')
  614. }
  615. })
  616. }
  617. let arrdiv=$('.everydiv');
  618. let num1=0;
  619. let pwidth=$('.crmsgbox').width()/2;
  620. for(let i=0;i<arrdiv.length;i++){
  621. let str;
  622. if(((!!$(arrdiv[i]).prev()[0]&&$(arrdiv[i]).prev()[0].className.indexOf('everytit')>-1)||(!$(arrdiv[i]).prev()[0]&&$(arrdiv[i]).parent().prev()[0].className.indexOf('everytit')>-1))&&i!=0){
  623. if(num1%2==1){
  624. $(arrdiv[i-1]).css({'width': '100%'});
  625. }
  626. num1=0;
  627. }
  628. if($(arrdiv[i]).width()>pwidth||arrdiv[i].id=='liveperson1'||arrdiv[i].id=='liveperson2'||arrdiv[i].id=='liveperson3'||!!$(arrdiv[i]).children("#addForm")[0]){
  629. $(arrdiv[i]).css({'width': '100%'});
  630. if(num1%2==1||!num1){
  631. $(arrdiv[i-1]).css({'width': '100%'});
  632. }
  633. num1=0;
  634. }else{
  635. num1=num1*1+1;
  636. $(arrdiv[i]).css({'width': '50%'});
  637. }
  638. }
  639. }else if(res.code == 403){
  640. $(".exitbtn").trigger("click");
  641. } else {
  642. alert(res.msg)
  643. }
  644. }
  645. });
  646. $('.addbtn').click(function(){
  647. if ($('input[name="wzh--name"]').val() && $('input[name="wzh--name"]').val().length > 20) { alert("姓名最长20个字符"); return false; }
  648. if (isPhoneNumber($('input[name="wzh--phone"]').val()) == false) { alert("手机号码填写有误!"); return false; }
  649. var msg='您确定要修改客户信息吗?';
  650. if (confirm(msg) == true){
  651. var myMsg = layer.msg("加载中...",{
  652. icon:16,
  653. time:-1
  654. })
  655. $('#submitBtn').attr('disabled', true);
  656. $.ajax({
  657. url: '{:url("empcrm/model_new_report")}'
  658. , data: {
  659. id:cid
  660. }
  661. , type: 'post'
  662. , success: function (res) {
  663. console.log(res)
  664. if (res.code == 0) {
  665. let arr=[];
  666. for(let i in res.data){
  667. for(let j in res.data[i].child){
  668. // // ,1输入框,2数字框,3单选框,4多选框,5日期
  669. res.data[i].child[j].keyname ='wzh--'+ res.data[i].child[j].keyname;
  670. if(res.data[i].child[j].type==1){
  671. if(res.data[i].child[j].keyname=='wzh--live_broadcast_personnel'){
  672. let obj={
  673. id: res.data[i].child[j].id,
  674. keyname: res.data[i].child[j].keyname.split('--')[1],
  675. value: $('#range_person').attr('title')?$('#range_person').attr('title'):''
  676. }
  677. arr.push(obj);
  678. }else if(res.data[i].child[j].keyname=='wzh--house_location'){
  679. let obj={
  680. id: res.data[i].child[j].id,
  681. keyname: res.data[i].child[j].keyname.split('--')[1],
  682. value: $('#area-picker').attr('title')?$('#area-picker').attr('title'):''
  683. }
  684. arr.push(obj);
  685. }else{
  686. let obj={
  687. id: res.data[i].child[j].id,
  688. keyname: res.data[i].child[j].keyname.split('--')[1],
  689. value: $('#'+res.data[i].child[j].keyname).val()
  690. }
  691. arr.push(obj);
  692. }
  693. }else if(res.data[i].child[j].type==2){
  694. let obj={
  695. id: res.data[i].child[j].id,
  696. keyname: res.data[i].child[j].keyname.split('--')[1],
  697. value: $('#'+res.data[i].child[j].keyname).val()
  698. }
  699. arr.push(obj);
  700. }else if(res.data[i].child[j].type==3){
  701. let obj={
  702. id: res.data[i].child[j].id,
  703. keyname: res.data[i].child[j].keyname.split('--')[1],
  704. value: $('input[name="'+res.data[i].child[j].keyname+'"]').val()==undefined?$('select[name="'+res.data[i].child[j].keyname+'"]').val():($('input[name="'+res.data[i].child[j].keyname+'"]:checked').val()?$('input[name="'+res.data[i].child[j].keyname+'"]:checked').val():'')
  705. }
  706. arr.push(obj);
  707. }else if(res.data[i].child[j].type==4){
  708. let nstr=res.data[i].child[j].keyname;
  709. var chk_value =[];//定义一个数组
  710. $('input[name="'+nstr+'"]:checked').each(function(){
  711. chk_value.push($(this).val()?$(this).val():'');//将选中的值添加到数组chk_value中
  712. });
  713. let obj={
  714. id: res.data[i].child[j].id,
  715. keyname: res.data[i].child[j].keyname.split('--')[1],
  716. value: chk_value.join(',')
  717. }
  718. arr.push(obj);
  719. }else if(res.data[i].child[j].type==5){
  720. let obj={
  721. id: res.data[i].child[j].id,
  722. keyname: res.data[i].child[j].keyname.split('--')[1],
  723. value: $('#'+res.data[i].child[j].keyname).val()
  724. }
  725. arr.push(obj);
  726. } else if (res.data[i].child[j].type == 6) {
  727. let arr1 = [];
  728. for (let y=0;y<$('.' + res.data[i].child[j].keyname + ' img').length;y++) {
  729. if ($($('.' + res.data[i].child[j].keyname + ' img')[y]).attr('img')) {
  730. arr1.push($($('.' + res.data[i].child[j].keyname + ' img')[y]).attr('img'));
  731. }
  732. }
  733. let obj = {
  734. id: res.data[i].child[j].id,
  735. keyname: res.data[i].child[j].keyname.split('--')[1],
  736. value: arr1.length > 0 && arr1 ? arr1.join(',') : ''
  737. }
  738. arr.push(obj);
  739. }
  740. }
  741. }
  742. $.ajax({
  743. url: '{:url("empcrm/add_customer")}'
  744. , data: {
  745. id:cid,
  746. name: $('#wzh--name').val(),//(客户名称)
  747. phone: $('input[name="wzh--phone"]').val(),//(手机号)
  748. phone1: $('input[name="wzh--phone1"]').val(),//(手机号)
  749. phone2: $('input[name="wzh--phone2"]').val(),//(手机号)
  750. sex: $('input:radio[name="wzh--sex"]:checked').val(),// (性别)
  751. level: $('input[name="wzh--level"]').val(),//(客户重要级别)
  752. ext: arr, //(扩展字段)
  753. id: cid, //(客户id)
  754. }
  755. , type: 'post'
  756. , success: function (res) {
  757. if (res.code == 0) {
  758. let hobj = GetRequest();
  759. window.parent.gotolist(hobj.id, hobj.type ? hobj.type : '');
  760. } else {
  761. alert(res.msg)
  762. }
  763. layer.close(myMsg);
  764. }
  765. });
  766. }else if(res.code == 403){
  767. $(".exitbtn").trigger("click");
  768. }
  769. }
  770. })
  771. }
  772. })
  773. })
  774. function delimg(that) {
  775. if (confirm('确认删除这张图片吗?')) {
  776. $(that).remove();
  777. }
  778. }
  779. function isPhoneNumber(tel) { var reg = /^0?1[3|4|5|6|7|8|9][0-9]\d{8}$/; return reg.test(tel); }
  780. $('.goback').click(function () {
  781. let hobj = GetRequest();
  782. window.parent.gotolist(hobj.id, hobj.type? hobj.type:'');
  783. })
  784. function GetRequest() {
  785. var url = location.search; //获取url中"?"符后的字串
  786. var theRequest = new Object();
  787. if (url.indexOf("?") != -1) {
  788. var str = url.substr(1);
  789. strs = str.split("&");
  790. for (var i = 0; i < strs.length; i++) {
  791. theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
  792. }
  793. }
  794. return theRequest;
  795. }
  796. </script>
  797. {/block}