PSRegisterBaseVC.m 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  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. // Do any additional setup after loading the view.
  255. NSArray *buttons = nil;
  256. NSString *link = @"";
  257. if (link.length > 0) {
  258. buttons = @[@"查看更多",@"知道了"];
  259. } else {
  260. buttons = @[@"继续"];
  261. }
  262. UIImage *image = [UIImage imageNamed:@"new_register_alert_bg"];
  263. [_alert hide:NO];
  264. STAlertView *alert = [[STAlertView alloc] initWithTitle:@""
  265. image:image
  266. message:@"使用真实头像, 完成玩家验证可到客服领取奖励."
  267. buttonTitles:buttons];
  268. _alert = alert;
  269. alert.hideWhenTapOutside = NO;
  270. [alert setDidShowHandler:^{
  271. NSLog(@"显示了");
  272. }];
  273. [alert setDidHideHandler:^{
  274. NSLog(@"消失了");
  275. }];
  276. [alert setActionHandler:^(NSInteger index) {
  277. }];
  278. [alert show:YES];
  279. }
  280. - (void)didReceiveMemoryWarning
  281. {
  282. [super didReceiveMemoryWarning];
  283. // Dispose of any resources that can be recreated.
  284. }
  285. //=====================================start ============
  286. - (BOOL)textFieldShouldReturn:(UITextField *)textField{
  287. [textField resignFirstResponder];
  288. //过滤非汉字字符
  289. textField.text = [self filterCharactor:textField.text withRegex:@"[^\u4e00-\u9fa5]"];
  290. if (textField.text.length >= 24) {
  291. textField.text = [textField.text substringToIndex:24];
  292. }
  293. return NO;
  294. }
  295. - (void)textFiledEditChanged:(id)notification{
  296. UITextRange *selectedRange = _name.markedTextRange;
  297. UITextPosition *position = [_name positionFromPosition:selectedRange.start offset:0];
  298. if (!position) { //// 没有高亮选择的字
  299. //过滤非汉字字符
  300. _name.text = [self filterCharactor:_name.text withRegex:@"[^\u4e00-\u9fa5]"];
  301. if (_name.text.length >= 24) {
  302. _name.text = [_name.text substringToIndex:24];
  303. }
  304. }else { //有高亮文字
  305. //do nothing
  306. }
  307. }
  308. //根据正则,过滤特殊字符
  309. - (NSString *)filterCharactor:(NSString *)string withRegex:(NSString *)regexStr{
  310. NSString *searchText = string;
  311. NSError *error = NULL;
  312. NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexStr options:NSRegularExpressionCaseInsensitive error:&error];
  313. NSString *result = [regex stringByReplacingMatchesInString:searchText options:NSMatchingReportCompletion range:NSMakeRange(0, searchText.length) withTemplate:@""];
  314. return result;
  315. }
  316. //=====================================end=============
  317. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
  318. if(textField == _birthday){
  319. [self hideKeyboard];
  320. [g_window addSubview:_date];
  321. _date.hidden = NO;
  322. return NO;
  323. }else{
  324. _date.hidden = YES;
  325. return YES;
  326. }
  327. }
  328. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  329. if (textField == _memberAccount) {
  330. if (string.length == 0) {return YES;}
  331. if (![self validateNumber:string]) {return NO;}
  332. NSInteger existedLength = textField.text.length;
  333. NSInteger selectedLength = range.length;
  334. NSInteger replaceLength = string.length;
  335. if (existedLength - selectedLength + replaceLength > 30) {
  336. [g_App showAlert:@"会员账号不能超过30位哦"];
  337. return NO;
  338. }
  339. return YES;//YES,表示修改生效;NO,表示不做修改,textField的内容不变
  340. }
  341. return YES;
  342. }
  343. - (BOOL)validateNumber:(NSString*)number {
  344. BOOL res = YES;
  345. NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];
  346. int i = 0;
  347. while (i < number.length) {
  348. NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
  349. NSRange range = [string rangeOfCharacterFromSet:tmpSet];
  350. if (range.length == 0) {
  351. res = NO;
  352. break;
  353. }
  354. i++;
  355. }
  356. return res;
  357. }
  358. - (void) textFieldDidChange:(UITextField *)textField{
  359. if (textField == _memberAccount) {
  360. if (textField.text.length > 30) {
  361. textField.text = [textField.text substringToIndex:30];
  362. }
  363. }
  364. }
  365. - (IBAction)onDate:(id)sender {
  366. NSDate *selected = [_date date];
  367. _birthday.text = [TimeUtil formatDate:selected format:@"yyyy-MM-dd"];
  368. // _date.hidden = YES;
  369. }
  370. -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
  371. [_wait stop];
  372. if( [aDownload.action isEqualToString:act_Config]){
  373. [g_config didReceive:dict];
  374. [user copyFromResume:resume];
  375. // [g_server registerUser:user inviteCode:_inviteCode.text workexp:resume.workexpId diploma:resume.diplomaId isSmsRegister:self.isSmsRegister toView:self];
  376. // 注册接口
  377. _memberAccount.text;
  378. [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];
  379. }
  380. if( [aDownload.action isEqualToString:act_UploadHeadImage] ){
  381. _head.image = _image;
  382. // [_image release];
  383. _image = nil;
  384. if(self.isRegister){
  385. }else{
  386. [g_server delHeadImage:user.userId];
  387. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  388. }
  389. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  390. [g_notify postNotificationName:kRegisterNotifaction object:self userInfo:nil];
  391. [self actionQuit];
  392. }
  393. if( [aDownload.action isEqualToString:act_Register] || [aDownload.action isEqualToString:act_RegisterV1]){
  394. [g_default setBool:NO forKey:kTHIRD_LOGIN_AUTO];
  395. [g_server doLoginOK:dict user:user];
  396. self.user = g_server.myself;
  397. self.resumeId = [(NSDictionary *)[dict objectForKey:@"cv"] objectForKey:@"resumeId"];
  398. // [g_server autoLogin:self];
  399. [g_server getUser:[[dict objectForKey:@"userId"] stringValue] toView:self];
  400. }
  401. if([aDownload.action isEqualToString:act_UserGet]){
  402. if ([dict objectForKey:@"settings"]) {
  403. g_server.myself.chatRecordTimeOut = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"chatRecordTimeOut"]];
  404. g_server.myself.chatSyncTimeLen = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"chatSyncTimeLen"]];
  405. g_server.myself.groupChatSyncTimeLen = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"groupChatSyncTimeLen"]];
  406. g_server.myself.friendsVerify = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"friendsVerify"]];
  407. g_server.myself.isEncrypt = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isEncrypt"]];
  408. g_server.myself.isTyping = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isTyping"]];
  409. g_server.myself.isVibration = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isVibration"]];
  410. g_server.myself.multipleDevices = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"multipleDevices"]];
  411. g_server.myself.isUseGoogleMap = [NSString stringWithFormat:@"%@",[(NSDictionary *)[dict objectForKey:@"settings"] objectForKey:@"isUseGoogleMap"]];
  412. }
  413. [g_server uploadHeadImage:user.userId image:_image toView:self];
  414. }
  415. if( [aDownload.action isEqualToString:act_resumeUpdate] ){
  416. if(_image)
  417. [g_server uploadHeadImage:g_myself.userId image:_image toView:self];
  418. else{
  419. g_myself.userNickname = _name.text;
  420. //g_myself.sex = [NSNumber numberWithInteger:_sex.selectedSegmentIndex];
  421. g_myself.sex = [NSNumber numberWithInteger:_selectBtn.tag];
  422. g_myself.birthday = _date.date;
  423. g_myself.cityId = [NSNumber numberWithInt:[_city.text intValue]];
  424. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  425. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  426. [self actionQuit];
  427. }
  428. }
  429. if ([aDownload.action isEqualToString:act_registerSDK] || [aDownload.action isEqualToString:act_registerSDKV1]) {
  430. [g_default setBool:YES forKey:kTHIRD_LOGIN_AUTO];
  431. g_server.openId = nil;
  432. [g_server doLoginOK:dict user:user];
  433. self.user = g_server.myself;
  434. self.resumeId = [(NSDictionary *)[dict objectForKey:@"cv"] objectForKey:@"resumeId"];
  435. [g_server getUser:[[dict objectForKey:@"userId"] stringValue] toView:self];
  436. }
  437. }
  438. -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
  439. [_wait stop];
  440. if( [aDownload.action isEqualToString:act_UploadHeadImage] ){
  441. _head.image = _image;
  442. // [_image release];
  443. _image = nil;
  444. if(self.isRegister){
  445. }else{
  446. [g_server delHeadImage:user.userId];
  447. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  448. }
  449. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  450. [g_notify postNotificationName:kRegisterNotifaction object:self userInfo:nil];
  451. [self actionQuit];
  452. }
  453. return show_error;
  454. }
  455. -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
  456. [_wait stop];
  457. if( [aDownload.action isEqualToString:act_UploadHeadImage] ){
  458. _head.image = _image;
  459. // [_image release];
  460. _image = nil;
  461. if(self.isRegister){
  462. }else{
  463. [g_server delHeadImage:user.userId];
  464. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  465. }
  466. [g_notify postNotificationName:kUpdateUserNotifaction object:self userInfo:nil];
  467. [g_notify postNotificationName:kRegisterNotifaction object:self userInfo:nil];
  468. [self actionQuit];
  469. }
  470. return show_error;
  471. }
  472. -(void) didServerConnectStart:(JXConnection*)aDownload{
  473. [_wait start];
  474. }
  475. -(JXImageView*)createButton:(NSString*)title drawTop:(BOOL)drawTop drawBottom:(BOOL)drawBottom must:(BOOL)must click:(SEL)click{
  476. JXImageView* btn = [[JXImageView alloc] init];
  477. btn.backgroundColor = [UIColor whiteColor];
  478. btn.userInteractionEnabled = YES;
  479. if(click)
  480. btn.didTouch = click;
  481. else
  482. btn.didTouch = @selector(hideKeyboard);
  483. btn.delegate = self;
  484. [self.tableBody addSubview:btn];
  485. // if(must){
  486. // UILabel* p = [[UILabel alloc] initWithFrame:CGRectMake(INSETS, 5, 20, HEIGHT-5)];
  487. // p.text = @"*";
  488. // p.font = g_factory.font18;
  489. // p.backgroundColor = [UIColor clearColor];
  490. // p.textColor = [UIColor redColor];
  491. // p.textAlignment = NSTextAlignmentCenter;
  492. // [btn addSubview:p];
  493. // }
  494. JXLabel* p = [[JXLabel alloc] initWithFrame:CGRectMake(15, 0, 130, HEIGHT)];
  495. p.text = title;
  496. p.font = g_factory.font16;
  497. p.backgroundColor = [UIColor clearColor];
  498. p.textColor = [UIColor blackColor];
  499. [btn addSubview:p];
  500. if(drawTop){
  501. UIView* line = [[UIView alloc] initWithFrame:CGRectMake(15,0,JX_SCREEN_WIDTH-15,LINE_WH)];
  502. line.backgroundColor = THE_LINE_COLOR;
  503. [btn addSubview:line];
  504. }
  505. if(drawBottom){
  506. UIView* line = [[UIView alloc]initWithFrame:CGRectMake(15,HEIGHT-LINE_WH,JX_SCREEN_WIDTH-15,LINE_WH)];
  507. line.backgroundColor = THE_LINE_COLOR;
  508. [btn addSubview:line];
  509. }
  510. if(click){
  511. UIImageView* iv;
  512. iv = [[UIImageView alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH-15-7, (HEIGHT-13)/2, 7, 13)];
  513. iv.image = [UIImage imageNamed:@"new_icon_>"];
  514. [btn addSubview:iv];
  515. }
  516. return btn;
  517. }
  518. -(UITextField*)createTextField:(UIView*)parent default:(NSString*)s hint:(NSString*)hint{
  519. UITextField* p = [[UITextField alloc] initWithFrame:CGRectMake(60,INSETS,JX_SCREEN_WIDTH/2-15,HEIGHT-INSETS*2)];
  520. p.delegate = self;
  521. p.autocorrectionType = UITextAutocorrectionTypeNo;
  522. p.autocapitalizationType = UITextAutocapitalizationTypeNone;
  523. p.enablesReturnKeyAutomatically = YES;
  524. p.borderStyle = UITextBorderStyleNone;
  525. p.returnKeyType = UIReturnKeyDone;
  526. p.textAlignment=NSTextAlignmentLeft;
  527. p.clearButtonMode = UITextFieldViewModeWhileEditing;
  528. p.textAlignment = NSTextAlignmentRight;
  529. p.textColor = HEXCOLOR(0x666666);
  530. p.userInteractionEnabled = YES;
  531. p.text = s;
  532. p.placeholder = hint;
  533. p.font = g_factory.font16;
  534. [parent addSubview:p];
  535. return p;
  536. }
  537. -(UILabel*)createLabel:(UIView*)parent default:(NSString*)s{
  538. UILabel* p = [[UILabel alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH/2 -30 ,INSETS,JX_SCREEN_WIDTH/2,HEIGHT-INSETS*2)];
  539. p.userInteractionEnabled = NO;
  540. p.text = s;
  541. p.font = g_factory.font15;
  542. p.textAlignment = NSTextAlignmentRight;
  543. [parent addSubview:p];
  544. // [p release];
  545. return p;
  546. }
  547. -(void)onWorkexp{
  548. if([self hideKeyboard])
  549. return;
  550. selectValueVC* vc = [selectValueVC alloc];
  551. vc.values = g_constant.workexp_name;
  552. vc.selNumber = resume.workexpId;
  553. vc.numbers = g_constant.workexp_value;
  554. vc.delegate = self;
  555. vc.didSelect = @selector(onSelWorkExp:);
  556. vc.quickSelect = YES;
  557. vc = [vc init];
  558. // [g_window addSubview:vc.view];
  559. [g_navigation pushViewController:vc animated:YES];
  560. }
  561. -(void)onDiploma{
  562. if([self hideKeyboard])
  563. return;
  564. selectValueVC* vc = [selectValueVC alloc];
  565. vc.values = g_constant.diploma_name;
  566. vc.selNumber = resume.diplomaId;
  567. vc.numbers = g_constant.diploma_value;
  568. vc.delegate = self;
  569. vc.didSelect = @selector(onSelDiploma:);
  570. vc.quickSelect = YES;
  571. vc = [vc init];
  572. // [g_window addSubview:vc.view];
  573. [g_navigation pushViewController:vc animated:YES];
  574. }
  575. -(void)onCity{
  576. if([self hideKeyboard])
  577. return;
  578. selectProvinceVC* vc = [selectProvinceVC alloc];
  579. vc.delegate = self;
  580. vc.didSelect = @selector(onSelCity:);
  581. vc.showCity = YES;
  582. vc.showArea = NO;
  583. vc.parentId = 1;
  584. vc = [vc init];
  585. // [g_window addSubview:vc.view];
  586. [g_navigation pushViewController:vc animated:YES];
  587. }
  588. -(void)onSelCity:(selectProvinceVC*)sender{
  589. resume.cityId = sender.cityId;
  590. resume.provinceId = sender.provinceId;
  591. resume.areaId = sender.areaId;
  592. resume.countryId = 1;
  593. _city.text = sender.selValue;
  594. }
  595. -(void)onSelDiploma:(selectValueVC*)sender{
  596. resume.diplomaId = sender.selNumber;
  597. _dip.text = sender.selValue;
  598. }
  599. -(void)onSelWorkExp:(selectValueVC*)sender{
  600. resume.workexpId = sender.selNumber;
  601. _workexp.text = sender.selValue;
  602. }
  603. - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
  604. {
  605. _image = [ImageResize image:[info objectForKey:@"UIImagePickerControllerEditedImage"] fillSize:CGSizeMake(640, 640)];
  606. // [_image retain];
  607. _head.image = _image;
  608. // [picker.view removeFromSuperview];
  609. // 选完了
  610. _headCheck.hidden = NO;
  611. [picker dismissViewControllerAnimated:YES completion:nil];
  612. // [self dismissModalViewControllerAnimated:YES];
  613. // [picker release];
  614. }
  615. - (void) pickImage
  616. {
  617. [self hideKeyboard];
  618. JXActionSheetVC *actionVC = [[JXActionSheetVC alloc] initWithImages:@[] names:@[Localized(@"JX_ChoosePhoto"),Localized(@"JX_TakePhoto")]];
  619. actionVC.delegate = self;
  620. [self presentViewController:actionVC animated:NO completion:nil];
  621. UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
  622. ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  623. ipc.delegate = self;
  624. ipc.allowsEditing = YES;
  625. ipc.modalPresentationStyle = UIModalPresentationFullScreen;
  626. // [g_window addSubview:ipc.view];
  627. if (IS_PAD) {
  628. UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:ipc];
  629. [pop presentPopoverFromRect:CGRectMake((self.view.frame.size.width - 320) / 2, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
  630. }else {
  631. [self presentViewController:ipc animated:YES completion:nil];
  632. }
  633. }
  634. - (void)actionSheet:(JXActionSheetVC *)actionSheet didButtonWithIndex:(NSInteger)index {
  635. if (index == 0) {
  636. UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
  637. ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  638. ipc.delegate = self;
  639. ipc.allowsEditing = YES;
  640. //选择图片模式
  641. ipc.modalPresentationStyle = UIModalPresentationCurrentContext;
  642. // [g_window addSubview:ipc.view];
  643. if (IS_PAD) {
  644. UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:ipc];
  645. [pop presentPopoverFromRect:CGRectMake((self.view.frame.size.width - 320) / 2, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
  646. }else {
  647. [self presentViewController:ipc animated:YES completion:nil];
  648. }
  649. }else {
  650. JXCameraVC *vc = [JXCameraVC alloc];
  651. vc.cameraDelegate = self;
  652. vc.isPhoto = YES;
  653. vc = [vc init];
  654. [self presentViewController:vc animated:YES completion:nil];
  655. }
  656. }
  657. - (void)cameraVC:(JXCameraVC *)vc didFinishWithImage:(UIImage *)image {
  658. _image = [ImageResize image:image fillSize:CGSizeMake(640, 640)];
  659. // [_image retain];
  660. // 照相
  661. _headCheck.hidden = NO;
  662. _head.image = _image;
  663. }
  664. -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
  665. {
  666. // 取消
  667. _headCheck.hidden = YES;
  668. // [picker.view removeFromSuperview];
  669. [picker dismissViewControllerAnimated:YES completion:nil];
  670. // [picker release];
  671. // [self dismissModalViewControllerAnimated:YES];
  672. }
  673. -(void)onUpdate{
  674. if(![self getInputValue])
  675. return;
  676. // NSString* s = [g_server jsonFromObject:[resume setDataToDict]];
  677. // [g_server updateResume:resumeId nodeName:@"p" text:s toView:self];
  678. }
  679. -(void)onInsert{
  680. if(![self getInputValue])
  681. return;
  682. [g_server getSetting:self];
  683. }
  684. -(BOOL)getInputValue{
  685. if(_image==nil && self.isRegister){
  686. [g_App showAlert:Localized(@"JX_SetHead")];
  687. return NO;
  688. }
  689. if([_name.text length]<=0){
  690. [g_App showAlert:Localized(@"JX_InputName")];
  691. return NO;
  692. }
  693. if([_memberAccount.text length]<=0){
  694. [g_App showAlert:@"会员账号为必填项"];
  695. return NO;
  696. }
  697. if(!self.isRegister){
  698. if(resume.workexpId<=0){
  699. [g_App showAlert:Localized(@"JX_InputWorking")];
  700. return NO;
  701. }
  702. if(resume.diplomaId<=0){
  703. [g_App showAlert:Localized(@"JX_School")];
  704. return NO;
  705. }
  706. if(resume.cityId<=0){
  707. [g_App showAlert:Localized(@"JX_Live")];
  708. return NO;
  709. }
  710. }
  711. // else {
  712. // if ([g_config.registerInviteCode intValue] == 1) {
  713. // if ([_inviteCode.text length] <= 0) {
  714. // [g_App showAlert:Localized(@"JX_EnterInvitationCode")];
  715. // return NO;
  716. // }
  717. // }
  718. // }
  719. resume.name = _name.text;
  720. resume.birthday = [_date.date timeIntervalSince1970];
  721. resume.sex = _selectBtn.tag;// _sex.selectedSegmentIndex;
  722. return YES;
  723. }
  724. -(BOOL)hideKeyboard{
  725. BOOL b = _name.editing || _pwd.editing || _repeat.editing;
  726. _date.hidden = YES;
  727. [self.view endEditing:YES];
  728. return b;
  729. }
  730. //- (BOOL)textFieldShouldReturn:(UITextField *)textField
  731. //{
  732. // [self.view endEditing:YES];
  733. // return YES;
  734. //}
  735. @end