提交 6263b182 authored 作者: lgd's avatar lgd

1.新用戶注册,未完成

上级 7b5c11e5
......@@ -9,7 +9,8 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/FlexibleTheme.Base">
android:theme="@style/FlexibleTheme.Base"
android:usesCleartextTraffic="true">
<activity
android:name=".ui.login.LoginActivity"
android:configChanges="keyboardHidden|orientation"
......@@ -44,7 +45,7 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.login.UserRegisterOneActivity"
......@@ -88,6 +89,7 @@
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.wd.workoffice.fileprovider"
......
package com.wd.workoffice.app;
import org.json.JSONObject;
import java.util.Map;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
/**
* author : flexible
......@@ -15,9 +20,9 @@ import retrofit2.http.Query;
* github: https://github.com/FlexibleXd
**/
public interface ApiService {
String DOMAIN = Config.DEBUG ? "http://121.36.41.30:9001/" : "http://zwang.bat100.net.cn:8000/";
// String DOMAIN = Config.DEBUG ? "http://121.36.41.30:9001/" : "http://zwang.bat100.net.cn:8000/";
String DOMAIN = Config.DEBUG ? "http://zwang.bat100.net.cn:8000/" : "http://zwang.bat100.net.cn:8000/";
//用户信息User information http://zwang.bat100.net.cn:8000/sys/user/userInfo
public static final String USER_INFORMATION = "sys/user/userInfo";
......@@ -90,7 +95,7 @@ public interface ApiService {
//销售: 产品加入购物车 Sale_Shopping_CartBean http://115.29.67.166:9000/product/page/list/by/outDept/transit-part?outDeptId=119&transitPartId=41&processType=PROCESS_SALE&searchValue
public static final String SUB_SHOPPING_CARBEAN = "product/page/list/by/outDept/transit-part";
//根据部门、流程、往来单位获取子流程http://zwang.bat100.net.cn:8000/sub-process/listByDPT?processCode=PROCESS_SALE&transitPartId=41
public static final String ORDER_ZILIUCHENG="sub-process/listByDPT";
public static final String ORDER_ZILIUCHENG = "sub-process/listByDPT";
//销售http://zwang.bat100.net.cn:8000/saleOrder/current-user/page/list?identity=2&current=1&size=100
public static final String BUYER_SALES_ORDER = "saleOrder/current-user/page/list";
......@@ -100,61 +105,79 @@ public interface ApiService {
public static final String SALES_ORDER = "saleOrder/start";
//4.订单部分获取单个订单的详细信息(路由)
public static final String ORDER_SALES_DETAILS="saleOrder/oneInfo/";
public static final String ORDER_SALES_DETAILS = "saleOrder/oneInfo/";
//弹窗驳回同意审核
public static final String ORDER_SALEORDER_AUDIT="saleOrder/audit/";
public static final String ORDER_SALEORDER_AUDIT = "saleOrder/audit/";
//弹窗驳回同意接单
public static final String ORDER_SALE_ORDER_APPLY="saleOrder/apply/";
public static final String ORDER_SALE_ORDER_APPLY = "saleOrder/apply/";
//获取发起入库申请
public static final String ORDER_PROCEDURE_START_SO="procedureStart/so/applyStock/";
public static final String ORDER_PROCEDURE_START_SO = "procedureStart/so/applyStock/";
//入库申请列表展示http://zwang.bat100.net.cn:8000/enterStoreApply/so/app/page/list?orderId=SO10628&orderType=4ae3333eebc5423e8a72e388e12fc42f&productId=504
public static final String ORDER_ENTERSTOREaPPLY_SO_APP="enterStoreApply/so/app/page/list";
public static final String ORDER_ENTERSTOREaPPLY_SO_APP = "enterStoreApply/so/app/page/list";
/* //发货http://zwang.bat100.net.cn:8000/procedureStart/so/applyOutStock/SO10628
public static final String ORDER_APPLY_OUT_STOCK="procedureStart/so/applyOutStock/";*/
/**
* 用户注册
*
* @return
*/
@POST("/open/sys/user/register")
Observable<BaseBean> register(@QueryMap Map<String, Object> param);
@POST("/app/account/send-reg-msg")
Observable<JSONObject> code(@Query("phoneNo") String account);
/**
* 发送登录验证码(app)
* 忘记密码(短信验证码的方式,重置密码)
*
* @return
*/
@PUT("/open/change-pwd-forget")
Observable<JSONObject> forgetPwd(@Query("phone") String phone,
@Query("verifyCode") String verifyCode, @Query("newPassword") String newPassword);
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<JSONObject> getInfo(@Path("phone") String phone);
/**
* 发送短信验证码
*
* @param phoneNo
* @param phone
* @param type: login、register、alterPwd
* @return
*/
@POST("/app/account/send-pwd-msg")
Observable<JSONObject> loginCode(@Query("phoneNo") String phoneNo);
@GET("/open/sms/ckCode/{phone}")
Observable<BaseBean> code(@Path("phone") String phone,@Query("type") String type);
/**
* 发送重置密码验证码(app)
* 验证验证码
*
* @param phoneNo
* @param phone
* @return
*/
@POST("/app/account/send-reset-pwd-msg")
Observable<JSONObject> resetCode(@Query("phoneNo") String phoneNo);
@GET("/open/verify-sms-code")
Observable<BaseBean> verifyCode(@Query("phone") String phone,
@Query("verifyCode") String verifyCode, @Query("type") String type);
@POST("/app/account/register")
Observable<JSONObject> register(@Query("phoneNo") String phoneNo, @Query("password") String pwd, @Query("code") String code);
/**
* 修改密码(app)
* 激活用户
*
* @param phoneNo
* @param pwd
* @return
*/
@PUT("admin/account/change-pwd")
Observable<JSONObject> modifyPwd(@Query("oldPass") String phoneNo, @Query("newPass") String pwd);
@POST("/open/activation-user")
Observable<JSONObject> activation(@QueryMap Map<String, Object> param);
/**
* 重置密码(app)
* 部门列表
*
* @param phoneNo
* @param pwd
* @return
*/
@PUT("/app/account/reset-pwd")
Observable<JSONObject> resetPwd(@Query("phoneNo") String phoneNo, @Query("password") String pwd);
@POST("/open/sys/dept/list")
Observable<BaseBean> depList();
}
......@@ -6,15 +6,39 @@ package com.wd.workoffice.app;
* github: https://github.com/FlexibleXd
**/
public class BaseBean {
public Integer status;
public String msg;
public Integer code;
public Object data;
private String message;
private int httpStatus;
private String path;
private String ext;
public String getMsg() {
return msg;
public Integer getCode() {
return code;
}
public Object getData() {
return data;
}
public int getHttpStatus() {
return httpStatus;
}
public String getPath() {
return path;
}
public String getExt() {
return ext;
}
public String getMessage() {
return message;
}
public Integer getStatus() {
return status;
return code;
}
}
package com.wd.workoffice.app;
public interface Config {
Boolean DEBUG = false;
Boolean DEBUG = true;
String REGEX_USERNAME = "^[\\w]{4,16}(?<!_)$";
String REGEX_PASSWORD = "^[\\w]{6,16}(?<!_)$";
String APPID = "wx15bd4f8f85329782";
String[] TABLIST = new String[]{"区域", "均价", "首付", "更多"};
......
package com.wd.workoffice.app;
import android.os.Bundle;
import flexible.xd.android_base.base.ToolBarActivity;
import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView;
import me.jessyan.autosize.AutoSize;
/**
* Created by flexible on 2018/6/6.
*/
public abstract class WorkToolBarActivity extends ToolBarActivity {
public abstract class WorkToolBarActivity extends ToolBarActivity implements IBaseView {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
AutoSize.autoConvertDensity(this, 375, true);
}
@Override
public void showLoading() {
isLoad(true);
}
@Override
public void hideLoading() {
isLoad(false);
}
@Override
public void onError(String message) {
toast(message);
}
}
package com.wd.workoffice.bean;
import com.google.gson.annotations.SerializedName;
import com.wd.workoffice.app.BaseBean;
import java.util.List;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class DepBean {
/* createdBy : 1
* createdByName : null
* createdTime : 2019-09-02 10:53:47
* updatedBy : 143
* updatedByName : null
* updatedTime : 2019-10-18 14:38:44
* id : 1
* parentId : 0
* status : 1
* type : null
* typeString : null
* outdeptLedger : {"gk":"","gt":""}
* permission : null
* permissionString : null
* tag : null
* code : CO
* name : 正望钢水股份有限公司
* level : 1
* erpId : CO001
* children : null
* deptRulers : null
* deptRulerList : null
* deptUserList : null
* targetUserOfRuler : null
* deptRulerTotal : null
* gk : null
* gt : null
*/
private int createdBy;
private Object createdByName;
private String createdTime;
private int updatedBy;
private Object updatedByName;
private String updatedTime;
private int id;
private String parentId;
private String status;
private Object type;
private Object typeString;
private String outdeptLedger;
private Object permission;
private Object permissionString;
private Object tag;
private String code;
private String name;
private int level;
private String erpId;
private Object children;
private Object deptRulers;
private Object deptRulerList;
private Object deptUserList;
private Object targetUserOfRuler;
private Object deptRulerTotal;
private Object gk;
private Object gt;
public int getCreatedBy() {
return createdBy;
}
public void setCreatedBy(int createdBy) {
this.createdBy = createdBy;
}
public Object getCreatedByName() {
return createdByName;
}
public void setCreatedByName(Object createdByName) {
this.createdByName = createdByName;
}
public String getCreatedTime() {
return createdTime;
}
public void setCreatedTime(String createdTime) {
this.createdTime = createdTime;
}
public int getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(int updatedBy) {
this.updatedBy = updatedBy;
}
public Object getUpdatedByName() {
return updatedByName;
}
public void setUpdatedByName(Object updatedByName) {
this.updatedByName = updatedByName;
}
public String getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(String updatedTime) {
this.updatedTime = updatedTime;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Object getType() {
return type;
}
public void setType(Object type) {
this.type = type;
}
public Object getTypeString() {
return typeString;
}
public void setTypeString(Object typeString) {
this.typeString = typeString;
}
public String getOutdeptLedger() {
return outdeptLedger;
}
public void setOutdeptLedger(String outdeptLedger) {
this.outdeptLedger = outdeptLedger;
}
public Object getPermission() {
return permission;
}
public void setPermission(Object permission) {
this.permission = permission;
}
public Object getPermissionString() {
return permissionString;
}
public void setPermissionString(Object permissionString) {
this.permissionString = permissionString;
}
public Object getTag() {
return tag;
}
public void setTag(Object tag) {
this.tag = tag;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getErpId() {
return erpId;
}
public void setErpId(String erpId) {
this.erpId = erpId;
}
public Object getChildren() {
return children;
}
public void setChildren(Object children) {
this.children = children;
}
public Object getDeptRulers() {
return deptRulers;
}
public void setDeptRulers(Object deptRulers) {
this.deptRulers = deptRulers;
}
public Object getDeptRulerList() {
return deptRulerList;
}
public void setDeptRulerList(Object deptRulerList) {
this.deptRulerList = deptRulerList;
}
public Object getDeptUserList() {
return deptUserList;
}
public void setDeptUserList(Object deptUserList) {
this.deptUserList = deptUserList;
}
public Object getTargetUserOfRuler() {
return targetUserOfRuler;
}
public void setTargetUserOfRuler(Object targetUserOfRuler) {
this.targetUserOfRuler = targetUserOfRuler;
}
public Object getDeptRulerTotal() {
return deptRulerTotal;
}
public void setDeptRulerTotal(Object deptRulerTotal) {
this.deptRulerTotal = deptRulerTotal;
}
public Object getGk() {
return gk;
}
public void setGk(Object gk) {
this.gk = gk;
}
public Object getGt() {
return gt;
}
public void setGt(Object gt) {
this.gt = gt;
}
}
package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean;
import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBaseView;
import flexible.xd.android_base.mvpBase.IPresenter;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public interface UserRegisterOneContract {
interface Model extends IBaseModel {
Observable<BaseBean> getCode(String phone,String type);
Observable<BaseBean> verifyCode(String phone,String verifyCode,String type);
}
interface View extends IBaseView {
void codeSuccess();
void verifySuccess();
}
interface Presenter extends IPresenter<View> {
void getCode(String phone,String type);
void verifyCode(String phone,String verifyCode,String type);
}
}
package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.DepBean;
import java.util.List;
import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBaseView;
import flexible.xd.android_base.mvpBase.IPresenter;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public interface UserRegisterThreeContract {
interface Model extends IBaseModel {
Observable<BaseBean> register(Map<String,Object> param);
Observable<BaseBean> depList();
}
interface View extends IBaseView {
void registerSuccess();
void depSuccess(List<DepBean> depList);
}
interface Presenter extends IPresenter<View> {
void register(Map<String,Object> param);
void depList();
}
}
package com.wd.workoffice.model;
import com.wd.workoffice.app.ApiService;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.UserRegisterOneContract;
import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class UserRegisterOneModel implements UserRegisterOneContract.Model {
@Override
public Observable<BaseBean> getCode(String phone, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).code(phone, type);
}
@Override
public Observable<BaseBean> verifyCode(String phone, String verifyCode, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).verifyCode(phone, verifyCode, type);
}
public static UserRegisterOneModel newInstance() {
return new UserRegisterOneModel();
}
}
package com.wd.workoffice.model;
import com.wd.workoffice.app.ApiService;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.UserRegisterThreeContract;
import java.util.Map;
import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class UserRegisterThreeModel implements UserRegisterThreeContract.Model {
@Override
public Observable<BaseBean> register(Map<String, Object> param) {
return RtfHelper.getInstance().getApiService(ApiService.class).register(param);
}
@Override
public Observable<BaseBean> depList() {
return RtfHelper.getInstance().getApiService(ApiService.class).depList();
}
public static UserRegisterThreeModel newInstance() {
return new UserRegisterThreeModel();
}
}
package com.wd.workoffice.presenter;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.UserRegisterOneContract;
import com.wd.workoffice.model.UserRegisterOneModel;
import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.network.rtfhttp.observer.BaseObserver;
import io.reactivex.disposables.Disposable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class UserRegisterOnePresenter extends BasePresenter<UserRegisterOneContract.View, UserRegisterOneContract.Model>
implements UserRegisterOneContract.Presenter {
@Override
public UserRegisterOneContract.Model bindModel() {
return UserRegisterOneModel.newInstance();
}
@Override
public void getCode(String phone, String type) {
mView.showLoading();
mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getStatus() != 0) {
mView.onError(data.getMsg());
return;
}
mView.codeSuccess();
}
});
}
@Override
public void verifyCode(String phone, String verifyCode, String type) {
mView.showLoading();
mModel.verifyCode(phone, verifyCode,type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getStatus() != 0) {
mView.onError(data.getMsg());
return;
}
mView.verifySuccess();
}
});
}
}
package com.wd.workoffice.presenter;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.DepBean;
import com.wd.workoffice.contract.UserRegisterThreeContract;
import com.wd.workoffice.model.UserRegisterThreeModel;
import java.util.List;
import java.util.Map;
import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.network.rtfhttp.observer.BaseObserver;
import io.reactivex.disposables.Disposable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class UserRegisterThreePresenter extends BasePresenter<UserRegisterThreeContract.View, UserRegisterThreeContract.Model>
implements UserRegisterThreeContract.Presenter {
@Override
public void register(Map<String, Object> param) {
mView.showLoading();
mModel.register(param).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getStatus() != 0) {
mView.onError(data.getMessage());
return;
}
mView.registerSuccess();
}
});
}
@Override
public void depList() {
mView.showLoading();
mModel.depList().compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getStatus() != 0) {
mView.onError(data.getMessage());
return;
}
mView.depSuccess((List<DepBean>) data.getData());
}
});
}
@Override
public UserRegisterThreeContract.Model bindModel() {
return UserRegisterThreeModel.newInstance();
}
}
......@@ -4,18 +4,18 @@ package com.wd.workoffice.ui.login;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/*
* 正望BAT
* */
public class RegisterFirstActivity extends WorkToolBarActivity {
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class RegisterFirstActivity extends WorkToolBarActivity{
@BindView(R.id.btn_new_user)
Button btnNewUser;
......@@ -24,9 +24,11 @@ public class RegisterFirstActivity extends WorkToolBarActivity {
@BindView(R.id.tv_go_login)
TextView tvGoLogin;
@Override
protected void initView() {
ButterKnife.bind(this);
}
@Override
......@@ -59,4 +61,9 @@ public class RegisterFirstActivity extends WorkToolBarActivity {
break;
}
}
@Override
public void onError(String message) {
}
}
package com.wd.workoffice.ui.login;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.contract.UserRegisterOneContract;
import com.wd.workoffice.presenter.UserRegisterOnePresenter;
import com.wd.workoffice.util.SearchUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.utils.RegexUtils;
import flexible.xd.android_base.utils.ToastUtil;
/*
* 注册bat
* 新用户注册
* */
public class UserRegisterOneActivity extends WorkToolBarActivity {
public class UserRegisterOneActivity extends WorkToolBarActivity implements UserRegisterOneContract.View {
@BindView(R.id.et_phone)
......@@ -31,10 +36,14 @@ public class UserRegisterOneActivity extends WorkToolBarActivity {
Button btnRegister;
@BindView(R.id.tv_go_protocol)
TextView tvGoProtocol;
private UserRegisterOnePresenter registerFirstPresenter;
@Override
protected void initView() {
ButterKnife.bind(this);
registerFirstPresenter = new UserRegisterOnePresenter();
registerFirstPresenter.onAttach(this);
btnRegister.setEnabled(false);
}
@Override
......@@ -44,7 +53,47 @@ public class UserRegisterOneActivity extends WorkToolBarActivity {
@Override
protected void initEvent() {
etPhone.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etCode.getText().toString())) {
btnRegister.setEnabled(true);
} else {
btnRegister.setEnabled(false);
}
}
});
etCode.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etPhone.getText().toString())) {
btnRegister.setEnabled(true);
} else {
btnRegister.setEnabled(false);
}
}
});
}
@Override
......@@ -56,12 +105,40 @@ public class UserRegisterOneActivity extends WorkToolBarActivity {
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_code:
String phone = etPhone.getText().toString();
if (TextUtils.isEmpty(phone) || !RegexUtils.isMobileSimple(phone)) {
toast("请输入正确的手机号");
return;
}
registerFirstPresenter.getCode(phone, "register");
break;
case R.id.btn_register:
startActivity(UserRegisterTwoActivity.class);
String code = etCode.getText().toString();
if (TextUtils.isEmpty(code)) {
toast("请输入验证码");
return;
}
registerFirstPresenter.verifyCode(etPhone.getText().toString(), code, "register");
break;
case R.id.tv_go_protocol:
break;
}
}
@Override
public void onError(String message) {
toast(message);
}
@Override
public void codeSuccess() {
SearchUtils.timerSeckill(tvCode, 60 * 1000, 1000, 0);
ToastUtil.showLong("验证码发送成功,请注意查收!");
}
@Override
public void verifySuccess() {
startActivity(UserRegisterTwoActivity.class, "phone", etPhone.getText().toString(), "code",
etCode.getText().toString());
}
}
package com.wd.workoffice.ui.login;
import android.content.Intent;
import android.os.Bundle;
import android.content.DialogInterface;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.DepBean;
import com.wd.workoffice.contract.UserRegisterThreeContract;
import com.wd.workoffice.presenter.UserRegisterThreePresenter;
import java.util.Arrays;
import java.util.List;
import androidx.appcompat.app.AlertDialog;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
......@@ -19,9 +28,7 @@ import butterknife.OnClick;
/*
* 完善信息
* */
public class UserRegisterThreeActivity extends WorkToolBarActivity {
public class UserRegisterThreeActivity extends WorkToolBarActivity implements UserRegisterThreeContract.View {
@BindView(R.id.et_code)
EditText etCode;
@BindView(R.id.et_name)
......@@ -36,20 +43,62 @@ public class UserRegisterThreeActivity extends WorkToolBarActivity {
EditText etEmail;
@BindView(R.id.btn_submit)
Button btnSubmit;
private UserRegisterThreePresenter userRegisterThreePresenter;
private List<DepBean> depList;
private List<String> depNameList;
private int chooseDep =-1;
@Override
protected void initView() {
ButterKnife.bind(this);
userRegisterThreePresenter = new UserRegisterThreePresenter();
userRegisterThreePresenter.onAttach(this);
btnSubmit.setEnabled(false);
tvPhone.setText(getIntent().getStringExtra("phone"));
}
@Override
protected void initData() {
userRegisterThreePresenter.depList();
}
@Override
protected void initEvent() {
addInputListener(etCode);
addInputListener(tvProductContent);
addInputListener(etEmail);
addInputListener(etName);
}
/**
* 添加监听事件
*
* @param et
*/
private void addInputListener(TextView et) {
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(etEmail.getText().toString()) &&
!TextUtils.isEmpty(etCode.getText().toString()) &&
!TextUtils.isEmpty(etName.getText().toString()) &&
!TextUtils.isEmpty(tvProductContent.getText().toString())) {
btnSubmit.setEnabled(true);
} else {
btnSubmit.setEnabled(false);
}
}
});
}
@Override
......@@ -67,4 +116,30 @@ public class UserRegisterThreeActivity extends WorkToolBarActivity {
break;
}
}
private void initDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String[] stringArray = new String[depNameList.size()];
builder.setItems(depNameList.toArray(stringArray), (dialog, which) -> {
tvProductContent.setText(depNameList.get(which));
chooseDep=which;
});
// normalDialog = builder.setView(dialogView).setPositiveButton("确定", (dialog, which) -> clientPresenter.changeClient(id, status + ""))
// .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()).create();
}
@Override
public void registerSuccess() {
toast("注册成功");
startActivity(LoginActivity.class);
}
@Override
public void depSuccess(List<DepBean> dataList) {
depList = dataList;
for (DepBean dep : dataList) {
depNameList.add(dep.getName());
}
}
}
package com.wd.workoffice.ui.login;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
......@@ -9,11 +10,13 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.wd.workoffice.R;
import com.wd.workoffice.app.Config;
import com.wd.workoffice.app.WorkToolBarActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.utils.RegexUtils;
/*
* 账号密码确认密码
......@@ -30,22 +33,82 @@ public class UserRegisterTwoActivity extends WorkToolBarActivity {
Button btnNext;
@BindView(R.id.tv_go_protocol)
TextView tvGoProtocol;
private Button mNextStep;
private RelativeLayout mSheZhiPassword;
@Override
protected void initView() {
ButterKnife.bind(this);
btnNext.setEnabled(false);
}
@Override
protected void initData() {
}
@Override
protected void initEvent() {
etConfirmPwd.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etName.getText().toString()) &&
!TextUtils.isEmpty(etPwd.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
etName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etConfirmPwd.getText().toString()) &&
!TextUtils.isEmpty(etPwd.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
etPwd.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etName.getText().toString()) &&
!TextUtils.isEmpty(etConfirmPwd.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
}
@Override
......@@ -57,7 +120,25 @@ public class UserRegisterTwoActivity extends WorkToolBarActivity {
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.btn_next:
startActivity(UserRegisterThreeActivity.class);
String name = etName.getText().toString();
String pwd = etPwd.getText().toString();
String confirmPwd = etConfirmPwd.getText().toString();
if(!RegexUtils.isMatch(Config.REGEX_USERNAME,name)){
toast("账号名称数字和字母4-16位");
return;
}
if(!RegexUtils.isMatch(Config.REGEX_USERNAME,name)){
toast("设置密码数字或字母6-16位");
return;
}
if (!TextUtils.equals(pwd, confirmPwd)) {
toast("两次输入的密码不一致");
return;
}
startActivity(UserRegisterThreeActivity.class,
"phone",getIntent().getStringExtra("phone"),
"code",getIntent().getStringExtra("code")
,"name",name,"pwd",pwd);
break;
case R.id.tv_go_protocol:
break;
......
......@@ -8,20 +8,20 @@
<solid android:color="#ffebebeb" />
</shape>
</item>
<item android:state_pressed="true">
<item android:state_pressed="true" android:drawable="@mipmap/btn_main_bg">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 圆角弧度-->
<corners android:radius="4dp" />
<!-- 填充的颜色 -->
<solid android:color="#602F89FC" />
<!--<solid android:color="@mipmap/btn_main_bg" />-->
</shape>
</item>
<item android:state_pressed="false">
<item android:state_pressed="false" android:drawable="@mipmap/btn_main_bg">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 圆角弧度-->
<corners android:radius="4dp" />
<!-- 填充的颜色 -->
<solid android:color="#2F89FC" />
<!--<solid android:color="@mipmap/btn_main_bg" />-->
</shape>
</item>
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#e9eadede"/>
<solid android:color="#DCDEDF"/>
<corners android:radius="10dp"/>
</shape>
\ No newline at end of file
......@@ -249,6 +249,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="20mm"
android:text="没有账号立即注册?"
android:padding="5mm"
android:textColor="@color/mainTextColor"
android:textSize="12sp"
android:textStyle="bold" />
......
......@@ -14,8 +14,9 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="70mm"
android:layout_marginTop="170mm"
android:layout_centerHorizontal="true"
android:textStyle="bold"
android:text="新用户注册"
android:textColor="@color/mainTextColor"
android:textSize="28sp" />
......@@ -24,7 +25,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="50mm"
android:layout_marginBottom="70mm"
android:layout_alignParentBottom="true">
<LinearLayout
......@@ -56,9 +57,10 @@
android:layout_centerVertical="true"
android:layout_marginLeft="10mm"
android:layout_weight="1"
android:inputType="phone"
android:background="@null"
android:hint="输入手机号"
android:textSize="12sp" />
android:textSize="13sp" />
</LinearLayout>
......@@ -85,13 +87,14 @@
android:background="@null"
android:gravity="center_vertical"
android:hint="输入验证码"
android:inputType="textPassword"
android:inputType="number"
android:textColorHint="@color/flexible_text_sup"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_code"
android:layout_width="70mm"
android:layout_width="wrap_content"
android:paddingHorizontal="10mm"
android:layout_height="match_parent"
android:gravity="center"
android:text="获取验证码"
......@@ -105,8 +108,8 @@
android:layout_width="match_parent"
android:layout_height="50mm"
android:layout_marginHorizontal="58mm"
android:layout_marginTop="80mm"
android:background="@mipmap/btn_main_bg"
android:layout_marginTop="60mm"
android:background="@drawable/selector_btn"
android:text="注册"
android:textColor="@color/white"
android:textSize="20sp" />
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论