Commit 5a359247 by 罗翻

增加个人资料和修改头像页面

parent 875973da
Showing with 688 additions and 127 deletions
......@@ -21,7 +21,8 @@ public class Constants {
/***********************测试环境配置**********************************/
public static final int DEBUGLEVEL = LogUtils.LEVEL_ALL;
public static final String BASE_URL = "http://47.94.101.239:3112";
// public static final String BASE_URL = "http://47.94.101.239:3112";
public static final String BASE_URL = "http://192.168.1.136:3112";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public static final boolean UM_DEBUG = true;
......@@ -35,38 +36,81 @@ public class Constants {
// public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public static final boolean UM_DEBUG = false;
/*****************/
/**
* 登录.
*/
public static final String LOGIN_URL = "/check";
//登录时发送验证码的URL
/**
* 登录时发送验证码
*/
public static final String REGISTER_URL = "/api-user/" + "account/loginSms/{telephone}/type/{type}";
//异常单获取
/**
* 修改用户信息.
*/
public static final String MODIFY_USER_INFO = "/api-user/" + "auditInfo/accountReAuthenticate";
/**
* 修改用户头像.
*/
public static final String MODIFY_USER_HEADER = "/api-user/" + "/account/modifyHeadURL";
/**
* 异常单获取.
*/
public static final String ERROR_ORDER = "/api-order/" + "orders/findExceptionSimpleOrderVO";
//工程师接单
/**
* 工程师接单.
*/
public static final String ORDER_RECEIVING = "/api-order/" + "orders/{orderId}/engineer/{engineerId}";
//再次上门、重新预约时间
/**
* 重新预约时间.
*/
public static final String SUBCRIBE_TIME = "/api-order/" + "orders/bespeakDoor";
//开始出发
/**
* 开始出发.
*/
public static final String START_ORDER = "/api-order/" + "orders/onWayUpgrade";
//开始服务
/**
* 开始服务.
*/
public static final String START_SERVE = "/api-order/" + "orders/onWorkingUpgrade";
//工单详情信息,包含评价,投诉,服务记录
/**
* 工单详情信息,包含评价,投诉,服务记录.
*/
public static final String ORDER_DETAILS = "/api-order/" + "orders/{orderId}/detail";
//工单完成,提交验收报告
/**
* 工单完成,提交验收报告.
*/
public static final String ORDER_FINISH = "/api-order/" + "orders/waitCustomerCheckUpgrade";
//个人中心
/**
* 获取工程师信息.
*/
public static final String PERSONAL_CENTER = "/api-user/" + "engineerInfo/accountId/{accountId}";
//个人中心,今日收益
/**
* 工程师今日收益.
*/
public static final String PERSONAL_ACOUNT_BALANCE = "/api-settlement/" + "payAccount/queryAccountBalanceAndtodayIncrease/accountId/{accountId}";
//账户余额
/**
* 工程师账户余额.
*/
public static final String PERSONAL_ACCOUT_LIST = "/api-settlement/" + "payStream/queryPayStream/";
//绑定支付宝账号
/**
* 绑定支付宝账号.
*/
public static final String PERSONAL_ALIPAY_BOUND = "/api-settlement/" + "alipay/save";
//查询支付宝账号
/**
* 查询支付宝账号.
*/
public static final String PERSONAL_ALIPAY_QUERY = "/api-settlement/" + "alipay/queryAlipayByAccountId/accountId/{accountId}";
//修改支付宝账号
/**
* 修改支付宝账号.
*/
public static final String PERSONAL_ALIPAY_MODIFY = "/api-settlement/" + "alipay/modifyAlipay";
//单表查询工单记录
/**
* 单表查询工单记录.
*/
public final static String SELECT_ORDER_LITTLE = "/api-order/" + "orders/{accountId}";
//根据工程师id和工程师id获取今日业绩(今日收益)
/**
* 根据工程师id和工程师id获取今日业绩(今日收益).
*/
public final static String USER_ORDER_REVENUE = "/api-count/" + "ordersStatistics/income/siteId/{siteId}/engineerId/{engineerId}";
//服务记录、工程师评价
public final static String USER_REVENUE = "/api-count/" + "ordersStatistics/total/siteId/{siteId}/engineerId/{engineerId}";
......@@ -86,7 +130,6 @@ public class Constants {
public final static String MESSAGE_HX_LIST = "/api-message/hXMessage/hxAccount/{hxAccount}/category/{category}";
//获取消息数量
public final static String MESSAGE_NUM = " /api-message/" + "hXMessage/count/hxAccount/{hxAccount}";
......@@ -124,4 +167,11 @@ public class Constants {
//设置通知提醒按钮状态
public final static String MESSAGE_STATE = "message_state";
/**
* 使base类不弹出提示.
*/
public final static String NOT_SHOW = "not_show";
public final static String PICURL = "pic_url";
public final static String ENGINEERINFO = "engineer_info";
}
......@@ -59,6 +59,16 @@ public interface APIService {
Observable<BaseResponse<Boolean>> sendCode(@Path("telephone") String telephone, @Path("type") int type);
/**
* 修改头像.
*
* @param accoutId
* @param headURL
* @return
*/
@PUT(Constants.MODIFY_USER_HEADER)
Observable<BaseResponse<Boolean>> modifyHead(@Query("accountId") int accoutId, @Query("headURL") String headURL);
/**
* 上传版本信息
*
* @return
......@@ -313,8 +323,11 @@ public interface APIService {
@PUT(Constants.MESSAGE_HX)
Observable<BaseResponse<Boolean>> readMessage(@Body RequestBody body);
@PUT(Constants.MODIFY_USER_INFO)
Observable<BaseResponse<Boolean>> modifyUserInfo(@Body RequestBody body);
/**
* 上传图片.
* 上传图片多张.
*
* @param partMap
* @return
......@@ -324,6 +337,16 @@ public interface APIService {
Observable<BaseResponse<List<String>>> uploadPhoto(
@Part MultipartBody.Part[] partMap);
/**
* 上传图片单张.
*
* @param part
* @return
*/
@Multipart
@POST(Constants.UP_PHOTO)
Observable<BaseResponse<List<String>>> uploadPhoto(
@Part MultipartBody.Part part);
@Streaming
@GET
......
......@@ -144,7 +144,7 @@ public class Api {
UserInfo userInfo = UserManager.getInstance().getUser(MyApplication.getContext());
if (userInfo != null) {
String token = userInfo.getToken();
if (!TextUtils.isEmpty(token)) {
if (!TextUtils.isEmpty(token) && !request.url().toString().contains(Constants.BASE_URL + Constants.LOGIN_URL)) {
request = request.newBuilder()
.header("token", token)
.build();
......
package com.dayu.bigfish.api;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
......@@ -46,52 +47,80 @@ public class ServerException extends Exception {
break;
/** 用户相关错误*/
case "USER0002":
message = MyApplication.getContext().getString(R.string.sms_code_unsend_or_expire);
break;
case "USER0004":
message = MyApplication.getContext().getString(R.string.not_engineer);
break;
case "USER0005":
message = MyApplication.getContext().getString(R.string.account_frozen);
break;
case "USER0020":
message = MyApplication.getContext().getString(R.string.sms_code_unsend_or_expire);
break;
case "USER0021":
message = MyApplication.getContext().getString(R.string.sms_code_error);
break;
case "USER0023":
message = MyApplication.getContext().getString(R.string.engineer_acount_notavialibe);
break;
case "USER0024":
message = MyApplication.getContext().getString(R.string.engineer_not_have_site);
break;
/** 账户相关*/
case "SETTLEMENT0015":
message = MyApplication.getContext().getString(R.string.not_show);
message = Constants.NOT_SHOW;
break;
case "SETTLEMENT0001":
message = MyApplication.getContext().getString(R.string.perameter_is_null);
break;
/**全局错误*/
case "GLOBAL0001":
message = "未知错误GLOBAL0001";
message = "未知错误GLOBAL0001"; //参数错误
break;
case "GLOBAL0002":
message = "未知错误GLOBAL0002";
message = "未知错误GLOBAL0002"; //格式化序列化错误
break;
case "GLOBAL0003":
message = "未知错误GLOBAL0003";
message = "未知错误GLOBAL0003"; //业务错误
break;
case "GLOBAL0004":
message = "未知错误GLOBAL0004";
message = "未知错误GLOBAL0004"; //全局错误
break;
case "GLOBAL0100":
message = "未知错误GLOBAL0100"; //远程调用失败
break;
case "GLOBAL0101":
message = "未知错误GLOBAL0101"; //短信验证失败
break;
case "GLOBAL0102":
message = "未知错误GLOBAL0102"; // unknowable error type
break;
case "GLOBAL0400":
message = "未知错误GLOBAL0400";
message = "未知错误GLOBAL0400"; //Bad Request!
break;
case "GLOBAL0406":
message = "未知错误GLOBAL0406";
message = "未知错误GLOBAL0406"; //not Acceptable
break;
case "GLOBAL0405":
message = "未知错误GLOBAL0405"; //Method Not Allowed
break;
case "GLOBAL1001":
message = "未知错误GLOBAL1001";
message = "未知错误GLOBAL1001"; //空指针异常
break;
case "GLOBAL1002":
message = "未知错误GLOBAL1002";
message = "未知错误GLOBAL1002"; //类型转换异
break;
case "GLOBAL1003":
message = "未知错误GLOBAL1003";
message = "未知错误GLOBAL1003"; //IO异常
break;
case "GLOBAL1004":
message = "未知错误GLOBAL1004";
message = "未知错误GLOBAL1004"; //未知方法异
break;
case "GLOBAL1005":
message = "未知错误GLOBAL1005";
message = "未知错误GLOBAL1005"; //数据越界异
break;
default:
message = MyApplication.getContext().getString(R.string.get_info_failed);
......
......@@ -18,7 +18,6 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi
public P mPresenter;
protected CompositeDisposable mDisposable = new CompositeDisposable();
@Override
protected void initPresenter() {
super.initPresenter();
......
......@@ -133,9 +133,9 @@ public abstract class BasePresenter<V> {
}
return exception;
}
if (!"not_show".equals(message) && mView instanceof BaseActivity) {
if (!Constants.NOT_SHOW.equals(message) && mView instanceof BaseActivity) {
((BaseActivity) mView).showToast(message);
} else if (!"not_show".equals(message) && mView instanceof BaseFragment) {
} else if (!Constants.NOT_SHOW.equals(message) && mView instanceof BaseFragment) {
((BaseFragment) mView).showToast(message);
}
return exception;
......@@ -156,13 +156,10 @@ public abstract class BasePresenter<V> {
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity.startActivity(Intents);
} else {
}
dialog.dismiss();
});
mDialog.setTitle(getString(R.string.notice))
.setNegativeButton(getString(R.string.cancle))
.setPositiveButton(getString(R.string.login_again))
.setOneButton(true);
mDialog.show();
......@@ -183,6 +180,7 @@ public abstract class BasePresenter<V> {
mActivity.startActivity(new Intent(mActivity, clz));
}
/**
* 跳转页面
*
......@@ -202,6 +200,15 @@ public abstract class BasePresenter<V> {
*
* @param clz 所跳转的目的Activity类
*/
public void startActivityForReult(Class<?> clz, int requestCode) {
mActivity.startActivityForResult(new Intent(mActivity, clz), requestCode);
}
/**
* 跳转页面
*
* @param clz 所跳转的目的Activity类
*/
public void startActvityAndFinish(Class<?> clz) {
mActivity.startActivity(new Intent(mActivity, clz));
mActivity.finish();
......
package com.dayu.bigfish.bean;
import android.databinding.BaseObservable;
import android.databinding.Bindable;
import com.dayu.bigfish.BR;
import java.io.Serializable;
/**
* Created by luofan on 2017/11/14.
*/
public class EngineerInfo {
public class EngineerInfo extends BaseObservable implements Serializable {
/**
* id : 30
* accountId : 115
* realName : 工程师
* identity : 110200198802021561
* identityUrl : null
* mIdentityUrl : null
* accountUrl : null
* aduitStatus : 2
* auditStatus : 2
* createTime : null
* created : null
* updateTime : null
......@@ -31,9 +38,9 @@ public class EngineerInfo {
private int accountId;
private String realName;
private String identity;
private Object identityUrl;
private Object accountUrl;
private int aduitStatus;
private String identityUrl;
private String accountUrl;
private int auditStatus;
private Object createTime;
private Object created;
private Object updateTime;
......@@ -62,45 +69,49 @@ public class EngineerInfo {
public void setAccountId(int accountId) {
this.accountId = accountId;
}
@Bindable
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
notifyPropertyChanged(BR.realName);
}
@Bindable
public String getIdentity() {
return identity;
}
public void setIdentity(String identity) {
this.identity = identity;
notifyPropertyChanged(BR.identity);
}
public Object getIdentityUrl() {
@Bindable
public String getIdentityUrl() {
return identityUrl;
}
public void setIdentityUrl(Object identityUrl) {
public void setIdentityUrl(String identityUrl) {
this.identityUrl = identityUrl;
notifyPropertyChanged(BR.identityUrl);
}
public Object getAccountUrl() {
@Bindable
public String getAccountUrl() {
return accountUrl;
}
public void setAccountUrl(Object accountUrl) {
public void setAccountUrl(String accountUrl) {
this.accountUrl = accountUrl;
notifyPropertyChanged(BR.accountUrl);
}
public int getAduitStatus() {
return aduitStatus;
return auditStatus;
}
public void setAduitStatus(int aduitStatus) {
this.aduitStatus = aduitStatus;
this.auditStatus = aduitStatus;
}
public Object getCreateTime() {
......@@ -150,13 +161,14 @@ public class EngineerInfo {
public void setAge(int age) {
this.age = age;
}
@Bindable
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
notifyPropertyChanged(BR.mobile);
}
public Object getSiteId() {
......
......@@ -28,6 +28,7 @@ public class UserInfo {
private String hxAccount;
private String hxPwd;
private String token;
private int status;
public String getHxAccount() {
return hxAccount;
......@@ -84,4 +85,12 @@ public class UserInfo {
public void setToken(String token) {
this.token = token;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
......@@ -9,6 +9,9 @@ import com.dayu.bigfish.R;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.ui.AgreementActivity;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.bigfish.ui.PersonInfoActivity;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.bigfish.utils.UtilsUserAccountMatcher;
import com.dayu.bigfish.utils.managers.UserManager;
import com.hyphenate.EMCallBack;
......@@ -16,6 +19,8 @@ import com.hyphenate.chat.EMClient;
import io.reactivex.functions.Consumer;
import static com.dayu.bigfish.utils.UIUtils.getString;
/**
* Created by luofan on 2017/11/8.
*/
......@@ -72,10 +77,18 @@ public class LoginPresenter extends LoginContract.Presenter {
ApiFactory.login(userName.get(), password.get()).subscribe(baseObserver(new Consumer<UserInfo>() {
@Override
public void accept(UserInfo userInfo) throws Exception {
if (userInfo.getStatus() == 1) {
loginHx(userInfo.getHxAccount(), userInfo.getHxPwd());
dumpAndSave(userInfo);
} else if (userInfo.getStatus() == 2) {
ToastUtils.showShortToast(R.string.engineer_identity_auditing);
UserManager.getInstance().saveUser(mActivity, userInfo);
} else if (userInfo.getStatus() == 3) {
showLoginDialog();
UserManager.getInstance().saveUser(mActivity, userInfo);
}
}
}, throwable -> mView.showToast(R.string.login_faile)));
}));
}
@Override
......@@ -99,6 +112,20 @@ public class LoginPresenter extends LoginContract.Presenter {
}
}
private void showLoginDialog() {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.engineer_identity_not_audite)
, (dialog, confirm) -> {
if (confirm) {
startActivity(PersonInfoActivity.class);
}
dialog.dismiss();
});
customDialog.setTitle(getString(R.string.identity_not_audite))
.setPositiveButton(getString(R.string.submit_again))
.setOneButton(true);
customDialog.show();
}
@Override
public void dumpAndSave(UserInfo info) {
UserManager.getInstance().saveUser(mActivity, info);
......
package com.dayu.bigfish.presenter.modifyperson;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.bigfish.ui.views.CustomDialog;
/**
* Created by luo on 2016/8/4.
*/
public interface ModifyPersonContract {
interface View extends BaseView {
void showPicDialog();
void showTip();
void showSubmiteDialog(CustomDialog.OnCloseListener listener);
}
abstract class Presenter extends BasePresenter<View> {
public abstract void showPicDialog();
public abstract void showSubmiteDialog();
public abstract void deletePic();
public abstract void uploadPic(String path);
public abstract void modifyUserInfo(String realName, String identity, String identityUrl);
}
}
package com.dayu.bigfish.presenter.modifyperson;
import android.databinding.ObservableField;
import android.os.Bundle;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.apt.ApiFactory;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.bean.EngineerInfo;
import org.json.JSONObject;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import io.reactivex.functions.Consumer;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
* Created by luofan on 2017/11/14.
*/
@InstanceFactory
public class ModifyPersonPresenter extends ModifyPersonContract.Presenter {
public ObservableField<String> realName = new ObservableField<>();
public ObservableField<String> identity = new ObservableField<>();
public ObservableField<String> mIdentityUrl = new ObservableField<>("");
private String mIvPath;
private EngineerInfo mInfo;
@Override
public void onAttached() {
Bundle bundle = mActivity.getIntent().getBundleExtra(Constants.BUNDLE);
mInfo = (EngineerInfo) bundle.getSerializable(Constants.ENGINEERINFO);
if (mInfo != null) {
mIvPath = mInfo.getIdentityUrl();
realName.set(mInfo.getRealName());
identity.set(mInfo.getIdentity());
mIdentityUrl.set(mIvPath);
}
}
@Override
public void showPicDialog() {
mView.showPicDialog();
}
@Override
public void showSubmiteDialog() {
if (TextUtils.isEmpty(realName.get())) {
mView.showToast(R.string.name_not_empty);
return;
}
if (TextUtils.isEmpty(identity.get())) {
mView.showToast(R.string.identity_not_empty);
return;
}
if (TextUtils.isEmpty(mIdentityUrl.get())) {
mView.showToast(R.string.identityurl_not_empty);
return;
}
mView.showSubmiteDialog((dialog, confirm) -> {
if (confirm) {
uploadPic(mIdentityUrl.get());
}
dialog.dismiss();
});
}
@Override
public void deletePic() {
mIdentityUrl.set("");
}
@Override
public void uploadPic(String path) {
File file = new File(path);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("fileUpload", file.getName(), requestFile);
mView.showDialog();
ApiFactory.uploadPhoto(body).subscribe(baseObserver(new Consumer<List<String>>() {
@Override
public void accept(List<String> list) throws Exception {
if (list != null && list.size() > 0) {
modifyUserInfo(realName.get(), identity.get(), list.get(0));
} else {
mView.showToast("修改头像失败");
}
}
}));
}
@Override
public void modifyUserInfo(String realName, String identity, String identityUrl) {
HashMap<String, Object> params = new HashMap<>();
params.put("accountId", mInfo.getAccountId());
params.put("realName", realName);
params.put("identity", identity);
params.put("mIdentityUrl", identityUrl);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ApiFactory.modifyUserInfo(body).subscribe(baseObserver(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
mView.showTip();
}
}));
}
}
package com.dayu.bigfish.presenter.myhead;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
/**
* Created by luo on 2016/8/4.
*/
public interface MyHeadContract {
interface View extends BaseView {
void showPicDialog();
}
abstract class Presenter extends BasePresenter<View> {
public abstract void uploadPic(String path);
public abstract void modifyHead(String path);
}
}
package com.dayu.bigfish.presenter.myhead;
import android.databinding.ObservableField;
import com.app.annotation.apt.InstanceFactory;
import com.apt.ApiFactory;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.utils.managers.UserManager;
import com.luck.picture.lib.tools.PictureFileUtils;
import java.io.File;
import java.util.List;
import io.reactivex.functions.Consumer;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
* Created by luofan on 2017/11/14.
*/
@InstanceFactory
public class MyHeadPresenter extends MyHeadContract.Presenter {
public ObservableField<String> headUrl = new ObservableField<>();
private UserInfo mUserInfo;
private int mAccountId;
@Override
public void onAttached() {
mUserInfo = UserManager.getInstance().getUser(mActivity);
mAccountId = Integer.parseInt(mUserInfo.getAccountId());
headUrl.set(mUserInfo.getHeaderImg());
}
@Override
public void uploadPic(String path) {
File file = new File(path);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("fileUpload", file.getName(), requestFile);
mView.showDialog();
ApiFactory.uploadPhoto(body).subscribe(baseObserver(new Consumer<List<String>>() {
@Override
public void accept(List<String> list) throws Exception {
if (list != null && list.size() > 0) {
modifyHead(list.get(0));
} else {
mView.showToast("修改头像失败");
}
}
}));
}
@Override
public void modifyHead(String path) {
ApiFactory.modifyHead(mAccountId, path).subscribe(baseObserver(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
headUrl.set(path);
PictureFileUtils.deleteCacheDirFile(mActivity);
}
}));
}
}
......@@ -18,5 +18,8 @@ public interface PersonInfoContract {
public abstract void dumpToHeader();
public abstract void dumpToModifyPerson();
public abstract void queryInfo(int accountId);
}
}
package com.dayu.bigfish.presenter.personinfo;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.apt.ApiFactory;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.bean.EngineerInfo;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.ui.ModifyPersonInfoActivity;
import com.dayu.bigfish.ui.MyHeaderIvActivity;
import com.dayu.bigfish.utils.managers.UserManager;
import io.reactivex.functions.Consumer;
/**
* Created by luofan on 2017/11/14.
*/
@InstanceFactory
public class PersonInfoPresenter extends PersonInfoContract.Presenter {
public ObservableField<EngineerInfo> info = new ObservableField<>();
private int mAccountId;
@Override
public void onAttached() {
UserInfo info = UserManager.getInstance().getUser(mActivity);
mAccountId = Integer.parseInt(info.getAccountId());
mView.showDialog();
queryInfo(mAccountId);
}
@Override
public void dumpToHeader() {
startActivity(MyHeaderIvActivity.class);
startActivityForReult(MyHeaderIvActivity.class, 1);
}
@Override
public void dumpToModifyPerson() {
startActivity(ModifyPersonInfoActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable(Constants.ENGINEERINFO, info.get());
startActivity(ModifyPersonInfoActivity.class, bundle);
}
@Override
public void queryInfo(int accountId) {
ApiFactory.getEngineerInfo(accountId).subscribe(baseObserver(new Consumer<EngineerInfo>() {
@Override
public void accept(EngineerInfo engineerInfo) throws Exception {
info.set(engineerInfo);
}
}));
}
}
......@@ -18,6 +18,7 @@ import com.dayu.bigfish.greendao.GreenDaoManager;
import com.dayu.bigfish.greendao.OrderInfoDao;
import com.dayu.bigfish.ui.SopWebViewActivity;
import com.dayu.bigfish.utils.managers.UserManager;
import com.luck.picture.lib.tools.PictureFileUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.greendao.query.Query;
......@@ -153,7 +154,7 @@ public class ProcessOrderPresenter extends ProcessOrderContract.Presenter {
}
EventBus.getDefault().post(new OrderState(status, mPosition));
mOrderInfoDao.deleteByKey((long) orderId);
// PictureFileUtils.deleteCacheDirFile(mActivity);
PictureFileUtils.deleteCacheDirFile(mActivity);
mActivity.finish();
}
}));
......@@ -183,7 +184,7 @@ public class ProcessOrderPresenter extends ProcessOrderContract.Presenter {
mAccountId, isPay, info.getDoorPrice(), info.getOtherInfo(),
info.getServerPrice(), info.getMaterialCost(), info.getOtherPrice());
mImages.clear();
// PictureFileUtils.deleteCacheDirFile(mActivity);
PictureFileUtils.deleteCacheDirFile(mActivity);
}
}));
}
......
......@@ -22,7 +22,6 @@ public class LoginActivity extends BaseActivity<LoginPresenter, LoginBinding> im
@Override
public void initView() {
}
@Override
......
......@@ -2,12 +2,14 @@ package com.dayu.bigfish.ui;
import android.content.Intent;
import android.os.Environment;
import android.view.View;
import android.text.TextUtils;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.ActivityModifyPersonActivityBinding;
import com.dayu.bigfish.utils.GlideImageLoader;
import com.dayu.bigfish.presenter.modifyperson.ModifyPersonPresenter;
import com.dayu.bigfish.presenter.modifyperson.ModifyPersonContract;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.ToastUtils;
import com.luck.picture.lib.PictureSelectionModel;
import com.luck.picture.lib.PictureSelector;
......@@ -16,15 +18,13 @@ import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan on 2017/12/25.
*/
public class ModifyPersonInfoActivity extends DataBindingActivity<ActivityModifyPersonActivityBinding> {
private List<LocalMedia> mSelectList;
public class ModifyPersonInfoActivity extends BaseActivity<ModifyPersonPresenter, ActivityModifyPersonActivityBinding> implements ModifyPersonContract.View {
@Override
public int getLayoutId() {
......@@ -33,18 +33,12 @@ public class ModifyPersonInfoActivity extends DataBindingActivity<ActivityModify
@Override
public void initView() {
mSelectList = new ArrayList<>();
mBind.ivAdd.setOnClickListener(v -> showPicDialog());
mBind.titleBack.setOnClickListener(v -> finish());
mBind.ivDelete.setOnClickListener(v -> {
mBind.rlHeader.setVisibility(View.GONE);
mBind.tvPicNum.setText(getString(R.string.commite_pic_zero));
mSelectList.clear();
});
}
@Override
public void showPicDialog() {
if (mSelectList.size() == 1) {
if (!TextUtils.isEmpty(mPresenter.mIdentityUrl.get())) {
ToastUtils.showShortToast(R.string.one_pic_most);
return;
}
......@@ -71,6 +65,31 @@ public class ModifyPersonInfoActivity extends DataBindingActivity<ActivityModify
selector.forResult(PictureConfig.CHOOSE_REQUEST);
}
@Override
public void showTip() {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.audite_tip)
, (dialog, confirm) -> {
if (confirm) {
finish();
}
dialog.dismiss();
});
customDialog.setTitle(getString(R.string.audite_tip_title))
.setPositiveButton(getString(R.string.iknown))
.setOneButton(true);
customDialog.show();
}
@Override
public void showSubmiteDialog(CustomDialog.OnCloseListener listener) {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.audite_tip_submite)
, listener);
customDialog.setTitle(getString(R.string.audite_tip_submite_title))
.setNegativeButton(getString(R.string.think_again))
.setPositiveButton(getString(R.string.comfirm));
customDialog.show();
}
private String getPath() {
String path = Environment.getExternalStorageDirectory() + "/dayu/image/";
File file = new File(path);
......@@ -86,12 +105,10 @@ public class ModifyPersonInfoActivity extends DataBindingActivity<ActivityModify
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
mSelectList = PictureSelector.obtainMultipleResult(data);
if (mSelectList != null) {
for (int a = 0; a < mSelectList.size(); a++) {
GlideImageLoader.load(mActivity, mSelectList.get(a).getCompressPath(), mBind.ivHeader);
mBind.rlHeader.setVisibility(View.VISIBLE);
mBind.tvPicNum.setText(getString(R.string.commite_pic_one));
List<LocalMedia> list = PictureSelector.obtainMultipleResult(data);
if (list != null) {
for (int a = 0; a < list.size(); a++) {
mPresenter.mIdentityUrl.set(list.get(a).getCutPath());
}
}
break;
......
......@@ -3,10 +3,12 @@ package com.dayu.bigfish.ui;
import android.content.Intent;
import android.os.Environment;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.MyHeaderActivityBinding;
import com.dayu.bigfish.utils.GlideImageLoader;
import com.dayu.bigfish.presenter.myhead.MyHeadContract;
import com.dayu.bigfish.presenter.myhead.MyHeadPresenter;
import com.luck.picture.lib.PictureSelectionModel;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
......@@ -21,7 +23,7 @@ import java.util.List;
* Created by luofan on 2017/12/25.
*/
public class MyHeaderIvActivity extends DataBindingActivity<MyHeaderActivityBinding> {
public class MyHeaderIvActivity extends BaseActivity<MyHeadPresenter, MyHeaderActivityBinding> implements MyHeadContract.View {
private List<LocalMedia> mSelectList;
......@@ -34,7 +36,7 @@ public class MyHeaderIvActivity extends DataBindingActivity<MyHeaderActivityBind
public void initView() {
mSelectList = new ArrayList<>();
mBind.tvRightTitle.setOnClickListener(v -> showPicDialog());
mBind.titleBack.setOnClickListener(v -> finish());
mBind.titleBack.setOnClickListener(v -> dumpBack());
}
public void showPicDialog() {
......@@ -53,7 +55,7 @@ public class MyHeaderIvActivity extends DataBindingActivity<MyHeaderActivityBind
.hideBottomControls(true)// 是否显示uCrop工具栏,默认不显示 true or false
.compressSavePath(getPath())//压缩图片保存地址
.previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
// .minimumCompressSize(100)// 小于100kb的图片不压缩
.minimumCompressSize(100)// 小于100kb的图片不压缩
.synOrAsy(true)//同步true或异步false 压缩 默认同步、
.enableCrop(true)//是否裁剪
.withAspectRatio(1, 1)
......@@ -71,6 +73,18 @@ public class MyHeaderIvActivity extends DataBindingActivity<MyHeaderActivityBind
}
@Override
public void onBackPressed() {
dumpBack();
}
public void dumpBack() {
Intent intent = new Intent();
intent.putExtra(Constants.PICURL, mPresenter.headUrl.get());
setResult(1, intent);
finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
......@@ -79,7 +93,7 @@ public class MyHeaderIvActivity extends DataBindingActivity<MyHeaderActivityBind
mSelectList = PictureSelector.obtainMultipleResult(data);
if (mSelectList != null) {
for (int a = 0; a < mSelectList.size(); a++) {
GlideImageLoader.load(mActivity, mSelectList.get(a).getCompressPath(), mBind.ivHeader);
mPresenter.uploadPic(mSelectList.get(a).getCutPath());
}
}
break;
......
package com.dayu.bigfish.ui;
import android.content.Intent;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.ActivityPersonInfoBinding;
import com.dayu.bigfish.presenter.personinfo.PersonInfoContract;
import com.dayu.bigfish.presenter.personinfo.PersonInfoPresenter;
public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, ActivityPersonInfoBinding> implements PersonInfoContract.View{
public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, ActivityPersonInfoBinding> implements PersonInfoContract.View {
@Override
public int getLayoutId() {
......@@ -17,4 +20,13 @@ public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, Activi
public void initView() {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && data != null) {
String url = data.getStringExtra(Constants.PICURL);
mPresenter.info.get().setAccountUrl(url);
}
}
}
......@@ -82,6 +82,11 @@ public class HomePersonFragment extends BaseFragment<HomePersonPresenter, Fragme
} else {
mBind.tvSex.setText(mActivity.getString(R.string.unknown));
}
if (info.getAduitStatus() == 1) {
mBind.ivAudited.setBackgroundResource(R.mipmap.icon_authentication);
} else {
mBind.ivAudited.setBackgroundResource(R.mipmap.icon_authentication);
}
mBind.tvAge.setText(info.getAge() + mActivity.getString(R.string.age));
mUserPhone = info.getMobile();
mBind.tvPhone.setText(mUserPhone);
......
......@@ -13,8 +13,7 @@ import com.dayu.bigfish.R;
* Created by luofan on 2017/11/10.
*/
public class
CustomDialog extends Dialog implements View.OnClickListener {
public class CustomDialog extends Dialog implements View.OnClickListener {
private TextView contentTxt;
private TextView titleTxt;
private TextView submitTxt;
......@@ -27,6 +26,7 @@ CustomDialog extends Dialog implements View.OnClickListener {
private String negativeName;
private String title;
private boolean flag;
private View line;
public CustomDialog(Context context) {
super(context);
......@@ -83,6 +83,7 @@ CustomDialog extends Dialog implements View.OnClickListener {
private void initView() {
contentTxt = (TextView) findViewById(R.id.content);
titleTxt = (TextView) findViewById(R.id.title);
line = findViewById(R.id.v_line);
submitTxt = (TextView) findViewById(R.id.submit);
submitTxt.setOnClickListener(this);
cancelTxt = (TextView) findViewById(R.id.cancel);
......@@ -101,6 +102,7 @@ CustomDialog extends Dialog implements View.OnClickListener {
titleTxt.setText(title);
}
if (flag) {
line.setVisibility(View.GONE);
cancelTxt.setVisibility(View.GONE);
}
......
......@@ -61,7 +61,8 @@ public class UserManager {
if (userInfo != null) {
//有数据
if ((!TextUtils.isEmpty(userInfo.getAccountId())) && (!TextUtils.isEmpty(userInfo.getSiteId()))
&& (!TextUtils.isEmpty(userInfo.getHxAccount()) && (!TextUtils.isEmpty(userInfo.getHxPwd())))) {
&& (!TextUtils.isEmpty(userInfo.getHxAccount()) && (!TextUtils.isEmpty(userInfo.getHxPwd()))
&& userInfo.getStatus() == 1)) {
return true;
} else {
return false;
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="@dimen/dp_8"
android:bottomRightRadius="@dimen/dp_8" />
<solid android:color="#f0f0f0" />
</shape>
\ No newline at end of file
......@@ -3,6 +3,11 @@
<data>
<variable
name="presenter"
type="com.dayu.bigfish.presenter.modifyperson.ModifyPersonPresenter" />
<import type="android.view.View" />
</data>
<LinearLayout
......@@ -28,11 +33,13 @@
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back" />
style="@style/title_image_back"
android:onClick="@{()->presenter.dumpBack()}" />
<TextView
android:id="@+id/tv_right_title"
style="@style/title_right_text"
android:onClick="@{()->presenter.showSubmiteDialog()}"
android:text="@string/submission_of_audit"
android:textColor="#FF4BAFFD"
android:textSize="15sp" />
......@@ -61,11 +68,12 @@
<EditText
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="35dp"
android:background="@null"
android:hint="请输入真实姓名"
android:text="@={presenter.realName}"
android:textSize="15sp" />
</LinearLayout>
......@@ -92,11 +100,12 @@
<EditText
android:id="@+id/tv_identity_num"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="35dp"
android:background="@null"
android:hint="请输入证件号"
android:text="@={presenter.identity}"
android:textSize="15sp" />
</LinearLayout>
......@@ -120,7 +129,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:text="@string/commite_pic_zero"
android:text='@{presenter.mIdentityUrl==""?@string/commite_pic_zero:@string/commite_pic_one}'
android:textSize="15sp" />
</LinearLayout>
......@@ -141,10 +150,11 @@
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="15dp"
android:visibility="gone">
android:visibility='@{presenter.mIdentityUrl==""?View.GONE:View.VISIBLE}'>
<ImageView
android:id="@+id/iv_header"
imageUrl="@{presenter.mIdentityUrl}"
android:layout_width="100dp"
android:layout_height="100dp" />
......@@ -154,6 +164,7 @@
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_alignParentRight="true"
android:onClick="@{()->presenter.deletePic()}"
android:src="@mipmap/img_photo_delete" />
</RelativeLayout>
......@@ -163,6 +174,7 @@
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="15dp"
android:onClick="@{()->presenter.showPicDialog()}"
android:src="@mipmap/icon_identity_default" />
</LinearLayout>
......
......@@ -6,6 +6,7 @@
<variable
name="presenter"
type="com.dayu.bigfish.presenter.personinfo.PersonInfoPresenter" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
......@@ -33,8 +34,7 @@
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back"
android:onClick="@{()->presenter.dumpBack()}"
/>
android:onClick="@{()->presenter.dumpBack()}" />
<ImageView
android:layout_width="match_parent"
......@@ -61,6 +61,7 @@
<com.dayu.bigfish.ui.views.CircleImageView
android:id="@+id/cv_header"
imageUrl="@{presenter.info.accountUrl}"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
......@@ -105,7 +106,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dp_15"
android:text="13567810832"
android:text="@{presenter.info.mobile}"
android:textSize="15sp" />
</LinearLayout>
......@@ -130,7 +131,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text=""
android:text="@{presenter.info.realName}"
android:textSize="15sp" />
<ImageView
......@@ -167,7 +168,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="手机号"
android:text="@{presenter.info.identity}"
android:textSize="15sp" />
<ImageView
......@@ -201,6 +202,7 @@
<ImageView
android:id="@+id/cv_identity"
imageUrl="@{presenter.info.identityUrl}"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginRight="@dimen/dp_10"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:background="@drawable/item_shape"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:gravity="center_horizontal"
android:padding="12dp"
android:padding="20dp"
android:text="@string/notice"
android:textColor="#3a3a3a"
android:textSize="16sp"
/>
android:textColor="#FF030303"
android:textSize="17sp" />
<TextView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="30dp"
android:layout_marginBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:lineSpacingExtra="3dp"
android:textColor="#3a3a3a"
android:textSize="12sp"
/>
android:textColor="#FF030303"
android:textSize="13sp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/cl_selector_hui" />
<LinearLayout
android:layout_width="match_parent"
......@@ -42,23 +45,26 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:background="@drawable/btn_grey_react"
android:gravity="center"
android:textColor="#8a8a8a"
android:textSize="12sp"
/>
android:text="@string/cancle"
android:textColor="@color/cl_receiving_order_item_data"
android:textSize="17sp" />
<View
android:id="@+id/v_line"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/cl_selector_hui" />
<TextView
android:id="@+id/submit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:background="@drawable/btn_blue_dialog_react"
android:gravity="center"
android:textColor="#ffffff"
android:textSize="12sp"
/>
android:text="@string/comfirm"
android:textColor="@color/cl_receiving_order_item_data"
android:textSize="17sp" />
</LinearLayout>
......
......@@ -78,6 +78,7 @@
android:textStyle="bold" />
<ImageView
android:id="@+id/iv_audited"
android:layout_width="41dp"
android:layout_height="14dp"
android:layout_below="@id/iv_header"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<import type="android.text.TextUtils" />
<import type="android.view.View" />
<variable
name="presenter"
type="com.dayu.bigfish.presenter.myhead.MyHeadPresenter" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
......@@ -23,7 +34,8 @@
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back" />
style="@style/title_image_back"
/>
<TextView
android:id="@+id/tv_right_title"
......@@ -42,8 +54,38 @@
<ImageView
android:id="@+id/iv_header"
imageUrl="@{presenter.headUrl}"
android:layout_width="match_parent"
android:layout_height="375dp"
android:layout_marginTop="50dp" />
android:layout_marginTop="50dp"
android:visibility="@{TextUtils.isEmpty(presenter.headUrl)?View.GONE:View.VISIBLE}" />
<LinearLayout
android:id="@+id/ll_emptyview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="@{TextUtils.isEmpty(presenter.headUrl)?View.VISIBLE:View.GONE}">
<ImageView
android:id="@+id/iv_empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@mipmap/yu" />
<TextView
android:id="@+id/tv_empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iv_empty"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_13"
android:text="暂无头像"
android:textColor="@color/cl_selector_hui"
android:textSize="@dimen/sp_13.3" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -12,7 +12,7 @@
<dimen name="sp_12">12sp</dimen>
<dimen name="size_order_item_data_text">24sp</dimen>
<dimen name="size_login_button_text">15sp</dimen>
<dimen name="size_main_title">80dp</dimen>
<dimen name="size_main_title">70dp</dimen>
<dimen name="size_title_ml">13.3dp</dimen>
<dimen name="size_login_mlcircleimageview_width">80dp</dimen>
<dimen name="size_login_mlcircleimageview_height">80dp</dimen>
......
......@@ -123,9 +123,11 @@
<string name="no_permission">没有此权限将无法使用本app,请在设置中打开权限!</string>
<string name="login_state_no">登录状态已失效,请重新登录!</string>
<string name="login_again">重新登录</string>
<string name="submit_again">重新提交</string>
<string name="please_open__permission">没有此权限将无法使用此app,请允许权限打开。</string>
<string name="cancle">取消</string>
<string name="go_setting">前往设置</string>
<string name="iknown">我知道了</string>
<string name="login_agreement">登录即表示同意此</string>
<string name="title_agreement">用户协议</string>
<string name="agreement_detail">《用户协议》</string>
......@@ -273,6 +275,9 @@
<string name="one_pic_most">最多只能选择一张照片</string>
<string name="reminder">温馨提示</string>
<string name="reminder_content">"·请上传真实清晰完整的手持身份证照片·若认证失败,可修改认证信息后再次提交"</string>
<string name="name_not_empty">真实姓名不能为空</string>
<string name="identity_not_empty">身份证号不能为空</string>
<string name="identityurl_not_empty">身份证照片不能为空</string>
<!--error-->
......@@ -286,8 +291,21 @@
<string name="error_connect_time">连接超时</string>
<string name="error_unknow">未知错误</string>
<string name="engineer_identity_auditing">您的身份认证正在审核中,请耐心等待</string>
<string name="engineer_identity_not_audite">您的身份认证审核未通过,请重新修改再次提交</string>
<string name="engineer_not_have_site">您目前没有工作站,加入工作站之后才能接单</string>
<string name="audite_tip">资料已经提交审核\n审核结果会通过短信通知您</string>
<string name="audite_tip_title">提交成功</string>
<string name="audite_tip_submite_title">重新提交</string>
<string name="audite_tip_submite">修改资料需要大鱼客服重新审核\n您确定要修改吗?</string>
<string name="think_again">我再想想</string>
<string name="identity_not_audite">审核未通过</string>
<string name="engineer_acount_notavialibe">工程师账号不存在</string>
<string name="user_on_blackilst">用户被列入黑名单</string>
<string name="not_engineer">该账号尚不是工程师</string>
<string name="account_frozen">该账号冻结</string>
<string name="sms_code_error">验证码错误</string>
<string name="sms_code_unsend_or_expire">验证码未发送或已过期</string>
<string name="order_cancle_not_receive">工单已取消,无法接单</string>
<string name="order_cancle_not_subcribe">工单已取消,无法预约时间</string>
<string name="order_cancle_not_begin">工单已取消,不能上门了</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment