郑州第一人民医院UI

addOrEditUserManage.js 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. /**
  2. * 用户增加或编辑
  3. * */
  4. var head_img_data; //保存头像的大图
  5. var small_img_data; //保存头像的小图
  6. var Ids = helper.request.queryString("ids");
  7. var imageArr0 = '',
  8. imageArr1 = '';
  9. var groupid;
  10. uploaderImg(0); //技能证书
  11. uploaderImg(1); //身份证
  12. $(function() {
  13. autosize($('textarea'));
  14. //获取项目
  15. //helper.getDropList.getProlistDrop($('#projectid'));
  16. projectName($('#projectid'))
  17. getDepartname($('#administrative'),'',Ids)
  18. // $('#projectid').on('change', function() {
  19. // getDepartname($('#administrative'),'',Ids)
  20. // // GetRoleName($('#administrative'))
  21. // });
  22. //获取角色
  23. getRoleName($('#role_id'));
  24. getSeatGroup($('#seat_group')); //坐席组下拉
  25. imgEditor(); //头像裁剪
  26. // if(Ids) {
  27. //
  28. // $('.editPwd').show();
  29. // $('.addPwd').hide();
  30. // $.when(helper.getDropList.getProlistDrop($('#projectid')), getRoleName($('#role_id')), getSeatGroup($('#seat_group'))).then(function() {
  31. // getUserDetails(Ids); //详情
  32. // });
  33. // }
  34. //添加编辑保存按钮点击
  35. $('#pro_save').on('click', saveUsers);
  36. //日期
  37. lay('.layer_times').each(function() {
  38. laydate.render({
  39. elem: this,
  40. trigger: 'click',
  41. });
  42. });
  43. //是否使用话务标识
  44. $('#seat_flag').on('change', function() {
  45. if($(this).find('input[name="seat_flag_radio"]:checked').val() === "true") {
  46. $('#seat_settings').show();
  47. } else {
  48. $('#seat_settings').hide();
  49. }
  50. });
  51. $('#seat_flag').trigger('change');
  52. //密码对比
  53. $('#password2').blur(function() {
  54. if($(this).val()) {
  55. if($(this).val() !== $('#password').val()) {
  56. layer.confirm('密码输入不一致,请重新输入!', {
  57. icon: 2,
  58. btn: ['确定']
  59. }, function(index) {
  60. layer.close(index);
  61. $('#password2').val('');
  62. $('#password2').trigger('focus');
  63. });
  64. return;
  65. }
  66. } else {
  67. layer.confirm('请确认密码!', {
  68. icon: 2,
  69. btn: ['确定']
  70. });
  71. return;
  72. }
  73. })
  74. });
  75. var pwdHtml = '<ul class="project_items form-horizontal" style="width: 95%">' +
  76. '<li class="form-group addPwd">' +
  77. '<label for="password" class="col-md-2 text-right"><b class="text_require">*</b>密码</label>' +
  78. '<div class="col-md-10">' +
  79. '<input id="password_cz" class="form-control" type="password" autocomplete="off" placeholder="请输入密码" />' +
  80. '</div>' +
  81. '</li>' +
  82. '<li class="form-group addPwd">' +
  83. '<label for="password2" class="col-md-2 text-right"><b class="text_require">*</b>确认密码</label>' +
  84. '<div class="col-md-10">' +
  85. '<input id="password2_cz" class="form-control" type="password" autocomplete="off" placeholder="请再次输入密码" />' +
  86. '</div>' +
  87. '</li>' +
  88. '<li class="form-group addPwd">' +
  89. '<div class="col-md-12" style="text-align: center;">' +
  90. '<button id="submitPwd" class="btn btn-info" onclick="editPwd()">提交</button>' +
  91. '</div>' +
  92. '</li>' +
  93. '</ul>'
  94. var pwdTC, userCodes;
  95. $('#editPwd').click(function() {
  96. pwdTC = layer.open({
  97. type: 1,
  98. title: '密码重置',
  99. area: ['50%', '50%'], //宽高
  100. content: pwdHtml
  101. });
  102. });
  103. //角色
  104. function GetRoleName(obj) {
  105. obj.empty();
  106. obj.append("<option value=''>请选择</option>");
  107. $.getJSON(huayi.config.callcenter_url + "configurationapi/api/Department/getlist", {
  108. projectid: $('#projectid').val(),
  109. }, function(data) {
  110. console.log(data)
  111. if(data.rows.length >= 0) {
  112. var content = data.rows;
  113. $(content).each(function(i, n) {
  114. $("<option value='" + n.departmenname + "'>" + n.departmenname + "</option>").appendTo(obj);
  115. })
  116. obj.selectpicker('refresh');
  117. }
  118. })
  119. }
  120. //科室
  121. function getDepartname(obj, opName,Ids) {
  122. obj.empty();
  123. $.getJSON(huayi.config.callcenter_url + "testusertypeapi/api/TestUserType/getalldeptnlists", {}, function(data) {
  124. if(data.data.length >= 0) {
  125. var content = data.data;
  126. $(content).each(function(i, n) {
  127. $("<option value='" + n.name + "'>" + n.name + "</option>").appendTo(obj);
  128. })
  129. obj.selectpicker('refresh');
  130. console.log(Ids)
  131. if(Ids) {
  132. console.log(22343)
  133. $('.editPwd').show();
  134. $('.addPwd').hide();
  135. $.when(helper.getDropList.getProlistDrop($('#projectid')), getRoleName($('#role_id')), getSeatGroup($('#seat_group'))).then(function() {
  136. getUserDetails(Ids); //详情
  137. });
  138. }
  139. }
  140. })
  141. }
  142. function projectName(obj) {
  143. obj.empty();
  144. obj.append("<option value=''>请选择医院</option>");
  145. $.getJSON(huayi.config.callcenter_url + "equipmentapi/api/ProjectInfo/getlistdrop", function(result) {
  146. if(result.state.toLowerCase() == "success") {
  147. var content = result.data;
  148. $(content).each(function(i, n) {
  149. $("<option value='" + n.id + "'>" + n.text + "</option>").appendTo(obj);
  150. })
  151. obj.selectpicker('refresh');
  152. }
  153. })
  154. }
  155. //密码重置
  156. function editPwd() {
  157. if(!regexs.passwordReg.test($.trim($('#password_cz').val()))) {
  158. layer.confirm('请输入有效的密码(6-32个字符只能是字母、下划线、数字)', {
  159. icon: 2,
  160. btn: ['确定']
  161. });
  162. return;
  163. }
  164. if(!regexs.passwordReg.test($.trim($('#password2_cz').val()))) {
  165. layer.confirm('请输入有效的确认密码(6-32个字符只能是字母、下划线、数字)', {
  166. icon: 2,
  167. btn: ['确定']
  168. });
  169. return;
  170. }
  171. $('#password2_cz').blur(function() {
  172. if($(this).val()) {
  173. if($(this).val() !== $('#password_cz').val()) {
  174. layer.confirm('密码输入不一致,请重新输入!', {
  175. icon: 2,
  176. btn: ['确定']
  177. }, function(index) {
  178. layer.close(index);
  179. $('#password2_cz').val('');
  180. $('#password2_cz').trigger('focus');
  181. });
  182. return;
  183. }
  184. } else {
  185. layer.confirm('请确认密码!', {
  186. icon: 2,
  187. btn: ['确定']
  188. });
  189. return;
  190. }
  191. })
  192. $.post(huayi.config.callcenter_url + "signtokenapi/api/UserAccount/updatepassword", {
  193. usercode: userCodes,
  194. password: $.md5($('#password_cz').val()),
  195. surepassword: $.md5($('#password2_cz').val()),
  196. }, function(data) {
  197. data = JSON.parse(data);
  198. if(data.state == "success") {
  199. layer.msg("密码修改成功!");
  200. layer.close(pwdTC); //关闭弹层
  201. }
  202. });
  203. }
  204. //获取详情
  205. function getUserDetails(ids) {
  206. $.getJSON(huayi.config.callcenter_url + "signtokenapi/api/UserAccount/getdetails", {
  207. id: ids,
  208. }, function(data) {
  209. if(data.state == "success") {
  210. var res = data.data;
  211. // getDepartname($('#administrative'),res.postname)
  212. $('#usercode').val(res.usercode);
  213. userCodes = res.usercode;
  214. $('#user_name').val(res.username);
  215. $('#type').find('input[name="userType_flag"][value="' + res.type + '"]').prop("checked", "checked"); //用户类型
  216. $('#role_id').selectpicker('val', res.role_id).trigger('change'); //角色id
  217. $('input[name="sex"][value="' + res.sex + '"]').prop("checked", "checked"); //性别
  218. $('#mail').val(res.mail); //邮箱
  219. $('#mobile').val(res.mobile); //手机号
  220. // $('#remark').val(res.remark); //备注
  221. $('#remark').selectpicker('val', res.remark).trigger("change");
  222. //$("#administrative").val(res.team_id) //科室
  223. $("#team_id").val(res.remark), //岗位类型
  224. $('#entrytime').val(res.entrytime); // string 入职时间
  225. $('#transfertime').val(res.transfertime); // string 转岗时间
  226. $('#idcardno').val(res.idcardno); //string 身份证号码(新)
  227. getImgVal(res.certificate, 0); // list 技能证书
  228. getImgVal(res.idcard, 1); //list 身份证照片(新)
  229. $('#image_list0').find('.thumbnail').on('click', '.image-close', function() {
  230. $(this).parent().remove();
  231. file_num(0);
  232. });
  233. $('#image_list1').find('.thumbnail').on('click', '.image-close', function() {
  234. $(this).parent().remove();
  235. file_num(1);
  236. });
  237. $('#projectid').selectpicker('val', res.projectlist).trigger("change"); //项目信息
  238. // $('#administrative').selectpicker('val', res.postname).trigger('change');
  239. $('.administrative').val(res.postname)
  240. //头像
  241. var ipUrl = data.data.head_img;
  242. if(ipUrl && ipUrl.length > 0) {
  243. head_img_data = ipUrl;
  244. small_img_data = data.data.head_small_img;
  245. $('.crop_left img').attr('src', ipUrl);
  246. // $.each(ipUrl, function(i, v) {
  247. // $('.crop_left img').attr('src', v.head_img);
  248. // $("#file_name").val(v.filename);
  249. // });
  250. } else {
  251. // $('.crop_left img').attr('src', '../img/p3.jpg');
  252. $('.crop_left img').attr('src', '');
  253. }
  254. imgEditor();
  255. //话务相关
  256. $('#seat_flag').find('input[name="seat_flag_radio"][value="' + res.seat_flag + '"]').prop("checked", "checked").trigger('change'); //话务标志
  257. // $('#extensionnumber').val(res.extensionnumber); //分机号
  258. $('#seat_right').find('input[name="seat_right_radio"][value="' + res.seat_right + '"]').prop("checked", "checked"); //坐席类别
  259. $('#seat_group').selectpicker('val', res.group).trigger('change'); //坐席组id
  260. // $('#seat_level').val(res.seat_level); //坐席等级
  261. // $('input[name="see_flag"][value="' + res.see_flag + '"]').prop("checked", "checked"); //查看权限
  262. // $('input[name="call_type"][value="' + res.call_type + '"]').prop("checked", "checked"); //呼叫类型
  263. // $('#team_id').val(res.team_id); //团队
  264. }
  265. });
  266. }
  267. //保存
  268. function saveUsers() {
  269. // console.log($('#seat_group').val())
  270. // var selvalue = sel
  271. // var sel = document.getElementsByName("seat_group")[0];
  272. // console.log(sel.options[sel.options.selectedIndex].value)
  273. var options = $("#seat_group option:selected")
  274. console.log(options.text());
  275. if($('#seat_settings').css('display') == 'block') {
  276. if(options.text() == '咨询组') {
  277. groupid = 364
  278. } else if(options.text() == '客服组') {
  279. groupid = 365;
  280. }
  281. }
  282. if(!regexs.userReg.test($.trim($('#usercode').val()))) {
  283. layer.confirm('请输入有效的用户工号(4-20个字符只能是字母、下划线、数字)', {
  284. icon: 2,
  285. btn: ['确定']
  286. });
  287. return;
  288. }
  289. if(!$.trim($('#user_name').val())) {
  290. layer.confirm('请输入姓名!', {
  291. icon: 2,
  292. btn: ['确定']
  293. });
  294. return;
  295. }
  296. if(!$.trim($('#role_id').val())) {
  297. layer.confirm('请选择角色!', {
  298. icon: 2,
  299. btn: ['确定']
  300. });
  301. return;
  302. }
  303. if(!regexs.phone.test($.trim($('#mobile').val()))) {
  304. layer.confirm('请输入有效的手机号码!', {
  305. icon: 2,
  306. btn: ['确定']
  307. });
  308. return;
  309. }
  310. if($.trim($('#idcardno').val())) {
  311. if(!regexs.identityCard.test($.trim($('#idcardno').val()))) {
  312. layer.confirm('请输入有效的身份证号码!', {
  313. icon: 2,
  314. btn: ['确定']
  315. });
  316. return;
  317. }
  318. }
  319. if(!$.trim($('#projectid').val())) {
  320. layer.confirm('请选择项目信息', {
  321. icon: 2,
  322. btn: ['确定']
  323. });
  324. return;
  325. }
  326. if($('#seat_flag').find('input[name="seat_flag_radio"]:checked').val() === "true") {
  327. // if(!regexs.extensionNumber.test($.trim($('#extensionnumber').val()))) {
  328. // layer.confirm('请输入有效的分机号(4-20位的数字)', {
  329. // icon: 2,
  330. // btn: ['确定']
  331. // });
  332. // return;
  333. // }
  334. if(!$.trim($('#seat_group').val())) {
  335. layer.confirm('请选择坐席组', {
  336. icon: 2,
  337. btn: ['确定']
  338. });
  339. return;
  340. }
  341. }
  342. if(Ids) {
  343. editUsers(Ids);
  344. } else {
  345. if(!regexs.passwordReg.test($.trim($('#password').val()))) {
  346. layer.confirm('请输入有效的密码(6-32个字符只能是字母、下划线、数字)', {
  347. icon: 2,
  348. btn: ['确定']
  349. });
  350. return;
  351. }
  352. if(!regexs.passwordReg.test($.trim($('#password2').val()))) {
  353. layer.confirm('请输入有效的确认密码(6-32个字符只能是字母、下划线、数字)', {
  354. icon: 2,
  355. btn: ['确定']
  356. });
  357. return;
  358. }
  359. addUsers();
  360. }
  361. }
  362. //添加用户
  363. function addUsers() {
  364. $.post(huayi.config.callcenter_url + "signtokenapi/api/UserAccount/add", {
  365. usercode: $('#usercode').val(),
  366. username: $('#user_name').val(),
  367. password: $.md5($('#password').val()),
  368. type: $('#type').find('input[name="userType_flag"]:checked').val(), //用户类型
  369. role_id: $('#role_id').val(),
  370. sex: $('input[name="sex"]:checked').val(),
  371. mail: $('#mail').val(),
  372. head_img: head_img_data, //头像大图
  373. head_small_img: small_img_data, //头像缩略图
  374. mobile: $('#mobile').val(), //手机号码
  375. remark: $('#remark').val(),
  376. postlist: $(".administrative").val(), //科室 $('#administrative').val() ? $('#projectid').val() : []
  377. team_id: $("#team_id").val(), //岗位类型
  378. idcardno: $('#idcardno').val(), //string 身份证号码(新)
  379. idcard: imageArr1, // list 身份证照片(新)
  380. certificate: imageArr0, // list 技能证书
  381. entrytime: $('#entrytime').val(), // string 入职时间
  382. transfertime: $('#transfertime').val(), // string 转岗时间
  383. projectlist: [$('#projectid').val(), $('#projectid').val()], // list 项目id 如:[“项目id”,”项目id”,”项目id”]
  384. // projectlist: $('#projectid').val() ? $('#projectid').val() : [], // list 项目id 如:[“项目id”,”项目id”,”项目id”]
  385. //话务相关
  386. seat_flag: $('#seat_flag').find('input[name="seat_flag_radio"]:checked').val(), //话务标志
  387. // extensionnumber: $('#extensionnumber').val(), //分机号
  388. seat_right: $('#seat_right').find('input[name="seat_right_radio"]:checked').val(), //坐席类别
  389. group: $('#seat_group').val(), //坐席组id
  390. groupid: groupid
  391. // seat_level: $('#seat_level').val(), //坐席等级
  392. // see_flag: $('input[name="see_flag"]:checked').val(),//string 察看权限(1:个人;2:班组;3:所有)
  393. // call_type: $('input[name="call_type"]:checked').val(),//int 0:呼入;1:呼出
  394. // team_id: $('#team_id').val(),//团队id
  395. }, function(data) {
  396. data = JSON.parse(data);
  397. if(data.state == "success") {
  398. var index = parent.layer.getFrameIndex(window.name);
  399. parent.layer.close(index);
  400. parent.$('#user_table').bootstrapTable('refresh');
  401. parent.layer.msg("保存成功");
  402. }
  403. });
  404. }
  405. //编辑用户
  406. function editUsers(Ids) {
  407. $.post(huayi.config.callcenter_url + "signtokenapi/api/UserAccount/update", {
  408. id: Ids,
  409. usercode: $('#usercode').val(),
  410. username: $('#user_name').val(),
  411. type: $('#type').find('input[name="userType_flag"]:checked').val(), //用户类型
  412. role_id: $('#role_id').val(),
  413. sex: $('input[name="sex"]:checked').val(),
  414. postlist: $(".administrative").val(), //科室
  415. team_id: $("#team_id").val(), //岗位类型
  416. mail: $('#mail').val(),
  417. head_img: head_img_data, //头像大图
  418. head_small_img: small_img_data, //头像缩略图
  419. mobile: $('#mobile').val(),
  420. remark: $('#remark').val(),
  421. idcardno: $('#idcardno').val(), //string 身份证号码(新)
  422. idcard: imageArr1, // list 身份证照片(新)
  423. certificate: imageArr0, // list 技能证书
  424. entrytime: $('#entrytime').val(), // string 入职时间
  425. transfertime: $('#transfertime').val(), // string 转岗时间
  426. projectlist: $('#projectid').val() ? $('#projectid').val() : [], // list 项目id 如:[“项目id”,”项目id”,”项目id”]
  427. //话务相关
  428. seat_flag: $('#seat_flag').find('input[name="seat_flag_radio"]:checked').val(), //话务标志
  429. // extensionnumber: $('#extensionnumber').val(), //分机号
  430. seat_right: $('#seat_right').find('input[name="seat_right_radio"]:checked').val(), //坐席类别
  431. group: $('#seat_group').val(), //坐席组id
  432. groupid: groupid
  433. // seat_level: $('#seat_level').val(), //坐席等级
  434. // see_flag: $('input[name="see_flag"]:checked').val(),//string 察看权限(1:个人;2:班组;3:所有)
  435. // call_type: $('input[name="call_type"]:checked').val(),//int 0:呼入;1:呼出
  436. // team_id: $('#team_id').val(),//团队id
  437. }, function(data) {
  438. data = JSON.parse(data);
  439. if(data.state == "success") {
  440. //更新头像
  441. if($('#usercode').val() === window.localStorage.getItem('userCode')) {
  442. if(head_img_data != window.localStorage.getItem('headImg')) {
  443. window.localStorage.setItem('headImg', head_img_data);
  444. top.$('#head_img').attr('src', head_img_data);
  445. }
  446. }
  447. var index = parent.layer.getFrameIndex(window.name);
  448. parent.layer.close(index);
  449. parent.$('#user_table').bootstrapTable('refresh');
  450. parent.layer.msg("保存成功");
  451. }
  452. });
  453. }
  454. //图片剪切
  455. function imgEditor() {
  456. var o = $(".image-crop > img");
  457. o.cropper("destroy");
  458. o.cropper({
  459. // aspectRatio: 750 / 1334,
  460. aspectRatio: 1 / 1,
  461. resizable: true,
  462. dragCrop: true,
  463. preview: ".img-preview",
  464. done: function() {
  465. }
  466. });
  467. var r = $("#inputImage");
  468. var fileName = $("#file_name").val();
  469. if(window.FileReader) {
  470. r.change(function() {
  471. $('.progress-bar').css('width', '0%');
  472. $('.progress-bar').text('0%');
  473. var e, i = new FileReader,
  474. t = this.files;
  475. if(t.length && (e = t[0], /^image\/\w+$/.test(e.type))) {
  476. i.readAsDataURL(e);
  477. fileName = e.name;
  478. i.onload = function() {
  479. r.val("");
  480. o.cropper("reset", !0).cropper("replace", this.result);
  481. }
  482. } else {
  483. layer.msg("请选择本地图片文件");
  484. }
  485. });
  486. $("#setDrag").click(function() {
  487. var self = $(this);
  488. o.cropper("setDragMode", "crop");
  489. var imgUrl = o.cropper("getCroppedCanvas").toDataURL('image/png');
  490. //var dataurl = encodeURIComponent(imgUrl);
  491. var filesjson;
  492. var list = [],
  493. listItem = {};
  494. listItem.filename = fileName;
  495. listItem.fileurl = imgUrl;
  496. list.push(listItem);
  497. filesjson = JSON.stringify(list);
  498. upLoadFile(filesjson, self);
  499. });
  500. $("#zoomIn").click(function() {
  501. $('.progress-bar').css('width', '0%');
  502. $('.progress-bar').text('0%');
  503. o.cropper("zoom", .1)
  504. });
  505. $("#zoomOut").click(function() {
  506. $('.progress-bar').css('width', '0%');
  507. $('.progress-bar').text('0%');
  508. o.cropper("zoom", -.1)
  509. });
  510. $("#rotateLeft").click(function() {
  511. $('.progress-bar').css('width', '0%');
  512. $('.progress-bar').text('0%');
  513. o.cropper("rotate", 45)
  514. });
  515. $("#rotateRight").click(function() {
  516. $('.progress-bar').css('width', '0%');
  517. $('.progress-bar').text('0%');
  518. o.cropper("rotate", -45)
  519. });
  520. } else {
  521. r.addClass("hide");
  522. }
  523. }
  524. /**
  525. * 图片的上传
  526. * fjson 上传图片 的数据
  527. * self 调用者的this
  528. */
  529. function upLoadFile(fjson, self) {
  530. var formData = new FormData();
  531. formData.append("uploadtype", 'proManagement');
  532. formData.append("filesjson", fjson);
  533. $.ajax({
  534. type: "post",
  535. url: huayi.config.callcenter_url + "fileserverapi/Api/Upload",
  536. data: formData, //这里上传的数据使用了formData 对象
  537.   processData: false,
  538.   contentType: false, //必须false才会自动加上正确的Content-Type
  539. xhr: function() { //这是关键 获取原生的xhr对象 做以前做的所有事情
  540. var xhr = jQuery.ajaxSettings.xhr();
  541. xhr.upload.onload = function() {
  542. //alert('finish downloading')
  543. }
  544. xhr.upload.onprogress = function(ev) {
  545. //console.log(ev);
  546. //if(ev.lengthComputable) {
  547. var percent = 100 * ev.loaded / ev.total;
  548. //console.log(percent, ev);
  549. $('.progress-bar').css('width', percent + '%');
  550. $('.progress-bar').text(percent + '%');
  551. //}
  552. }
  553. return xhr;
  554. },
  555. async: true,
  556. beforeSend: function() { //触发ajax请求开始时执行
  557. self.attr("disabled", true);
  558. self.text('图片上传中...');
  559. $('.anniu').find('.btnn').css('backgroundColor', '#778592');
  560. },
  561. // data: {
  562. // uploadtype: 'proManagement',
  563. // filesjson: fjson,
  564. // },
  565. success: function(result) {
  566. result = $.parseJSON(result);
  567. self.attr("disabled", false);
  568. self.text('上传图片');
  569. $('.anniu').find('.btnn').css('backgroundColor', '#2f4050');
  570. /*验证请求*/
  571. if(result.state.toLowerCase() == "success") {
  572. head_img_data = result.data[0].fileurl;
  573. small_img_data = result.data[0].filesmallurl; //头像缩略图
  574. layer.msg("图片上传成功");
  575. } else {
  576. layer.msg(result.message);
  577. }
  578. },
  579. error: function(textStatus) {
  580. $('.progress-bar').css('width', '0%');
  581. $('.progress-bar').text('0%');
  582. layer.confirm('网络繁忙,请稍后再试...', {
  583. btn: ['确定'] //按钮
  584. });
  585. self.text('上传图片');
  586. self.attr("disabled", false);
  587. $('.anniu').find('.btnn').css('backgroundColor', '#2f4050');
  588. },
  589. complete: function(XMLHttpRequest, textStatus) {
  590. if(textStatus == 'timeout') {
  591. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  592. xmlhttp.abort();
  593. layer.confirm('网络超时,请稍后再试...', {
  594. btn: ['确定'] //按钮
  595. });    
  596. }
  597. self.text('上传图片');
  598. self.attr("disabled", false);
  599. $('.anniu').find('.btnn').css('backgroundColor', '#2f4050');
  600. },
  601. });
  602. }
  603. //角色下拉
  604. function getRoleName(obj) {
  605. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  606. $.getJSON(huayi.config.callcenter_url + "configurationapi/api/RoleInfo/getlistdrop", function(data) {
  607. if(data.state.toLowerCase() == "success") {
  608. obj.empty();
  609. obj.append("<option value=''>请选择角色</option>");
  610. var content = data.data;
  611. $(content).each(function(i, n) {
  612. $("<option value='" + n.id + "'>" + n.role_name + "</option>").appendTo(obj);
  613. });
  614. obj.selectpicker('refresh');
  615. dtd.resolve(); // 改变Deferred对象的执行状态
  616. }
  617. })
  618. return dtd.promise(); // 返回promise对象
  619. }
  620. //坐席组下拉
  621. function getSeatGroup(el) {
  622. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  623. $.getJSON(huayi.config.callcenter_url + "callcenterapi/api/sysseatgroup/getlist", function(data) {
  624. if(data.state.toLowerCase() == "success") {
  625. el.empty();
  626. el.append("<option value=''>请选择坐席组</option>");
  627. var content = data.data;
  628. if(content && content.length > 0) {
  629. $(content).each(function(i, n) {
  630. $("<option value='" + n.id + "'>" + n.zxzname + "</option>").appendTo(el);
  631. });
  632. el.selectpicker('refresh');
  633. }
  634. dtd.resolve(); // 改变Deferred对象的执行状态
  635. }
  636. })
  637. return dtd.promise(); // 返回promise对象
  638. }
  639. //添加技能证书和身份证照片
  640. function uploaderImg(cindex) {
  641. var imgList = $('#image_list' + cindex),
  642. eleId = $('#filePicker' + cindex),
  643. uploader;
  644. uploader = WebUploader.create({
  645. // 自动上传。
  646. auto: true,
  647. // swf文件路径
  648. swf: '../js/Uploader.swf',
  649. // 文件接收服务端。
  650. server: huayi.config.callcenter_url + 'fileserverapi/Api/Upload',
  651. // 选择文件的按钮。可选。
  652. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  653. pick: eleId,
  654. // 图片数量限制
  655. // fileNumLimit: 4,
  656. //可以重复上传
  657. duplicate: true,
  658. formData: {
  659. uploadtype: 'equipment' //自定义文件夹用于存放图片
  660. },
  661. // 只允许选择文件,可选。
  662. accept: {
  663. title: 'Images',
  664. extensions: 'gif,jpg,jpeg,bmp,png',
  665. mimeTypes: 'image/*'
  666. },
  667. resize: false,
  668. fileSizeLimit: 30 * 1024 * 1024, // 30 M
  669. fileSingleSizeLimit: 5 * 1024 * 1024 // 5 M
  670. });
  671. //上传图片提示
  672. uploader.on('error', function(code) {
  673. switch(code) {
  674. case "Q_EXCEED_NUM_LIMIT":
  675. layer.msg('只能上传六个文件。');
  676. break;
  677. case "Q_TYPE_DENIED":
  678. layer.msg('图片类型不正确。');
  679. break;
  680. case "F_DUPLICATE":
  681. layer.msg('该文件已上传,请选择其它文件。');
  682. break;
  683. case "F_EXCEED_SIZE":
  684. layer.msg('单文件大小不能超过5M。');
  685. break;
  686. case "Q_EXCEED_SIZE_LIMIT":
  687. layer.msg('总文件大小不能超过30M。');
  688. break;
  689. default:
  690. break;
  691. }
  692. });
  693. // 当有文件添加进来的时候
  694. uploader.on('fileQueued', function(file) {
  695. //console.log(file);
  696. var $li = $(
  697. '<div id="' + cindex + '' + file.id + '" class="file-item thumbnail">' +
  698. '<div class="image-close">X</div>' +
  699. '<img>' +
  700. '<div class="info">' + file.name + '</div>' +
  701. '</div>'
  702. ),
  703. $img = $li.find('img');
  704. imgList.prepend($li);
  705. $(".image-close").on('click', function() {
  706. event.stopPropagation();
  707. $(this).parent().remove();
  708. helper.methods.delImgs($(this).parent().attr("data-filesmallurl"), $(this).parent().attr("data-fileurl"));
  709. file_num(cindex)
  710. });
  711. });
  712. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  713. uploader.on('uploadSuccess', function(file, response) {
  714. //console.log(file)
  715. $.each(response.data, function(i, j) {
  716. // obj=
  717. var $img = $('#' + cindex + file.id).find('img');
  718. $('#' + cindex + file.id).attr({
  719. 'data-filename': j.filename,
  720. 'data-fileext': j.fileext,
  721. 'data-filemd5': j.filemd5,
  722. 'data-filesize': j.filesize,
  723. 'data-fileurl': j.fileurl,
  724. 'data-filesmallurl': j.filesmallurl
  725. });
  726. uploader.makeThumb(file, function(error, src) {
  727. $img.attr('src', j.filesmallurl);
  728. $img.addClass('image-item');
  729. // $img.attr('data-preview-group', "1");
  730. }, 50, 50);
  731. });
  732. $('#' + cindex + file.id).addClass('upload-state-done');
  733. file_num(cindex)
  734. });
  735. // 文件上传失败,现实上传出错。
  736. uploader.on('uploadError', function(file) {
  737. var $li = $('#' + cindex + file.id),
  738. $error = $li.find('div.error');
  739. // 避免重复创建
  740. if(!$error.length) {
  741. $error = $('<div class="error"></div>').appendTo($li);
  742. }
  743. $error.text('上传失败');
  744. });
  745. // 完成上传完了,成功或者失败,先删除进度条。
  746. // uploader.on('uploadComplete', function(file) {
  747. // });
  748. }
  749. //隐藏域值
  750. function file_num(num) {
  751. var arr = [];
  752. $('#image_list' + num).find('.thumbnail').each(function(j, m) {
  753. var obj = {
  754. 'filename': $(m).attr("data-filename"),
  755. 'fileext': $(m).attr("data-fileext"),
  756. 'filemd5': $(m).attr("data-filemd5"),
  757. 'filesize': $(m).attr("data-filesize"),
  758. 'fileurl': $(m).attr("data-fileurl"),
  759. 'filesmallurl': $(m).attr("data-filesmallurl")
  760. }
  761. arr.push(obj)
  762. })
  763. window['imageArr' + num] = arr;
  764. }
  765. //获取详情时 图片展示
  766. function getImgVal(data, num) {
  767. $(data).each(function(i, n) {
  768. var $li = $(
  769. '<div class="file-item thumbnail" data-filename="' + n.filename + '" data-fileext="' + n.fileext + '" data-filemd5="' + n.filemd5 + '" data-filesize="' + n.filesize + '" data-fileurl="' + n.fileurl + '" data-filesmallurl="' + n.filesmallurl + '" >' +
  770. '<div class="image-close">X</div>' +
  771. '<img src="' + n.filesmallurl + '">' +
  772. '<div class="info">' + n.filename + '</div>' +
  773. '</div>'
  774. ),
  775. $img = $li.find('img');
  776. $('#image_list' + num).prepend($li);
  777. })
  778. file_num(num)
  779. }