PSRegisterBaseVC.m 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  1. //
  2. // PSRegisterBaseVC.m
  3. // shiku_im
  4. //
  5. // Created by flyeagleTang on 14-6-10.
  6. // Copyright (c) 2014年 Reese. All rights reserved.
  7. //
  8. #import "PSRegisterBaseVC.h"
  9. //#import "selectTreeVC.h"
  10. #import "selectValueVC.h"
  11. #import "selectProvinceVC.h"
  12. #import "ImageResize.h"
  13. #import "resumeData.h"
  14. #import "JXActionSheetVC.h"
  15. #import "JXCameraVC.h"
  16. #import "STAlertView.h"
  17. #define HEIGHT 56
  18. #define IMGSIZE 100
  19. @interface PSRegisterBaseVC ()<UITextFieldDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate,JXActionSheetVCDelegate,JXCameraVCDelegate>
  20. @property (nonatomic, strong) STAlertView *alert;
  21. @property (nonatomic,weak) UIButton *selectBtn;
  22. @property (nonatomic,weak) UIButton *selectBtn2;
  23. @end
  24. @implementation PSRegisterBaseVC
  25. @synthesize resumeId;
  26. @synthesize resume;
  27. @synthesize user;
  28. - (id)init
  29. {
  30. self = [super init];
  31. if (self) {
  32. // self.isGotoBack = !self.isRegister;
  33. self.isGotoBack = YES;
  34. if(self.isRegister){
  35. resume.telephone = user.telephone;
  36. // self.title = [NSString stringWithFormat:@"%@",Localized(@"JX_BaseInfo")];
  37. }
  38. else
  39. // self.title = Localized(@"JX_BaseInfo");
  40. self.heightFooter = 0;
  41. self.heightHeader = JX_SCREEN_TOP;
  42. //self.view.frame = CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT);
  43. [self createHeadAndFoot];
  44. self.tableBody.backgroundColor = [UIColor whiteColor];
  45. self.tableBody.scrollEnabled = YES;
  46. int h = 0;
  47. NSString* s;
  48. UILabel *titleLable = [[UILabel alloc] init];
  49. titleLable.text = @"欢迎来到即信";
  50. titleLable.textColor = [UIColor blackColor];
  51. titleLable.font = [UIFont systemFontOfSize:30 weight:(UIFontWeightRegular)];
  52. [titleLable sizeToFit];
  53. titleLable.frame = CGRectMake(JX_SCREEN_WIDTH/2- titleLable.frame.size.width/2, 0, titleLable.frame.size.width, titleLable.frame.size.height);
  54. [titleLable sizeToFit];
  55. [self.tableBody addSubview:titleLable];
  56. h = h + titleLable.frame.size.height+INSETS;
  57. UILabel *titleLable1 = [[UILabel alloc] init];
  58. titleLable1.text = @"完善信息, 个性化你的内容";
  59. titleLable1.textColor = [UIColor lightGrayColor];
  60. titleLable1.font = [UIFont systemFontOfSize:13 weight:(UIFontWeightThin)];
  61. [titleLable1 sizeToFit];
  62. titleLable1.frame = CGRectMake(JX_SCREEN_WIDTH/2- titleLable1.frame.size.width/2, h, titleLable1.frame.size.width, titleLable.frame.size.height);
  63. [titleLable1 sizeToFit];
  64. [self.tableBody addSubview:titleLable1];
  65. h = h + titleLable1.frame.size.height+INSETS;
  66. JXImageView* iv;
  67. iv = [[JXImageView alloc]init];
  68. iv.frame = self.tableBody.bounds;
  69. iv.delegate = self;
  70. iv.didTouch = @selector(hideKeyboard);
  71. [self.tableBody addSubview:iv];
  72. // [iv release];
  73. _head = [[JXImageView alloc]initWithFrame:CGRectMake((JX_SCREEN_WIDTH-IMGSIZE)/2, h, IMGSIZE, IMGSIZE)];
  74. _head.layer.cornerRadius = IMGSIZE/2;
  75. _head.layer.masksToBounds = YES;
  76. _head.didTouch = @selector(pickImage);
  77. _head.delegate = self;
  78. // _head.image = [[UIImage imageNamed:@"registered_default"] imageWithTintColor:THEMECOLOR];
  79. _head.image = [UIImage imageNamed:@"new_login_avatar"];
  80. if(self.isRegister)
  81. s = user.userId;
  82. else
  83. s = g_myself.userId;
  84. [g_server getHeadImageSmall:s userName:resume.name imageView:_head];
  85. [self.tableBody addSubview:_head];
  86. // [_head release];
  87. // h = INSETS*2+IMGSIZE;
  88. h = h + IMGSIZE;
  89. _headCheck = [[JXImageView alloc]initWithFrame:CGRectMake((JX_SCREEN_WIDTH-IMGSIZE/4)/2, h-IMGSIZE/8, IMGSIZE/4, IMGSIZE/4)];
  90. _headCheck.layer.cornerRadius = IMGSIZE/8;
  91. _headCheck.layer.masksToBounds = YES;
  92. _headCheck.didTouch = @selector(pickImage);
  93. _headCheck.delegate = self;
  94. // _head.image = [[UIImage imageNamed:@"registered_default"] imageWithTintColor:THEMECOLOR];
  95. _headCheck.image = [UIImage imageNamed:@"new_register_check"];
  96. _headCheck.hidden = YES;
  97. [self.tableBody addSubview:_headCheck];
  98. // [_head release];
  99. // h = INSETS*2+IMGSIZE;
  100. h = h +INSETS*2;
  101. NSString* workExp = [g_constant.workexp objectForKey:[NSNumber numberWithInt:resume.workexpId]];
  102. NSString* diploma = [g_constant.diploma objectForKey:[NSNumber numberWithInt:resume.diplomaId]];
  103. NSString* city = [g_constant getAddressForInt:resume.provinceId cityId:resume.cityId areaId:resume.areaId];
  104. iv = [self createButton:@"即信号" drawTop:NO drawBottom:YES must:YES click:nil];
  105. iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  106. _memberAccount = [self createTextField:iv default:@"" hint:@"您的吉利彩票会员账号"];
  107. [_memberAccount addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
  108. h+=iv.frame.size.height;
  109. iv = [self createButton:@"昵称" drawTop:NO drawBottom:YES must:YES click:nil];
  110. iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  111. _name = [self createTextField:iv default:@"" hint:@"请使用中文昵称"];
  112. h+=iv.frame.size.height;
  113. _name.delegate=self;
  114. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)name:UITextFieldTextDidChangeNotification object:_name];
  115. // iv = [self createButton:Localized(@"JX_Sex") drawTop:NO drawBottom:YES must:YES click:nil];
  116. // iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  117. // _sex = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:Localized(@"JX_Wuman"),Localized(@"JX_Man"),nil]];
  118. // _sex.frame = CGRectMake(JX_SCREEN_WIDTH -87 - 15,(HEIGHT-25)/2,87,25);
  119. // _sex.selectedSegmentIndex = resume.sex;
  120. // //样式
  121. //// _sex.segmentedControlStyle= UISegmentedControlStyleBar;
  122. // _sex.tintColor = THEMECOLOR;
  123. // _sex.layer.cornerRadius = 5;
  124. // _sex.layer.borderWidth = 1.5;
  125. // _sex.layer.borderColor = [THEMECOLOR CGColor];
  126. // _sex.clipsToBounds = YES;
  127. // //设置文字属性
  128. // _sex.selectedSegmentIndex = [user.sex boolValue];
  129. // _sex.apportionsSegmentWidthsByContent = NO;
  130. // [iv addSubview:_sex];
  131. //// [_sex release];
  132. // h+=iv.frame.size.height;
  133. // if (!resume.birthday) {
  134. // resume.birthday = [[NSDate date] timeIntervalSince1970];
  135. // }
  136. // iv = [self createButton:Localized(@"JX_BirthDay") drawTop:NO drawBottom:NO must:YES click:nil];
  137. // iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  138. // _birthday = [self createTextField:iv default:[TimeUtil getDateStr:resume.birthday] hint:Localized(@"JX_BirthDay")];
  139. // h+=iv.frame.size.height;
  140. iv = [self createButton:Localized(@"JX_Address") drawTop:NO drawBottom:NO must:YES click:@selector(onCity)];
  141. iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  142. _city = [self createLabel:iv default:city];
  143. h+=iv.frame.size.height;
  144. UIView *btn_linview=[[UIView alloc]init];
  145. btn_linview.backgroundColor=kRGBColor(246, 246, 246);
  146. [self.tableBody addSubview:btn_linview];
  147. [btn_linview mas_makeConstraints:^(MASConstraintMaker *make) {
  148. make.top.mas_equalTo(h+2);
  149. make.left.mas_equalTo(40);
  150. make.right.mas_equalTo(-40);
  151. make.height.mas_equalTo(1);
  152. }];
  153. if(!self.isRegister){
  154. iv = [self createButton:Localized(@"JX_WorkingYear") drawTop:YES drawBottom:YES must:YES click:@selector(onWorkexp)];
  155. iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  156. _workexp = [self createLabel:iv default:workExp];
  157. h+=iv.frame.size.height;
  158. iv = [self createButton:Localized(@"JX_HighSchool") drawTop:NO drawBottom:YES must:YES click:@selector(onDiploma)];
  159. iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  160. _dip = [self createLabel:iv default:diploma];
  161. h+=iv.frame.size.height;
  162. iv = [self createButton:Localized(@"JX_Address") drawTop:NO drawBottom:NO must:YES click:@selector(onCity)];
  163. iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  164. _city = [self createLabel:iv default:city];
  165. h+=iv.frame.size.height;
  166. }
  167. // else {
  168. // if ([g_config.registerInviteCode intValue] != 0) {
  169. // iv = [self createButton:Localized(@"JX_InvitationCode") drawTop:YES drawBottom:NO must:YES click:nil];
  170. // iv.frame = CGRectMake(0, h, JX_SCREEN_WIDTH, HEIGHT);
  171. // _inviteCode = [self createTextField:iv default:nil hint:Localized(@"JX_EnterInvitationCode")];
  172. // h+=iv.frame.size.height;
  173. // }
  174. // }
  175. UIView *center_linview=[[UIView alloc]init];
  176. center_linview.backgroundColor=kRGBColor(246, 246, 246);
  177. [self.tableBody addSubview:center_linview];
  178. [center_linview mas_makeConstraints:^(MASConstraintMaker *make) {
  179. make.centerX.mas_equalTo(self.tableBody.mas_centerX);
  180. make.top.mas_equalTo(h+30);
  181. make.width.mas_equalTo(1);
  182. make.height.mas_equalTo(44);
  183. }];
  184. UIButton *button1=[[UIButton alloc]init];
  185. button1.tag=0;
  186. [button1 setBackgroundImage:[UIImage imageNamed:@"xianshengsel"] forState:UIControlStateNormal];
  187. [button1 setBackgroundImage:[UIImage imageNamed:@"xianshengnor"] forState:UIControlStateSelected];
  188. [self.tableBody addSubview:button1];
  189. [button1 addTarget:self action:@selector(btnCLick1:) forControlEvents:UIControlEventTouchUpInside];
  190. button1.selected=YES;
  191. self.selectBtn=button1;
  192. [button1 mas_makeConstraints:^(MASConstraintMaker *make) {
  193. make.centerY.mas_equalTo(center_linview.mas_centerY);
  194. make.right.mas_equalTo(center_linview.mas_left).mas_equalTo(-30);
  195. make.width.mas_equalTo(80);
  196. make.height.mas_equalTo(24);
  197. }];
  198. UIButton *btnNv=[[UIButton alloc]init];
  199. btnNv.tag=1;
  200. [btnNv setBackgroundImage:[UIImage imageNamed:@"nvshinor"] forState:UIControlStateNormal];
  201. [btnNv setBackgroundImage:[UIImage imageNamed:@"nvshisel"] forState:UIControlStateSelected];
  202. [btnNv addTarget:self action:@selector(btnCLick:) forControlEvents:UIControlEventTouchUpInside];
  203. [self.tableBody addSubview:btnNv];
  204. // self.selectBtn=btnNv;
  205. [btnNv mas_makeConstraints:^(MASConstraintMaker *make) {
  206. make.centerY.mas_equalTo(center_linview.mas_centerY);
  207. make.left.mas_equalTo(center_linview.mas_right).mas_equalTo(30);
  208. make.width.mas_equalTo(80);
  209. make.height.mas_equalTo(24);
  210. }];
  211. h+=INSETS;
  212. UIButton* _btn;
  213. if(self.isRegister)
  214. _btn = [UIFactory createCommonButton:@"请填写完上方信息" target:self action:@selector(onInsert)];
  215. else
  216. _btn = [UIFactory createCommonButton:Localized(@"JX_Update") target:self action:@selector(onUpdate)];
  217. _btn.layer.cornerRadius = 20;
  218. _btn.clipsToBounds = YES;
  219. _btn.custom_acceptEventInterval = .25f;
  220. _btn.frame = CGRectMake(15, h+90, JX_SCREEN_WIDTH-15*2, 40);
  221. [self.tableBody addSubview:_btn];
  222. _date = [[JXDatePicker alloc] initWithFrame:CGRectMake(0, JX_SCREEN_HEIGHT-200, JX_SCREEN_WIDTH, 200)];
  223. _date.date = [NSDate dateWithTimeIntervalSince1970:resume.birthday];
  224. _date.datePicker.datePickerMode = UIDatePickerModeDate;
  225. _date.delegate = self;
  226. _date.didChange = @selector(onDate:);
  227. _date.didSelect = @selector(onDate:);
  228. }
  229. return self;
  230. }
  231. - (void)btnCLick:(UIButton *)sender{
  232. self.selectBtn.selected=NO;
  233. sender.selected=YES;
  234. self.selectBtn=sender;
  235. }
  236. - (void)btnCLick1:(UIButton *)sender{
  237. self.selectBtn.selected=NO;
  238. sender.selected=YES;
  239. self.selectBtn=sender;
  240. }
  241. -(void)dealloc{
  242. // NSLog(@"PSRegisterBaseVC.dealloc");
  243. // [_image release];
  244. self.resumeId = nil;
  245. self.user = nil;
  246. self.resume = nil;
  247. [_date removeFromSuperview];
  248. // [_date release];
  249. // [super dealloc];
  250. }
  251. - (void)viewDidLoad
  252. {
  253. [super viewDidLoad];
  254. [g_default removeObjectForKey:@"refushMsgHistoryxxx"];
  255. // Do any additional setup after loading the view.
  256. NSArray *buttons = nil;
  257. NSString *link = @"";
  258. if (link.length > 0) {
  259. buttons = @[@"查看更多",@"知道了"];
  260. } else {
  261. buttons = @[@"继续"];
  262. }
  263. UIImage *image = [UIImage imageNamed:@"new_register_alert_bg"];
  264. [_alert hide:NO];
  265. STAlertView *alert = [[STAlertView alloc] initWithTitle:@""
  266. image:image
  267. message:@"使用真实头像, 完成玩家验证可到客服领取奖励."
  268. buttonTitles:buttons];
  269. _alert = alert;
  270. alert.hideWhenTapOutside = NO;
  271. [alert setDidShowHandler:^{
  272. NSLog(@"显示了");
  273. }];
  274. [alert setDidHideHandler:^{
  275. NSLog(@"消失了");
  276. }];
  277. [alert setActionHandler:^(NSInteger index) {
  278. }];
  279. [alert show:YES];
  280. }
  281. - (void)didReceiveMemoryWarning
  282. {
  283. [super didReceiveMemoryWarning];
  284. // Dispose of any resources that can be recreated.
  285. }
  286. //=====================================start ============
  287. - (BOOL)textFieldShouldReturn:(UITextField *)textField{
  288. [textField resignFirstResponder];
  289. //过滤非汉字字符
  290. textField.text = [self filterCharactor:textField.text withRegex:@"[^\u4e00-\u9fa5]"];
  291. if (textField.text.length >= 24) {
  292. textField.text = [textField.text substringToIndex:24];
  293. }
  294. return NO;
  295. }
  296. - (void)textFiledEditChanged:(id)notification{
  297. UITextRange *selectedRange = _name.markedTextRange;
  298. UITextPosition *position = [_name positionFromPosition:selectedRange.start offset:0];
  299. if (!position) { //// 没有高亮选择的字
  300. //过滤非汉字字符
  301. _name.text = [self filterCharactor:_name.text withRegex:@"[^\u4e00-\u9fa5]"];
  302. if (_name.text.length >= 24) {
  303. _name.text = [_name.text substringToIndex:24];
  304. }
  305. }else { //有高亮文字
  306. //do nothing
  307. }
  308. }
  309. //根据正则,过滤特殊字符
  310. - (NSString *)filterCharactor:(NSString *)string withRegex:(NSString *)regexStr{
  311. NSString *searchText = string;
  312. NSError *error = NULL;
  313. NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexStr options:NSRegularExpressionCaseInsensitive error:&error];
  314. NSString *result = [regex stringByReplacingMatchesInString:searchText options:NSMatchingReportCompletion range:NSMakeRange(0, searchText.length) withTemplate:@""];
  315. return result;
  316. }
  317. //=====================================end=============
  318. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
  319. if(textField == _birthday){
  320. [self hideKeyboard];
  321. [g_window addSubview:_date];
  322. _date.hidden = NO;
  323. return NO;
  324. }else{
  325. _date.hidden = YES;
  326. return YES;
  327. }
  328. }
  329. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  330. if (textField == _memberAccount) {
  331. if (string.length == 0) {return YES;}
  332. if (![self validateNumber:string]) {return NO;}
  333. NSInteger existedLength = textField.text.length;
  334. NSInteger selectedLength = range.length;
  335. NSInteger replaceLength = string.length;
  336. if (existedLength - selectedLength + replaceLength > 30) {
  337. [g_App showAlert:@"会员账号不能超过30位哦"];
  338. return NO;
  339. }
  340. return YES;//YES,表示修改生效;NO,表示不做修改,textField的内容不变
  341. }
  342. return YES;
  343. }
  344. - (BOOL)validateNumber:(NSString*)number {
  345. BOOL res = YES;
  346. NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];
  347. int i = 0;
  348. while (i < number.length) {
  349. NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
  350. NSRange range = [string rangeOfCharacterFromSet:tmpSet];
  351. if (range.length == 0) {
  352. res = NO;
  353. break;
  354. }
  355. i++;
  356. }
  357. return res;
  358. }
  359. - (void) textFieldDidChange:(UITextField *)textField{
  360. if (textField == _memberAccount) {
  361. if (textField.text.length > 30) {
  362. textField.text = [textField.text substringToIndex:30];
  363. }
  364. }
  365. }
  366. - (IBAction)onDate:(id)sender {
  367. NSDate *selected = [_date date];
  368. _birthday.text = [TimeUtil formatDate:selected format:@"yyyy-MM-dd"];
  369. // _date.hidden = YES;
  370. }
  371. -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
  372. [_wait stop];
  373. if( [aDownload.action isEqualToString:act_Config]){
  374. [g_config didReceive:dict];
  375. [user copyFromResume:resume];
  376. // [g_server registerUser:user inviteCode:_inviteCode.text workexp:resume.workexpId diploma:resume.diplomaId isSmsRegister:self.isSmsRegister toView:self];
  377. // 注册接口
  378. _memberAccount.text;
  379. [g_loginServer registerUserV1:user type:self.type inviteCode:_inviteCodeStr workexp:resume.workexpId diploma:resume.diplomaId isSmsRegister:self.isSmsRegister smsCode:self.smsCode password:self.password memberAccount:_memberAccount.text toView:self];
  380. }
  381. if( [aDownload.action isEqualToString:act_UploadHeadImage] ){
  382. _head.image = _image;
  383. // [_image release];
  384. _image = nil;
  385. if(self.isRegister){
  386. }else{
  387. [g_server delHeadImage:user.userId];
  388. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  389. }
  390. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  391. [g_notify postNotificationName:kRegisterNotifaction object:self userInfo:nil];
  392. [self actionQuit];
  393. }
  394. if( [aDownload.action isEqualToString:act_Register] || [aDownload.action isEqualToString:act_RegisterV1]){
  395. [g_default setBool:NO forKey:kTHIRD_LOGIN_AUTO];
  396. [g_server doLoginOK:dict user:user];
  397. self.user = g_server.myself;
  398. self.resumeId = [(NSDictionary *)[dict objectForKey:@"cv"] objectForKey:@"resumeId"];
  399. // [g_server autoLogin:self];
  400. [g_server getUser:[[dict objectForKey:@"userId"] stringValue] toView:self];
  401. }
  402. if([aDownload.action isEqualToString:act_UserGet]){
  403. if ([dict objectForKey:@"settings"]) {
  404. g_server.myself.chatRecordTimeOut = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"chatRecordTimeOut"]];
  405. g_server.myself.chatSyncTimeLen = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"chatSyncTimeLen"]];
  406. g_server.myself.groupChatSyncTimeLen = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"groupChatSyncTimeLen"]];
  407. g_server.myself.friendsVerify = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"friendsVerify"]];
  408. g_server.myself.isEncrypt = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isEncrypt"]];
  409. g_server.myself.isTyping = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isTyping"]];
  410. g_server.myself.isVibration = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isVibration"]];
  411. g_server.myself.multipleDevices = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"multipleDevices"]];
  412. g_server.myself.isUseGoogleMap = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isUseGoogleMap"]];
  413. }
  414. [g_server uploadHeadImage:user.userId image:_image toView:self];
  415. }
  416. if( [aDownload.action isEqualToString:act_resumeUpdate] ){
  417. if(_image)
  418. [g_server uploadHeadImage:g_myself.userId image:_image toView:self];
  419. else{
  420. g_myself.userNickname = _name.text;
  421. //g_myself.sex = [NSNumber numberWithInteger:_sex.selectedSegmentIndex];
  422. g_myself.sex = [NSNumber numberWithInteger:_selectBtn.tag];
  423. g_myself.birthday = _date.date;
  424. g_myself.cityId = [NSNumber numberWithInt:[_city.text intValue]];
  425. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  426. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  427. [self actionQuit];
  428. }
  429. }
  430. if ([aDownload.action isEqualToString:act_registerSDK] || [aDownload.action isEqualToString:act_registerSDKV1]) {
  431. [g_default setBool:YES forKey:kTHIRD_LOGIN_AUTO];
  432. g_server.openId = nil;
  433. [g_server doLoginOK:dict user:user];
  434. self.user = g_server.myself;
  435. self.resumeId = [(NSDictionary *)[dict objectForKey:@"cv"] objectForKey:@"resumeId"];
  436. [g_server getUser:[[dict objectForKey:@"userId"] stringValue] toView:self];
  437. }
  438. }
  439. -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
  440. [_wait stop];
  441. if( [aDownload.action isEqualToString:act_UploadHeadImage] ){
  442. _head.image = _image;
  443. // [_image release];
  444. _image = nil;
  445. if(self.isRegister){
  446. }else{
  447. [g_server delHeadImage:user.userId];
  448. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  449. }
  450. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  451. [g_notify postNotificationName:kRegisterNotifaction object:self userInfo:nil];
  452. [self actionQuit];
  453. }
  454. return show_error;
  455. }
  456. -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
  457. [_wait stop];
  458. if( [aDownload.action isEqualToString:act_UploadHeadImage] ){
  459. _head.image = _image;
  460. // [_image release];
  461. _image = nil;
  462. if(self.isRegister){
  463. }else{
  464. [g_server delHeadImage:user.userId];
  465. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  466. }
  467. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  468. [g_notify postNotificationName:kRegisterNotifaction object:self userInfo:nil];
  469. [self actionQuit];
  470. }
  471. return show_error;
  472. }
  473. -(void) didServerConnectStart:(JXConnection*)aDownload{
  474. [_wait start];
  475. }
  476. -(JXImageView*)createButton:(NSString*)title drawTop:(BOOL)drawTop drawBottom:(BOOL)drawBottom must:(BOOL)must click:(SEL)click{
  477. JXImageView* btn = [[JXImageView alloc] init];
  478. btn.backgroundColor = [UIColor whiteColor];
  479. btn.userInteractionEnabled = YES;
  480. if(click)
  481. btn.didTouch = click;
  482. else
  483. btn.didTouch = @selector(hideKeyboard);
  484. btn.delegate = self;
  485. [self.tableBody addSubview:btn];
  486. // if(must){
  487. // UILabel* p = [[UILabel alloc] initWithFrame:CGRectMake(INSETS, 5, 20, HEIGHT-5)];
  488. // p.text = @"*";
  489. // p.font = g_factory.font18;
  490. // p.backgroundColor = [UIColor clearColor];
  491. // p.textColor = [UIColor redColor];
  492. // p.textAlignment = NSTextAlignmentCenter;
  493. // [btn addSubview:p];
  494. // }
  495. JXLabel* p = [[JXLabel alloc] initWithFrame:CGRectMake(15, 0, 130, HEIGHT)];
  496. p.text = title;
  497. p.font = g_factory.font16;
  498. p.backgroundColor = [UIColor clearColor];
  499. p.textColor = [UIColor blackColor];
  500. [btn addSubview:p];
  501. if(drawTop){
  502. UIView* line = [[UIView alloc] initWithFrame:CGRectMake(15,0,JX_SCREEN_WIDTH-15,LINE_WH)];
  503. line.backgroundColor = THE_LINE_COLOR;
  504. [btn addSubview:line];
  505. }
  506. if(drawBottom){
  507. UIView* line = [[UIView alloc]initWithFrame:CGRectMake(15,HEIGHT-LINE_WH,JX_SCREEN_WIDTH-15,LINE_WH)];
  508. line.backgroundColor = THE_LINE_COLOR;
  509. [btn addSubview:line];
  510. }
  511. if(click){
  512. UIImageView* iv;
  513. iv = [[UIImageView alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH-15-7, (HEIGHT-13)/2, 7, 13)];
  514. iv.image = [UIImage imageNamed:@"new_icon_>"];
  515. [btn addSubview:iv];
  516. }
  517. return btn;
  518. }
  519. -(UITextField*)createTextField:(UIView*)parent default:(NSString*)s hint:(NSString*)hint{
  520. UITextField* p = [[UITextField alloc] initWithFrame:CGRectMake(60,INSETS,JX_SCREEN_WIDTH/2-15,HEIGHT-INSETS*2)];
  521. p.delegate = self;
  522. p.autocorrectionType = UITextAutocorrectionTypeNo;
  523. p.autocapitalizationType = UITextAutocapitalizationTypeNone;
  524. p.enablesReturnKeyAutomatically = YES;
  525. p.borderStyle = UITextBorderStyleNone;
  526. p.returnKeyType = UIReturnKeyDone;
  527. p.textAlignment=NSTextAlignmentLeft;
  528. p.clearButtonMode = UITextFieldViewModeWhileEditing;
  529. p.textAlignment = NSTextAlignmentRight;
  530. p.textColor = HEXCOLOR(0x666666);
  531. p.userInteractionEnabled = YES;
  532. p.text = s;
  533. p.placeholder = hint;
  534. p.font = g_factory.font16;
  535. [parent addSubview:p];
  536. return p;
  537. }
  538. -(UILabel*)createLabel:(UIView*)parent default:(NSString*)s{
  539. UILabel* p = [[UILabel alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH/2 -30 ,INSETS,JX_SCREEN_WIDTH/2,HEIGHT-INSETS*2)];
  540. p.userInteractionEnabled = NO;
  541. p.text = s;
  542. p.font = g_factory.font15;
  543. p.textAlignment = NSTextAlignmentRight;
  544. [parent addSubview:p];
  545. // [p release];
  546. return p;
  547. }
  548. -(void)onWorkexp{
  549. if([self hideKeyboard])
  550. return;
  551. selectValueVC* vc = [selectValueVC alloc];
  552. vc.values = g_constant.workexp_name;
  553. vc.selNumber = resume.workexpId;
  554. vc.numbers = g_constant.workexp_value;
  555. vc.delegate = self;
  556. vc.didSelect = @selector(onSelWorkExp:);
  557. vc.quickSelect = YES;
  558. vc = [vc init];
  559. // [g_window addSubview:vc.view];
  560. [g_navigation pushViewController:vc animated:YES];
  561. }
  562. -(void)onDiploma{
  563. if([self hideKeyboard])
  564. return;
  565. selectValueVC* vc = [selectValueVC alloc];
  566. vc.values = g_constant.diploma_name;
  567. vc.selNumber = resume.diplomaId;
  568. vc.numbers = g_constant.diploma_value;
  569. vc.delegate = self;
  570. vc.didSelect = @selector(onSelDiploma:);
  571. vc.quickSelect = YES;
  572. vc = [vc init];
  573. // [g_window addSubview:vc.view];
  574. [g_navigation pushViewController:vc animated:YES];
  575. }
  576. -(void)onCity{
  577. if([self hideKeyboard])
  578. return;
  579. selectProvinceVC* vc = [selectProvinceVC alloc];
  580. vc.delegate = self;
  581. vc.didSelect = @selector(onSelCity:);
  582. vc.showCity = YES;
  583. vc.showArea = NO;
  584. vc.parentId = 1;
  585. vc = [vc init];
  586. // [g_window addSubview:vc.view];
  587. [g_navigation pushViewController:vc animated:YES];
  588. }
  589. -(void)onSelCity:(selectProvinceVC*)sender{
  590. resume.cityId = sender.cityId;
  591. resume.provinceId = sender.provinceId;
  592. resume.areaId = sender.areaId;
  593. resume.countryId = 1;
  594. _city.text = sender.selValue;
  595. }
  596. -(void)onSelDiploma:(selectValueVC*)sender{
  597. resume.diplomaId = sender.selNumber;
  598. _dip.text = sender.selValue;
  599. }
  600. -(void)onSelWorkExp:(selectValueVC*)sender{
  601. resume.workexpId = sender.selNumber;
  602. _workexp.text = sender.selValue;
  603. }
  604. - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
  605. {
  606. _image = [ImageResize image:[info objectForKey:@"UIImagePickerControllerEditedImage"] fillSize:CGSizeMake(640, 640)];
  607. // [_image retain];
  608. _head.image = _image;
  609. // [picker.view removeFromSuperview];
  610. // 选完了
  611. _headCheck.hidden = NO;
  612. [picker dismissViewControllerAnimated:YES completion:nil];
  613. // [self dismissModalViewControllerAnimated:YES];
  614. // [picker release];
  615. }
  616. - (void) pickImage
  617. {
  618. [self hideKeyboard];
  619. JXActionSheetVC *actionVC = [[JXActionSheetVC alloc] initWithImages:@[] names:@[Localized(@"JX_ChoosePhoto"),Localized(@"JX_TakePhoto")]];
  620. actionVC.delegate = self;
  621. [self presentViewController:actionVC animated:NO completion:nil];
  622. UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
  623. ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  624. ipc.delegate = self;
  625. ipc.allowsEditing = YES;
  626. ipc.modalPresentationStyle = UIModalPresentationFullScreen;
  627. // [g_window addSubview:ipc.view];
  628. if (IS_PAD) {
  629. UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:ipc];
  630. [pop presentPopoverFromRect:CGRectMake((self.view.frame.size.width - 320) / 2, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
  631. }else {
  632. [self presentViewController:ipc animated:YES completion:nil];
  633. }
  634. }
  635. - (void)actionSheet:(JXActionSheetVC *)actionSheet didButtonWithIndex:(NSInteger)index {
  636. if (index == 0) {
  637. UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
  638. ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  639. ipc.delegate = self;
  640. ipc.allowsEditing = YES;
  641. //选择图片模式
  642. ipc.modalPresentationStyle = UIModalPresentationCurrentContext;
  643. // [g_window addSubview:ipc.view];
  644. if (IS_PAD) {
  645. UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:ipc];
  646. [pop presentPopoverFromRect:CGRectMake((self.view.frame.size.width - 320) / 2, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
  647. }else {
  648. [self presentViewController:ipc animated:YES completion:nil];
  649. }
  650. }else {
  651. JXCameraVC *vc = [JXCameraVC alloc];
  652. vc.cameraDelegate = self;
  653. vc.isPhoto = YES;
  654. vc = [vc init];
  655. [self presentViewController:vc animated:YES completion:nil];
  656. }
  657. }
  658. - (void)cameraVC:(JXCameraVC *)vc didFinishWithImage:(UIImage *)image {
  659. _image = [ImageResize image:image fillSize:CGSizeMake(640, 640)];
  660. // [_image retain];
  661. // 照相
  662. _headCheck.hidden = NO;
  663. _head.image = _image;
  664. }
  665. -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
  666. {
  667. // 取消
  668. _headCheck.hidden = YES;
  669. // [picker.view removeFromSuperview];
  670. [picker dismissViewControllerAnimated:YES completion:nil];
  671. // [picker release];
  672. // [self dismissModalViewControllerAnimated:YES];
  673. }
  674. -(void)onUpdate{
  675. if(![self getInputValue])
  676. return;
  677. // NSString* s = [g_server jsonFromObject:[resume setDataToDict]];
  678. // [g_server updateResume:resumeId nodeName:@"p" text:s toView:self];
  679. }
  680. -(void)onInsert{
  681. if(![self getInputValue])
  682. return;
  683. [g_server getSetting:self];
  684. }
  685. -(BOOL)getInputValue{
  686. if(_image==nil && self.isRegister){
  687. [g_App showAlert:Localized(@"JX_SetHead")];
  688. return NO;
  689. }
  690. if([_name.text length]<=0){
  691. [g_App showAlert:Localized(@"JX_InputName")];
  692. return NO;
  693. }
  694. if([_memberAccount.text length]<=0){
  695. [g_App showAlert:@"会员账号为必填项"];
  696. return NO;
  697. }
  698. if(!self.isRegister){
  699. if(resume.workexpId<=0){
  700. [g_App showAlert:Localized(@"JX_InputWorking")];
  701. return NO;
  702. }
  703. if(resume.diplomaId<=0){
  704. [g_App showAlert:Localized(@"JX_School")];
  705. return NO;
  706. }
  707. if(resume.cityId<=0){
  708. [g_App showAlert:Localized(@"JX_Live")];
  709. return NO;
  710. }
  711. }
  712. // else {
  713. // if ([g_config.registerInviteCode intValue] == 1) {
  714. // if ([_inviteCode.text length] <= 0) {
  715. // [g_App showAlert:Localized(@"JX_EnterInvitationCode")];
  716. // return NO;
  717. // }
  718. // }
  719. // }
  720. resume.name = _name.text;
  721. resume.birthday = [_date.date timeIntervalSince1970];
  722. resume.sex = _selectBtn.tag;// _sex.selectedSegmentIndex;
  723. return YES;
  724. }
  725. -(BOOL)hideKeyboard{
  726. BOOL b = _name.editing || _pwd.editing || _repeat.editing;
  727. _date.hidden = YES;
  728. [self.view endEditing:YES];
  729. return b;
  730. }
  731. //- (BOOL)textFieldShouldReturn:(UITextField *)textField
  732. //{
  733. // [self.view endEditing:YES];
  734. // return YES;
  735. //}
  736. @end