Commit b03edf53 authored by shiyuelong's avatar shiyuelong

系统设置页面搭建

parent 8a2c8103
......@@ -9,7 +9,7 @@ class AppConfig {
const val appid = "merchant-b"
const val cv = "1.0.0.7"
const val cv = BuildConfig.VERSION_NAME
const val version = "000100"
const val distribution = "official"
const val platform = "1"
......
......@@ -32,6 +32,7 @@ class URLs {
const val businessLicenseOCR = "/Identify/BusLicense/businessLicenseOcr"
const val sendMsgCode = "/user/user/send_sms_code"
const val mobileLogin = "/user/user/login"
const val userLogout = "/user/user/logout"
const val accountList = "/merchant/auth/account_list"
const val createLifeAccount = "/merchant/enterprise/check_life"
const val authPersonalCheck = "/merchant/auth/personal_check"
......
......@@ -35,6 +35,7 @@
<item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>
<item name="android:taskToFrontEnterAnimation">@null</item>
</style>
<style name="YDSubwayCommonTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
<item name="android:windowIsTranslucent">true</item>
......@@ -44,6 +45,7 @@
<item name="android:windowExitAnimation">@anim/slide_right_out</item>
<item name="android:icon">@android:color/transparent</item>
</style>
<style name="subway_theme_day" parent="YDSubwayCommonTheme">
<item name="black_first">#222222</item>
<item name="main_bg">#ffffff</item>
......@@ -56,6 +58,7 @@
<item name="view_divider_wide_bg">#f7f7f7</item>
</style>
<style name="subway_theme_night" parent="YDSubwayCommonTheme">
<item name="black_first">#bababa</item>
......@@ -78,4 +81,11 @@
<item name="android:backgroundDimEnabled">true</item>
</style>
<!--分割线的样式-->
<style name="cut_off_line_style">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">#e3e3e3</item>
</style>
</resources>
\ No newline at end of file
......@@ -116,7 +116,7 @@
android:name=".personnel.ui.AddStaffActivity"
android:theme="@style/Transparent" />
<activity
android:name=".ui.setting.SystemSetting"
android:name=".ui.setting.SystemSettingActivity"
android:theme="@style/Transparent" />
<activity
......
......@@ -36,7 +36,7 @@ import com.yidian.shenghuoquan.newscontent.ui.*
import com.yidian.shenghuoquan.newscontent.ui.auth.*
import com.yidian.shenghuoquan.newscontent.ui.center.MerchantCenterActivity
import com.yidian.shenghuoquan.newscontent.ui.idcard.IDCardTestActivity
import com.yidian.shenghuoquan.newscontent.ui.setting.SystemSetting
import com.yidian.shenghuoquan.newscontent.ui.setting.SystemSettingActivity
import com.yidian.utils.DensityUtil
import com.yidian.xpage.XPageManager
import com.yidian.xpage.node.XPageHandler
......@@ -322,7 +322,7 @@ class NewsContentApplication : YdBaseApplication() {
if (params != null) {
intent.putExtra(XRouterPathConstants.ParamsKey, params as HashMap)
}
intent.setClass(context, SystemSetting::class.java)
intent.setClass(context, SystemSettingActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
}
......
......@@ -35,7 +35,7 @@ class ApiService {
})
}
// 手机号登录登录接口
// 手机号登录接口
fun mobileLogin(apiCallback: IMobileLoginCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -54,6 +54,23 @@ class ApiService {
})
}
// 用户退出登录接口
fun userLogout(apiCallback: IUserLogoutCallBack) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
ServiceFactory.getInstance().createService(CommonService::class.java)
.userLogout(publicParamsMap)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<Any?>() {
override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.userLogoutSuccess()
}
override fun onFailer(result: HttpResult<Any?>?) {
}
})
}
// 获取生活号列表
fun getAccountList(apiCallback: IMobileLoginCallback) {
val timeStamp = System.currentTimeMillis()
......@@ -118,8 +135,8 @@ class ApiService {
.getKSYunToken(publicParamsMap, privateParamsMap)
.execute().body()
if (res?.code == 0) {
return HttpParamsUtils.rsaDecryptResult(res, object: TypeToken<GetKSYunTokenBean.Response>(){}.type)
}else{
return HttpParamsUtils.rsaDecryptResult(res, object : TypeToken<GetKSYunTokenBean.Response>() {}.type)
} else {
val decodeResult = HttpResult<GetKSYunTokenBean.Response>()
decodeResult.code = res?.code!!
decodeResult.reason = res.reason
......@@ -355,7 +372,10 @@ class ApiService {
}
// 403 普通企业上传法人身份信息接口
fun authEnterpriseLegalIdentityCommit(apiCallback: IAuthEnterpriseLegalIdentityCommitCallback, requestParams: HashMap<String, String?>) {
fun authEnterpriseLegalIdentityCommit(
apiCallback: IAuthEnterpriseLegalIdentityCommitCallback,
requestParams: HashMap<String, String?>
) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
......@@ -374,7 +394,10 @@ class ApiService {
}
// 404 个体工商户身份认证接口
fun authIndividualBusinessIdentityCommit(apiCallback: IAuthIndividualBusinessIdentityCommitCallback, requestParams: HashMap<String, String?>) {
fun authIndividualBusinessIdentityCommit(
apiCallback: IAuthIndividualBusinessIdentityCommitCallback,
requestParams: HashMap<String, String?>
) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
......@@ -431,14 +454,14 @@ class ApiService {
}
// 407 生活号名检查与修改接口
fun createLifeAccount(apiCallback: ICreateLifeAccountCallback, requestParams: HashMap<String, String?>){
fun createLifeAccount(apiCallback: ICreateLifeAccountCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
ServiceFactory.getInstance().createService(CommonService::class.java)
.createLifeAccount(publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<Any?>(){
.subscribe(object : HttpResultSubscriber<Any?>() {
override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.createLifeAccountCallback(true)
}
......
......@@ -18,7 +18,10 @@ interface CommonService {
@Headers("Content-Type: application/json")
@POST(URLs.authPersonalGetToken)
fun authPersonalGetToken(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>): Observable<HttpResult<Any?>>
fun authPersonalGetToken(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.getKSYunToken)
......@@ -30,17 +33,26 @@ interface CommonService {
@Headers("Content-Type: application/json")
@POST(URLs.identifyIdOcrVerify)
fun identifyIdOcrVerify(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>): Observable<HttpResult<Any?>>
fun identifyIdOcrVerify(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.getKSYunObjectId)
fun getKSYunObjectId(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun getKSYunObjectId(
@QueryMap commonParams: Map<String, String>,
@QueryMap requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.getKSYunBucket)
fun getKSYunBucket(@QueryMap commonParams: Map<String, String>) : Observable<HttpResult<Any?>>
fun getKSYunBucket(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.businessLicenseOCR)
fun businessLicenseOCR(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun businessLicenseOCR(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.sendMsgCode)
fun sendMsgCode(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>): Observable<HttpResult<Any?>>
......@@ -48,16 +60,25 @@ interface CommonService {
@GET(URLs.mobileLogin)
fun mobileLogin(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>): Observable<HttpResult<Any?>>
@GET(URLs.userLogout)
fun userLogout(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
@GET(URLs.accountList)
fun getAccountList(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.createLifeAccount)
fun createLifeAccount(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>) :Observable<HttpResult<Any?>>
fun createLifeAccount(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.authPersonalCheck)
fun authPersonalCheck(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authPersonalCheck(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.authLiveIdentity)
fun authLiveIdentity(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
......@@ -69,26 +90,44 @@ interface CommonService {
fun authAuthentication(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
@GET(URLs.authMerchantCheck)
fun authMerchantCheck(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authMerchantCheck(
@QueryMap commonParams: Map<String, String>,
@QueryMap requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.authBusinessLicenseCommit)
fun authBusinessLicenseCommit(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authBusinessLicenseCommit(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.authEnterpriseLegalIdentityCommit)
fun authEnterpriseLegalIdentityCommit(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authEnterpriseLegalIdentityCommit(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.authIndividualBusinessIdentityCommit)
fun authIndividualBusinessIdentityCommit(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authIndividualBusinessIdentityCommit(
@QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.authEnterpriseLiveIdentity)
fun authEnterpriseLiveIdentity(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authEnterpriseLiveIdentity(
@QueryMap commonParams: Map<String, String>,
@QueryMap requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.authIndividualBusinessComplete)
fun authIndividualBusinessComplete(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
fun authIndividualBusinessComplete(
@QueryMap commonParams: Map<String, String>,
@QueryMap requestParams: Map<String, String?>
): Observable<HttpResult<Any?>>
@GET(URLs.getConfigList)
fun getConfigList(@QueryMap commonParams: Map<String, String>) : Observable<HttpResult<Any?>>
fun getConfigList(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
}
package com.yidian.shenghuoquan.newscontent.http.callback
interface IUserLogoutCallBack {
fun userLogoutSuccess()
}
......@@ -11,7 +11,10 @@ import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ActivityAddStaffBinding
import com.yidian.shenghuoquan.newscontent.personnel.http.PersonalRemoteDataSource
import com.yidian.shenghuoquan.newscontent.personnel.http.callback.IPersonalAddUserCallBack
import com.yidian.shenghuoquan.newscontent.personnel.http.callback.IPersonalGetSmsCodeCallBack
import com.yidian.shenghuoquan.newscontent.utils.CountDownTimerUtils
import com.yidian.shenghuoquan.newscontent.utils.TextWatcherAdapter
import com.yidian.utils.ToastUtil
import com.yidian.xpage.XPageManager
/**
......@@ -19,6 +22,11 @@ import com.yidian.xpage.XPageManager
*/
class AddStaffActivity : BaseActivity<ActivityAddStaffBinding>() {
private var newCodeFinish: Boolean = false
private var newMobileFinish: Boolean = false
private lateinit var mCountDownTimerUtils: CountDownTimerUtils
override fun createViewBinding(): ActivityAddStaffBinding {
return ActivityAddStaffBinding.inflate(layoutInflater)
}
......@@ -31,6 +39,8 @@ class AddStaffActivity : BaseActivity<ActivityAddStaffBinding>() {
super.init(savedInstanceState)
initTitle()
initClick()
// 初始化倒计时
mCountDownTimerUtils = CountDownTimerUtils(viewBind.tvGetCode, 60000, 1000)
}
private fun initClick() {
......@@ -60,6 +70,16 @@ class AddStaffActivity : BaseActivity<ActivityAddStaffBinding>() {
}
}
})
// 发送验证码
viewBind.tvGetCode.setOnClickListener {
val mobile = viewBind.etMobile.text.toString().replace(" ", "")
if (mobile.length == 13) {
requestSmsCode(mobile)
} else {
ToastUtil.showToast(this, "请输入11位手机号")
}
}
}
private fun initTitle() {
......@@ -99,13 +119,32 @@ class AddStaffActivity : BaseActivity<ActivityAddStaffBinding>() {
}
}
private var newCodeFinish: Boolean = false
private var newMobileFinish: Boolean = false
/**
* 获取验证码
*/
private fun requestSmsCode(mobile: String) {
val paramsMap = HashMap<String, String?>()
paramsMap["mobile"] = mobile
PersonalRemoteDataSource.getSmsCode(getSmsCodeCallBack, paramsMap)
}
private val getSmsCodeCallBack = object : IPersonalGetSmsCodeCallBack {
override fun getSmsCodeSuccess() {
// 开始倒计时
mCountDownTimerUtils.start()
}
}
private val postAddUserCallBack = object : IPersonalAddUserCallBack {
override fun addUserSuccess() {
// 返回员工列表并刷新
XPageManager.push(XRouterPathConstants.PERSONAL_MY_STAFF, null)
}
}
override fun onDestroy() {
super.onDestroy()
mCountDownTimerUtils.cancel()
}
}
......@@ -302,7 +302,6 @@ class ManagerChangeActivity : BaseActivity<ActivityManagerChangeBinding>() {
override fun onRightOption() {
XPageManager.push(XRouterPathConstants.LOGIN_LIFE_CIRCLE, null)
ToastUtil.showToast(this@ManagerChangeActivity, "进入登录页面")
}
}).show()
}
......
package com.yidian.shenghuoquan.newscontent.ui.setting
import com.yidian.common.XRouterPathConstants.Companion.SYSTEM_SETTING
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySystemSettingBinding
/**
* 系统设置页面
*/
class SystemSetting : BaseActivity<ActivitySystemSettingBinding>() {
override fun createViewBinding(): ActivitySystemSettingBinding {
return ActivitySystemSettingBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return SYSTEM_SETTING
}
}
package com.yidian.shenghuoquan.newscontent.ui.setting
import android.os.Bundle
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XRouterPathConstants
import com.yidian.common.XRouterPathConstants.Companion.SYSTEM_SETTING
import com.yidian.common.base.BaseActivity
import com.yidian.common.extensions.initTitleBar
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySystemSettingBinding
import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.callback.IUserLogoutCallBack
import com.yidian.shenghuoquan.newscontent.utils.SensitiveInfoUtil
import com.yidian.utils.ToastUtil
import com.yidian.xarc.xbase.utils.AppUtils
import com.yidian.xpage.XPageManager
/**
* 系统设置页面
*/
class SystemSettingActivity : BaseActivity<ActivitySystemSettingBinding>() {
override fun createViewBinding(): ActivitySystemSettingBinding {
return ActivitySystemSettingBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return SYSTEM_SETTING
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initClick()
initView()
}
private fun initView() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, resources.getString(R.string.setting))
// 显示手机号
val phone = Hawk.get(HawkConfig.Mobile, "")
viewBind.tvUserMobile.text = SensitiveInfoUtil.mobileEncrypt(phone)
// 显示版本号
viewBind.tvAppVersion.text = AppUtils.INSTANCE.getCurrentVersionName(this)
}
private fun initClick() {
// 通知设置
viewBind.clNotice.setOnClickListener {
}
// 退出登录
viewBind.tvLogout.setOnClickListener {
ApiService.userLogout(logoutCallBack)
}
}
private val logoutCallBack = object : IUserLogoutCallBack {
override fun userLogoutSuccess() {
ToastUtil.showToast(this@SystemSettingActivity, "退出登录成功")
XPageManager.push(XRouterPathConstants.LOGIN_LIFE_CIRCLE, null)
}
}
}
......@@ -43,6 +43,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......
......@@ -35,6 +35,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......@@ -59,6 +64,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......
......@@ -35,6 +35,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......@@ -59,6 +64,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......
......@@ -35,6 +35,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......@@ -59,6 +64,11 @@
</LinearLayout>
<View
style="@style/cut_off_line_style"
android:layout_marginStart="@dimen/dp20"
android:layout_marginEnd="@dimen/dp20" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_F5F6F7"
android:orientation="vertical">
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<include
android:id="@+id/include"
layout="@layout/layout_common_toolbar" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp10"
android:background="@color/white"
android:orientation="vertical"
android:paddingStart="@dimen/dp20"
android:paddingEnd="@dimen/dp20">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_notice"
android:layout_width="match_parent"
android:layout_height="@dimen/dp60">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="通知设置"
android:textColor="@color/color_333333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="@dimen/dp24"
android:layout_height="@dimen/dp24"
android:src="@mipmap/icon_next"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View style="@style/cut_off_line_style" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_mobile"
android:layout_width="match_parent"
android:layout_height="@dimen/dp60">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="手机号"
android:textColor="@color/color_333333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_user_mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_666666"
android:textSize="@dimen/sp16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="188****9999" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View style="@style/cut_off_line_style" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_about"
android:layout_width="match_parent"
android:layout_height="@dimen/dp60">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="关于生活号"
android:textColor="@color/color_333333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_app_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_666666"
android:textSize="@dimen/sp16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="版本1.0.1" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_logout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
android:layout_marginTop="@dimen/dp10"
android:background="@color/white"
android:gravity="center"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
tools:text="版本1.0.1" />
</LinearLayout>
\ No newline at end of file
......@@ -148,5 +148,6 @@
<string name="manager_account_change_tips">管理员账号替换后,原账户将无法操作生活号所有功能,同时将自动退出当前登录状态,新账号将继承原账号所有权益。</string>
<string name="manager_register_tips">未注册生活圈的手机号,登录时将自动注册,且代表你已经同意《用户协议》《隐私政策》。</string>
<string name="dissolve_relationship">解除关系后此账号将不再有权限管理企业信息,账号已产生内容仍属企业</string>
<string name="setting">设置</string>
</resources>
\ No newline at end of file
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 to comment