hr.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. {extend name="public/layout" /}
  2. {block name="title"}人员异动{/block}
  3. {block name="body"}
  4. <style type="text/css">
  5. html,
  6. body {
  7. display: block;
  8. background-color: #fff;
  9. }
  10. .layui-fluid {
  11. display: block;
  12. border-radius: 5px;
  13. background-color: #ffffff;
  14. padding: 15px 30px;
  15. }
  16. .layui-table-view .layui-table th,
  17. .layui-table-view .layui-table td {
  18. text-align: center;
  19. border-color: #B6CADE;
  20. }
  21. .disablese{background:#c2c2c2 !important;}
  22. .upload-img .area i {
  23. font-size: 50px;
  24. color: #009688;
  25. }
  26. /*///*/
  27. .text-right {
  28. text-align: right;
  29. }
  30. .text-detail>span {
  31. font-size: 40px;
  32. }
  33. html {
  34. background: #fff;
  35. }
  36. #treestruc {
  37. height: 240px;
  38. overflow-y: auto;
  39. border: 1px solid #f7f7f7;
  40. }
  41. #thelink {
  42. word-break: break-all;
  43. padding: 10px;
  44. }
  45. .layui-tab-title .layui-this {
  46. background-color: #249EFB;
  47. color: #fff;
  48. }
  49. .layui-tab-title .layui-this:after {
  50. border-bottom: none;
  51. border: none;
  52. }
  53. .layui-tab-title li {
  54. background-color: #F2F2F2;
  55. margin: 0px 5px;
  56. }
  57. .layui-form-label {
  58. width: 105px;
  59. }
  60. .layui-input-block {
  61. margin-left: 135px;
  62. }
  63. .psbg{width: 100%;height: 100%;position: absolute;top: 0;left: 0;z-index: 999999999;display: none;}
  64. </style>
  65. <body>
  66. <div class="layui-fluid">
  67. <div class="psbg"></div>
  68. <div class="layui-tab" lay-filter="tabletab">
  69. <ul class="layui-tab-title">
  70. <li class="layui-this" lay-id="move" style="margin-left: 0px;">部门调整</li>
  71. <li lay-id="dimission">离职交接</li>
  72. </ul>
  73. <div class="layui-tab-content">
  74. <div class="layui-tab-item layui-show">
  75. <div class="layui-card">
  76. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  77. <div class="layui-form-item">
  78. <div class="layui-inline" style="width: 100%;">
  79. <p><label class="layui-form-label">当前部门</label><span id="struc_node"
  80. style="color:blue;float:right;">{:$currentEmpOrg['name']}</span></p>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="layui-card-body">
  85. <form class="layui-form" style="margin-top: 20px;" id="thedataform">
  86. <div class="layui-form-item">
  87. <label class="layui-form-label">选择部门</label>
  88. <div class="layui-input-block">
  89. <select name="orgid" id="org" lay-filter="org_select">
  90. <option value=""></option>
  91. {volist name="depart" id="vo"}
  92. <option value="{$vo.id}" class="l_{$vo.id}" data-id="{$vo['org_type']}" {eq name="$data.org_id" value="$vo.id" }selected{/eq}>{for start="0"
  93. end="$vo.level"}--{/for}{$vo.name}</option>
  94. {/volist}
  95. </select>
  96. </div>
  97. </div>
  98. <div class="layui-form-item">
  99. <label class="layui-form-label">是否管理层</label>
  100. <div class="layui-input-block">
  101. <input type="checkbox" name="is_manager" lay-skin="switch" {eq
  102. name="$data.is_manager" value="1"}checked{/eq} value="1" lay-text="ON|OFF">
  103. </div>
  104. </div>
  105. <div class="layui-form-item" id="choose_type">
  106. <label class="layui-form-label">客户交接</label>
  107. <div class="layui-input-block">
  108. <input type="radio" name="way" value="1" title="随员工迁移" checked lay-filter="way">
  109. <input type="radio" name="way" value="2" title="原部门交接" lay-filter="way">
  110. </div>
  111. </div>
  112. <div class="layui-form-item layui-hide" id="recipient_div">
  113. <label class="layui-form-label"><i style="color:red;">*</i>客户接收人</label>
  114. <div class="layui-input-block">
  115. <select name="recipient" lay-filter='recipient'>
  116. <option value="">请选择接收人</option>
  117. {volist name="employeelist" id="vo"}
  118. <option value="{$vo.id}">{$vo.name}</option>
  119. {/volist}
  120. </select>
  121. </div>
  122. </div>
  123. <div class="layui-form-item layui-hide" id="assign_div">
  124. <label class="layui-form-label"><i style="color:red;">*</i>指派客户接收人</label>
  125. <div class="layui-input-block">
  126. <select name="assign_emp" lay-filter='assign_emp'>
  127. <option value="">请选择接收人</option>
  128. {volist name="employeelist" id="vo"}
  129. <option value="{$vo.id}">{$vo.name}</option>
  130. {/volist}
  131. </select>
  132. </div>
  133. </div>
  134. <div class="layui-inline" style="width: 100%;padding: 20px 0;">
  135. <p><span style="float:right;">
  136. <button class="layui-btn layuiadmin-btn-style qianyibtn" lay-submit lay-filter="qianyi">转移部门</button>
  137. </span></p>
  138. </div>
  139. <input type="hidden" name="empid" value="{$employeeid}">
  140. </form>
  141. </div>
  142. </div>
  143. </div>
  144. <div class="layui-tab-item">
  145. <div class="layui-card">
  146. <div class="layui-card-body">
  147. <form class="layui-form" style="margin-top: 20px;" id="handlefireform">
  148. <div class="layui-form-item">
  149. <label class="layui-form-label">交接人:</label>
  150. <div class="layui-input-block">
  151. <span
  152. style="line-height: 20px;padding: 9px 7px !important;display: block;">{$data.name}({$currentEmpOrg['name']})</span>
  153. </div>
  154. </div>
  155. <div class="layui-form-item">
  156. <label class="layui-form-label">接收人:</label>
  157. <div class="layui-input-block">
  158. <div class="layui-inline">
  159. <select lay-filter="to-emp-org">
  160. {volist name="prevOrg" id="vo"}
  161. {if ($vo['id'] == $data['org_id'])}
  162. <option value="{$vo.id}" selected>{$vo.name}</option>
  163. {else/}
  164. <option value="{$vo.id}">{$vo.name}</option>
  165. {/if}
  166. {/volist}
  167. </select>
  168. </div>
  169. <div class="layui-inline">
  170. <select name="target_employee_id" id="target_employee">
  171. <option value="">请选择接收人</option>
  172. {volist name="employeelist" id="vo"}
  173. <option value="{$vo.id}">{$vo.name}</option>
  174. {/volist}
  175. </select>
  176. </div>
  177. <div class="layui-inline">
  178. <div class="layui-form-mid layui-word-aux">同部门及上级部门交接</div>
  179. </div>
  180. </div>
  181. </div>
  182. <input type="hidden" name="empid" value="{$employeeid}">
  183. <div class="layui-inline" style="width: 100%;padding: 20px 0;">
  184. <p><span style="float:right;">
  185. <button class="layui-btn layuiadmin-btn-style" lay-submit data-type="generate"
  186. lay-filter="quithandling">确定离职交接</button>
  187. </span></p>
  188. </div>
  189. </form>
  190. </div>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <div id="loadings" hidden><span style="color:black;margin: 43%;">交接中...</span></div>
  196. </div>
  197. </body>
  198. {/block} {block name="js"}
  199. <script>
  200. layui.config({
  201. base: '__LAYUI__/' //静态资源所在路径
  202. ,
  203. urlbase: '/sys'
  204. }).extend({
  205. index: 'lib/index' //主入口模块
  206. }).use(['index', 'table', 'element', 'tree', 'layer', 'form'], function () {
  207. var $ = layui.$,
  208. loading,
  209. layer = layui.layer,
  210. form = layui.form,
  211. tree = layui.tree;
  212. form.render('select');
  213. form.on('submit(qianyi)', function (data) {
  214. let field = data.field;
  215. if (field.orgid == '') {
  216. layer.msg('还未选择部门,请选择!', { anim: 6, time: 2000 });
  217. return false;
  218. }
  219. if(field.way == 1){
  220. fromSubmits(field);
  221. return false;
  222. }
  223. //查询是否存在重复数据
  224. $.ajax({
  225. url: '{:url("employee/apiChangeDepartment")}?repeat=1',
  226. type: 'post',
  227. data: field,
  228. success: function (resp) {
  229. if (resp.code == 0) {
  230. //存在重复客户
  231. if (resp.data.repeat_count>0) {
  232. var str = '该员工名下客户“'+resp.data.repeat+'”为重复客户,是否继续交接不重复客户('+resp.data.no_repeat+'个)?';
  233. layer.confirm(str, { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (indexx) {
  234. layer.close(indexx);
  235. fromSubmits(field);
  236. });
  237. }else{
  238. //没有重复客户
  239. fromSubmits(field);
  240. }
  241. } else {
  242. layer.msg(resp.msg, { anim: 6, time: 2000 });
  243. }
  244. }
  245. });
  246. return false;
  247. });
  248. function fromSubmits(field){
  249. let index = parent.layer.getFrameIndex(window.name);
  250. let layuiload = layer.load(1);
  251. $('.psbg').show();
  252. $.ajax({
  253. url: '{:url("employee/apiChangeDepartment")}',
  254. type: 'post',
  255. data: field,
  256. success: function (resp) {
  257. var res = resp;
  258. if (res.code == 0) {
  259. layer.close(layuiload);
  260. layer.msg(res.msg, { anim: 0, time: 2000 }, function () {
  261. parent.location.reload();
  262. parent.layer.close(index); //再执行关闭
  263. });
  264. } else {
  265. layer.msg(res.msg, { anim: 6, time: 2000 });
  266. }
  267. }
  268. });
  269. return false;
  270. }
  271. function in_array(search, array) {
  272. for (var i in array) {
  273. if (array[i] == search) {
  274. return true;
  275. }
  276. }
  277. return false;
  278. }
  279. ///////////////
  280. form.on('submit(quithandling)', function (data) {
  281. //查询是否存在重复数据
  282. $.ajax({
  283. url: '{:url("employee/apiQuitHandling")}?repeat=1',
  284. type: 'post',
  285. data: data.field,
  286. success: function (resp) {
  287. //存在重复客户
  288. if (resp.data.repeat_count>0) {
  289. var str = '该员工名下客户“'+resp.data.repeat+'”为重复客户,是否继续交接不重复客户('+resp.data.no_repeat+'个)?';
  290. layer.confirm(str, { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (indexx) {
  291. layer.close(indexx);
  292. fromSubmit(data.field);
  293. });
  294. }else{
  295. //没有重复客户
  296. fromSubmit(data.field);
  297. }
  298. }
  299. });
  300. return false;
  301. });
  302. function fromSubmit(field){
  303. let index = parent.layer.getFrameIndex(window.name);
  304. loading = layer.load(2, {
  305. area: ['50px', '40px'],
  306. shade: [0.3, '#999'] //0.1透明度的白色背景
  307. });
  308. $('#loadings').show();
  309. $.ajax({
  310. url: '{:url("employee/apiQuitHandling")}',
  311. type: 'post',
  312. data: field,
  313. success: function (resp) {
  314. var res = resp;
  315. if (res.code == 0) {
  316. layer.msg(res.msg, { anim: 0 }, function () {
  317. parent.layui.table.reload('LAY-employee-list'); //重载表格
  318. parent.layer.close(index); //再执行关闭
  319. });
  320. } else {
  321. layer.msg(res.msg, { anim: 6, time: 2000 });
  322. }
  323. layer.close(loading);
  324. $('#loadings').hide();
  325. },
  326. error: function (res) {
  327. $('#loadings').hide();
  328. layer.close(loading);
  329. }
  330. });
  331. return false;
  332. }
  333. form.on('select(to-emp-org)', function (data) {
  334. $.post("{:url('employee/orgEmployee')}", { id: data.value }, function (res) {
  335. if (res.code != 0) layer.msg(res.msg, { anim: 6 });
  336. var html = '<option value="">请选择接收人</option>';
  337. res.data.forEach(function (item) {
  338. if (item.id == Number('{$data.id}')) return;
  339. html += '<option value="' + item.id + '">' + item.name + '</option>'
  340. });
  341. $('#target_employee').html(html);
  342. form.render('select');
  343. })
  344. });
  345. form.on('radio(way)', function (data) {
  346. if (data.value == 2) {
  347. $('#recipient_div').removeClass('layui-hide');
  348. $('#assign_div').removeClass('layui-hide');
  349. } else {
  350. $('#recipient_div').addClass('layui-hide');
  351. $('#assign_div').addClass('layui-hide');
  352. }
  353. });
  354. var isrecipient = '';
  355. var isassign_emp = '';
  356. form.on('select(recipient)', function (data) {
  357. isrecipient = data.value;
  358. if(isrecipient !== '' && isassign_emp !== ''){
  359. $('.qianyibtn').attr('disabled',false);
  360. $('.qianyibtn').removeClass('disablese');
  361. }else{
  362. $('.qianyibtn').attr('disabled',true);
  363. $('.qianyibtn').addClass('disablese');
  364. }
  365. form.render();
  366. })
  367. form.on('select(assign_emp)', function (data) {
  368. isassign_emp = data.value;
  369. if(isrecipient !== '' && isassign_emp !== ''){
  370. $('.qianyibtn').attr('disabled',false);
  371. $('.qianyibtn').removeClass('disablese');
  372. }else{
  373. $('.qianyibtn').attr('disabled',true);
  374. $('.qianyibtn').addClass('disablese');
  375. }
  376. form.render();
  377. })
  378. form.on('select(org_select)', function (data) {
  379. var old_org_type = "{$currentEmpOrg['org_type']}";
  380. var org_type = $(`.l_${data.value}`).prop('dataset').id;
  381. var selectVal = form.val('recipient').select;
  382. var assign_emp = form.val('assign_emp').select;
  383. if (old_org_type != org_type && (org_type == 2 || old_org_type == 2)) {
  384. $('#choose_type').addClass('layui-hide');
  385. $('input[name=way]').eq(1).prop('checked', true);
  386. $('#recipient_div').removeClass('layui-hide');
  387. $('#assign_div').removeClass('layui-hide');
  388. if(selectVal == undefined&&assign_emp==undefined){
  389. $('.qianyibtn').attr('disabled',true);
  390. $('.qianyibtn').addClass('disablese');
  391. }
  392. form.render()
  393. } else {
  394. $('#choose_type').removeClass('layui-hide');
  395. $('input[name=way]').eq(0).prop('checked', true);
  396. $('#recipient_div').addClass('layui-hide');
  397. $('#assign_div').addClass('layui-hide');
  398. $('.qianyibtn').attr('disabled',false);
  399. $('.qianyibtn').removeClass('disablese');
  400. form.render()
  401. }
  402. });
  403. });
  404. </script>
  405. {/block}