3b0a8d648da1bd26d0b70f9b4d988da44ebc846c.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. shr.defineClass("shr.affair.hrman.EmpEnrollBizBillHrManEditExt", shr.affair.hrman.EmpEnrollBizBillHrManEdit, {
  2. initalizeDOM : function () {
  3. var _self = this;
  4. shr.affair.hrman.EmpEnrollBizBillHrManEditExt.superClass.initalizeDOM.call(this);
  5. if(this.operateState.toUpperCase() != 'VIEW'){
  6. _self.nameChange();
  7. }
  8. if(this.operateState.toUpperCase() == 'ADDNEW'){
  9. var selectId = shr.getUrlRequestParam("selectId");
  10. if( !selectId){
  11. shr.remoteCall({
  12. method : 'getEmpNumber',
  13. async : false,
  14. success : function(res){
  15. //人员类型
  16. _self.getField("entrys_empNumber").shrTextField('setValue',res.empNumber);
  17. }
  18. });
  19. }
  20. }
  21. },
  22. nameChange:function(){
  23. var that = this;
  24. //监听文本域,数值控件的值变化
  25. that.getField("entrys_surname").on("change", function(){
  26. var surname = $("#entrys_surname").val();
  27. surname = surname.toUpperCase();
  28. that.getField("entrys_surname").shrTextField('setValue',surname);
  29. //用户名赋值
  30. that.updateUserName();
  31. //姓名赋值
  32. that.updateName();
  33. });
  34. that.getField("entrys_givenName").on("change", function(){
  35. //用户名赋值
  36. that.updateUserName();
  37. //姓名赋值
  38. that.updateName();
  39. });
  40. //中间名
  41. that.getField("entrys_middleNames").on("change", function(){
  42. //姓名赋值
  43. that.updateName();
  44. });
  45. //本地名称
  46. that.getField("entrys_localname").on("change", function(){
  47. //姓名赋值
  48. that.updateName();
  49. });
  50. //试用期开始时间
  51. that.getField("entrys_bizDate").on("change", function(){
  52. //预入职日期
  53. var preEnterDate = $("#entrys_bizDate").val();
  54. that.getField("entrys_trialStartDate").shrDateTimePicker('setValue',preEnterDate);
  55. that.updateTransferDate();
  56. });
  57. //预计转正日期
  58. that.getField("entrys_probation").on("change", function(){
  59. that.updateTransferDate();
  60. });
  61. },
  62. //用户名赋值
  63. updateUserName:function(){
  64. var that = this;
  65. //用户名赋值
  66. var surname = $("#entrys_surname").val();
  67. var givenName = $("#entrys_givenName").val();
  68. var userName = givenName + "." + surname;
  69. if(userName.length > 20){
  70. if(surname != '' ){
  71. userName = givenName + "." + surname.slice(0,1).toUpperCase() ;
  72. if(userName.length > 20){
  73. var startLength = userName.length - 20;
  74. userName = userName.substring(startLength,userName.length);
  75. }
  76. }
  77. }
  78. userName = userName.toLowerCase();
  79. that.getField("entrys_userName").shrTextField('setValue',userName);
  80. that.getField("entrys_email").shrTextField('setValue',userName+"@gtiit.edu.cn");
  81. },
  82. updateName: function(){
  83. var that = this;
  84. //姓
  85. var surname = $("#entrys_surname").val();
  86. //名
  87. var givenName = $("#entrys_givenName").val();
  88. //本地名称
  89. var localName = $("#entrys_localname").val();
  90. var name = "";
  91. if(givenName != ''){
  92. name = givenName + " ";
  93. }
  94. if(surname != ''){
  95. name = name + surname + " ";
  96. }
  97. if(localName != ''){
  98. name = name + localName + " ";
  99. }
  100. //姓名
  101. that.getField("entrys_empName").shrTextField('setValue',name);
  102. },
  103. //预计转正日期
  104. updateTransferDate:function(){
  105. var that = this;
  106. //预入职日期
  107. var preEnterDate = $("#entrys_bizDate").val();
  108. //试用期(月)
  109. var tryMonth = $("#entrys_probation").val();
  110. let date = new Date(preEnterDate); // 创建一个 Date 对象
  111. if(tryMonth != '' && tryMonth > 0 && preEnterDate != null ){
  112. tryMonth = parseInt(tryMonth);
  113. date.setMonth(date.getMonth() + tryMonth);
  114. employeeType = {id:"00000000-0000-0000-0000-000000000002A29E85B3", name_l1:"On Probation",name:"试用员工",name_l2:"试用员工"};
  115. }else{
  116. date = null;
  117. employeeType = {id:"00000000-0000-0000-0000-000000000001A29E85B3", name_l1:"Permanent Employee",name:"正式员工",name_l2:"正式员工"};
  118. }
  119. that.getField("entrys_planFormalDate").shrDateTimePicker('setValue',date);
  120. $("#entrys_empType").shrPromptBox("setValue", employeeType);
  121. },
  122. /**
  123. * 预入职下推初始化数据
  124. */
  125. preEntryInit:function(){
  126. var _self = this;
  127. var selectId = shr.getUrlRequestParam("selectId");
  128. shr.remoteCall({
  129. url : shr.getContextPath() + "/dynamic.do?method=getPreEntryInitData&uipk="+jsBinder.uipk,
  130. type : "POST",
  131. param:{
  132. "billId" : selectId,
  133. "tempId" : _self.getTemporaryPersonId()//传入tempId以复制一个预入职头像都入职单
  134. },
  135. success : function(res){
  136. if(res.preEntryInfo != undefined){
  137. var preEntryId = res.preEntryInfo.id;
  138. var talentId = res.preEntryInfo.talent.id;
  139. if(res.preEntryInfo.sourceBillType.value == 2){//offer来的预入职单
  140. shr.callService( {
  141. serviceName : 'getPreEntryInfoOSF',
  142. param : {preEntryId : preEntryId},
  143. async : false,
  144. success : function(data) {
  145. _self.initParameterByRecurit("entrys_probation",data.probationPeriod == undefined ? null : data.probationPeriod,false,'numberField');//试用期
  146. _self.initParameterByRecurit("entrys_empType",data.employeeType == undefined ? null : data.employeeType,true);//用工关系状态
  147. _self.initParameterByRecurit("entrys_jobStartDate",data.jobStartDate == undefined ? null : data.jobStartDate.substring(0,10),false);//参加工作日期
  148. }
  149. });
  150. }
  151. if(res.preEntryInfo.hrOrgUnit != undefined){
  152. //基础资料在HR组织设置前先设置,可以接受HR组织可使用权限校验
  153. _self.initParameterByRecurit("entrys_variationReason",res.preEntryInfo.enrollSource,true);//招聘来源反写变动原因,,handler中用招聘来源按编码匹配查出变动原因放到enrollSource中
  154. var hrOrgUnitObj = {id:res.preEntryInfo.hrOrgUnit.id,name:res.preEntryInfo.hrOrgUnit.name}
  155. _self.initParameterByRecurit("hrOrgUnit",hrOrgUnitObj,true);//人事业务组织
  156. }
  157. if(res.preEntryInfo.talent != undefined){
  158. _self.initParameterByRecurit('entrys_IDCardNo',res.preEntryInfo.talent.idCardNO,false);//身份证号码
  159. _self.initParameterByRecurit("entrys_passportNo",res.preEntryInfo.talent.passportNO,false);//护照号码
  160. }
  161. _self.getField("entrys.preEntryID").val(selectId);//隐藏预入职ID字段发送至后端
  162. if (res.errorMsg){
  163. shr.showError({
  164. message: data.errorMsg,
  165. hideAfter: null
  166. });
  167. }else if (res.personExist && res.personExist=="true") {
  168. $("#entrys_enrollAgain").val(1);
  169. if(res.personOldInfo){
  170. //编码,如果使用原编码,才设置原编码
  171. //osf取回来的 data.personOldInfo.useOldNumber 值为枚举值{0:使用原编码, 1:使用新编码}
  172. if(!res.personOldInfo.useOldNumber && res.personOldInfo.empNumber){
  173. $("#entrys_empNumber").val(res.personOldInfo.empNumber);
  174. $("#entrys_useOldNumber").val(1);
  175. _self.getField('entrys_empNumber').shrTextField('disable');
  176. }
  177. else if(res.personOldInfo.useOldNumber){
  178. $("#entrys_useOldNumber").val(0);
  179. }
  180. //参加工作日期
  181. if (res.personOldInfo.jobStartDate) {
  182. $("#entrys_jobStartDate").shrDateTimePicker('setValue', res.personOldInfo.jobStartDate);
  183. }
  184. }
  185. _self.swapHrbizDefineInfo(_self._hrBizdefine_enrollAgain);
  186. _self.getField("entrys.hrBizDefine").shrPromptBox("setFilter", _self._default_hrBizDefine_filter+" and bizDefineType = 16");//只能选择再入职变动操作
  187. _self.showEnrollAgainMsg(res);
  188. }
  189. //职位放在加载再入职信息之后,避免再入职使用原编码时又按职位刷编码
  190. _self.initParameterByRecurit("entrys_position",res.preEntryInfo.position,true);//入职职位
  191. //根据入职日期填写入职时间
  192. var effdt=_self.getField('entrys.bizDate').shrDateTimePicker("getValue");
  193. _self.getField('entrys.bizTime').shrDateTimePicker('setValue', effdt);
  194. //本地名称
  195. _self.getField("entrys_localname").shrTextField('setValue',res.preEntryInfo.localname_l2);
  196. //姓
  197. _self.getField("entrys_surname").shrTextField('setValue',res.preEntryInfo.surname_l2);
  198. //中间名
  199. _self.getField("entrys_middleNames").shrTextField('setValue',res.preEntryInfo.middlenames_l2);
  200. //名
  201. _self.getField("entrys_givenName").shrTextField('setValue',res.preEntryInfo.givenname_l2);
  202. //员工编码
  203. _self.getField("entrys_empNumber").shrTextField('setValue',res.preEntryInfo.empNumber);
  204. //用户名
  205. _self.getField("entrys_userName").shrTextField('setValue',res.preEntryInfo.username_l2);
  206. //工作邮箱
  207. _self.getField("entrys_email").shrTextField('setValue',res.preEntryInfo.workemail);
  208. //私人邮箱
  209. _self.getField("entrys_pemail").shrTextField('setValue',res.preEntryInfo.email);
  210. //试用期
  211. _self.getField("entrys_probation").shrTextField('setValue',res.preEntryInfo.tryMonth);
  212. //教师年假额度
  213. _self.getField("entrys_faentitlement").shrTextField('setValue',res.preEntryInfo.faentitlement);
  214. //教师病假额度
  215. _self.getField("entrys_fsentitlement").shrTextField('setValue',res.preEntryInfo.fsentitlement);
  216. //教师病假最高额度
  217. _self.getField("entrys_fsmentitlement").shrTextField('setValue',res.preEntryInfo.fsmentitlement);
  218. //Admin Title
  219. _self.getField("entrys_admintitle").shrTextField('setValue',res.preEntryInfo.admintitle);
  220. //时薪
  221. _self.getField("entrys_hwage").shrTextField('setValue',res.preEntryInfo.hwage);
  222. //试用期开始日期
  223. _self.getField("entrys_trialStartDate").shrDateTimePicker('setValue',res.preEntryInfo.trialStartDate);
  224. //居民
  225. $('#entrys_resident').shrSelect('setValue',res.preEntryInfo.resident);
  226. //支付币种
  227. $('#entrys_paycurrency').shrSelect('setValue',res.preEntryInfo.paycurrency);
  228. shr.remoteCall({
  229. method : 'getEmpPreEntryData',
  230. async : false,
  231. param:{
  232. "billId" : selectId
  233. },
  234. success : function(response){
  235. //人员类型
  236. $("#entrys_persontype").shrPromptBox("setValue", {id:response.personTypeId , name : response.personTypeName });
  237. //员工类别
  238. $("#entrys_wcategory").shrPromptBox("setValue", {id:response.wcategoryId , name : response.wcategoryName });
  239. //全职或兼职
  240. $("#entrys_ftorpt").shrPromptBox("setValue", {id:response.ftorptId , name : response.ftorptName });
  241. //直接上级
  242. $("#entrys_lmanager").shrPromptBox("setValue", {id:response.lmanagerId , name : response.lmanagerName });
  243. //Academic Title
  244. $("#entrys_academictitle").shrPromptBox("setValue", {id:response.academictitleId , name : response.academictitleName });
  245. //job2
  246. $("#entrys_jobs").shrPromptBox("setValue", {id:response.jobsId , name : response.jobsName });
  247. //纳税方式
  248. $("#entrys_rmethod").shrPromptBox("setValue", {id:response.rmethodId , name : response.rmethodName });
  249. //职等
  250. $("#entrys_jobGrade").shrPromptBox("setValue", {id:response.jobId , name : response.jobName });
  251. //签发国家
  252. $("#entrys_countryRegion").shrPromptBox("setValue", {id:response.countryId , name : response.countryName });
  253. //签证类型
  254. $("#entrys_credentialsType").shrPromptBox("setValue", {id:response.credentTypeId , name : response.credentTypeName });
  255. }
  256. });
  257. }
  258. }
  259. });
  260. // 预入职转入职后端赋值,需要在前端主动触发一些change事件
  261. _self.autoChange();
  262. },
  263. setEnrollAgainInfo: function(data) {
  264. var that = this;
  265. //根据身份证号和护照号将查出来的再入职人员信息填充到页面
  266. if (data && data.errorMsg){
  267. shr.showError({
  268. message: data.errorMsg,
  269. hideAfter: null
  270. });
  271. }else if ( data && data.personExist == "true") {
  272. that.fillEnrollPersonDataByNo(data);
  273. that.swapHrbizDefineInfo(that._hrBizdefine_enrollAgain);
  274. that.getField("entrys.hrBizDefine").shrPromptBox("setFilter", that._default_hrBizDefine_filter+" and bizDefineType = 16");//只能选择再入职变动操作
  275. that.showEnrollAgainMsg(data);
  276. var idEntity = "";
  277. if(data.personOldInfo.idCardNo){
  278. idEntity = data.personOldInfo.idCardNo;
  279. }else{
  280. idEntity = data.personOldInfo.passportNo;
  281. }
  282. shr.remoteCall({
  283. method : 'getPersonName',
  284. async : false,
  285. param:{
  286. "idEntity" : idEntity
  287. },
  288. success : function(response){
  289. if(response.userName){
  290. //姓
  291. $("#entrys_surname").shrTextField("setValue", response.surName);
  292. //本地名称
  293. $("#entrys_localname").shrTextField("setValue", response.localName);
  294. //中间名
  295. $("#entrys_middleNames").shrTextField("setValue", response.middleName);
  296. //名
  297. $("#entrys_givenName").shrTextField("setValue", response.givenName);
  298. //用户名
  299. $("#entrys_userName").shrTextField("setValue", response.userName);
  300. }
  301. }
  302. });
  303. }else{
  304. // 如果之前输入身份证带出过再入职人员才处理,避免正常情况下多次修改身份证也处理了以下逻辑
  305. if($("#entrys_enrollAgain").val()=="1" || $("#entrys_enrollAgain").val()=="true"){
  306. $("#entrys_enrollAgain").val(0);
  307. // 父类中存储了第一次加载的变动操作,将变动操作还原
  308. that.swapHrbizDefineInfo(that._currentHRBizdefine.id);
  309. that.getField("entrys.hrBizDefine").shrPromptBox("setFilter", that._default_hrBizDefine_filter);//还原默认变动操作可选范围
  310. }
  311. // 如果之前输入身份证带出过再入职人员并且是原编码,才处理,避免正常情况下多次修改身份证也处理了以下逻辑
  312. if($("#entrys_useOldNumber").val()=="1" || $("#entrys_useOldNumber").val()=="true"){
  313. $("#entrys_useOldNumber").val(0);
  314. // 没有编码规则,清空编码
  315. if(that._isAutoNumber == false){
  316. that.getField('entrys_empNumber').shrTextField('enable');
  317. that.getField('entrys_empNumber').val('');
  318. }
  319. // 有编码规则,需要看职位有没有选择
  320. if(that._isAutoNumber == true){
  321. // 如果职位没有选择,则清空编码
  322. if($.isEmptyObject($("#entrys_position_el").val())){
  323. that.getField('entrys_empNumber').val('');
  324. }
  325. // 如果职位不为空,重新按照编码规则刷新编码
  326. if(!$.isEmptyObject($("#entrys_position_el").val())){
  327. that.refreshNumber($("#entrys_position_el").val());
  328. }
  329. }
  330. }
  331. // //姓
  332. // $("#entrys_surname").shrTextField("setValue", "");
  333. // //本地名称
  334. // $("#entrys_localname").shrTextField("setValue", "");
  335. // //中间名
  336. // $("#entrys_middleNames").shrTextField("setValue", "");
  337. // //名
  338. // $("#entrys_givenName").shrTextField("setValue", "");
  339. }
  340. }
  341. });