车牌号码识别

This commit is contained in:
lijia 2024-04-16 17:21:45 +08:00
parent 3955e7b9a7
commit a53d5553cd
11 changed files with 1317 additions and 108 deletions

View File

@ -250,6 +250,11 @@
android:configChanges="keyboardHidden|orientation|locale" android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" /> android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.account.authteam.EditCaTeamActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 司机车辆认证相关end --> <!-- 司机车辆认证相关end -->
<!-- 运单相关start --> <!-- 运单相关start -->
@ -347,7 +352,7 @@
android:windowSoftInputMode="adjustPan|stateHidden" /> android:windowSoftInputMode="adjustPan|stateHidden" />
<activity <activity
android:name=".ui.mine.activity.CarTeamActivity" android:name=".ui.mine.activity.CarTeamManActivity"
android:configChanges="keyboardHidden|orientation|locale" android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" /> android:windowSoftInputMode="adjustPan|stateHidden" />
@ -391,10 +396,11 @@
<activity <activity
android:name=".ui.esingn.H5Activity" android:name=".ui.esingn.H5Activity"
android:screenOrientation="portrait" android:launchMode="singleTask"
android:launchMode="singleTask"> android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE" />

View File

@ -18,6 +18,7 @@ data class OcrPersonBean(
data class Data( data class Data(
val face: Face, val face: Face,
val back: Back, val back: Back,
val info: List<CarInfo>,
//银行卡 //银行卡
val bankName: String, val bankName: String,
@ -59,6 +60,15 @@ data class Face(
) )
data class CarInfo(
val key: String,
val key_loc: String,
val key_prob: String,
val value: String,
val value_loc: String,
val value_prob: String
)
data class DataX( data class DataX(
var address: String = "", var address: String = "",
val birthDate: String = "", val birthDate: String = "",

View File

@ -13,6 +13,11 @@ fun interface OnOcrPicResultListener {
fun onSuccResult(picPath: PicPath, result: OcrPersonBean?) fun onSuccResult(picPath: PicPath, result: OcrPersonBean?)
} }
fun interface OnOcrCarNumListener {
fun onSuccResult(carNum: String)
}
data class PicPath( data class PicPath(
var locPic: String, var picPath: String var locPic: String, var picPath: String
) )

View File

@ -0,0 +1,456 @@
package com.dahe.gldriver.ui.account.authteam
import android.os.Bundle
import android.view.View
import com.dahe.gldriver.R
import com.dahe.gldriver.bean.AuthTeamBean
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.databinding.ActivityAuthTeamBinding
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.ui.HomeActivity
import com.dahe.gldriver.utils.OcrUtils
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.PickerUtils
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.TimeUtil
import com.dahe.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName AuthTeamActivity
* @Author john
* @Date 2024/1/25 16:44
* @Description 个人车队-编辑
*/
class EditCaTeamActivity : BaseActivity<ActivityAuthTeamBinding>(), View.OnClickListener {
private var checkTeamType = 1 //1代表运输公司0代表个人车队
var ossServiceUtil: OssServiceUtil = OssServiceUtil.getInstance()
var upComInfoBean: AuthTeamBean = AuthTeamBean("1")//企业车队
var upPerInfoBean: AuthTeamBean = AuthTeamBean("0")//个人车队
override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white)
setTitleBar("身份认证", true)
binding.run {
rgTeam.setOnCheckedChangeListener { _, i ->
changeTeamType(if (i == binding.rbCom.id) 1 else 0)
}
//营业执照选择。ocr识别
ivBusiness.setOnClickListener {
OcrUtils.getInstance()
.ocrBusinessCard(mContext, this@EditCaTeamActivity) { picPath, result ->
upComInfoBean.businessLicensePhoneUrl = picPath.picPath
result?.data?.run {
upComInfoBean.businessLicenseCreditCode = creditCode
upComInfoBean.businessLicenseEffectiveStart =
TimeUtil.changeDateNoneFormat(validFromDate)
upComInfoBean.businessLicenseEffectiveEnd =
TimeUtil.changeDateNoneFormat(validToDate)
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivBusiness)
}
}
//运输公司 本人身份证
ivComFront.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.face == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivComFront)
result?.data?.face?.data?.run {
etName.setText(name)
etId.setText(idNumber)
upComInfoBean.run {
idcardNo = idNumber
idcardName = name
idcardSex = if (sex == "") "1" else "2"
idcardEthnicity = ethnicity
idcardFrontUrl = picPath.picPath
idcardAddress = address
}
}
}
}
ivComBack.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.back == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivComBack)
result?.data?.back?.data?.run {
upComInfoBean.run {
// idcardEffectiveStart = TimeUtil.changeDateFormat(split[0])
// idcardEffectiveEnd = if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else ""
idcardBackUrl = picPath.picPath
}
if (validPeriod.contains("-")) {
val split = validPeriod.split("-")
tvStart.text = TimeUtil.changeDateFormat(split[0])
tvEnd.text =
if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else ""
}
if (validPeriod?.contains("长期") == true) {
val split = validPeriod.split("长期")
binding.run {
tvStart.text =
TimeUtil.changeDateFormat(split[0])
tvEnd.text = "长期"
}
}
}
}
}
//个人车队 本人身份证
ivFront.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.face == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivFront)
result?.data?.face?.data?.run {
etPerName.setText(name)
etPerId.setText(idNumber)
upPerInfoBean.run {
idcardNo = idNumber
idcardName = name
idcardSex = if (sex == "") "1" else "2"
idcardEthnicity = ethnicity
idcardFrontUrl = picPath.picPath
idcardAddress = address
}
}
}
}
//个人车队 本人身份证
ivBack.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.back == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivBack)
result?.data?.back?.data?.run {
upPerInfoBean.run {
idcardBackUrl = picPath.picPath
}
if (validPeriod.contains("-")) {
val split = validPeriod.split("-")
tvPerStart.text = TimeUtil.changeDateFormat(split[0])
tvPerEnd.text =
if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else ""
}
if (validPeriod?.contains("长期") == true) {
val split = validPeriod.split("长期")
binding.run {
tvPerStart.text =
TimeUtil.changeDateFormat(split[0])
tvPerEnd.text = "长期"
}
}
}
}
}
/**
* 个人银行卡
*/
ivBank.setOnClickListener {
OcrUtils.getInstance()
.ocrBankCard(mContext, this@EditCaTeamActivity) { picPath, result ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivBank)
result?.data?.run {
etPerBankId.setText(cardNumber)
tvPerBankName.setText(bankName)
upPerInfoBean.run {
captainBankcardNumber = cardNumber
captainBankcardPhotoUrl = picPath.picPath
}
}
}
}
//道路运输许可证
ivRoad.setOnClickListener {
OcrUtils.getInstance()
.noOcrUpPic(mContext, this@EditCaTeamActivity) { picPath, ocrResult ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivRoad)
upComInfoBean.roadLicensePhotoUrl = picPath.picPath
}
}
//公司银行卡
ivComBank.setOnClickListener {
OcrUtils.getInstance()
.ocrBankCard(mContext, this@EditCaTeamActivity) { picPath, result ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivComBank)
result?.data?.run {
binding.let {
it.etComBankId.setText(cardNumber)
it.etComBankName.setText(bankName)
}
upComInfoBean.run {
captainBankcardNumber = cardNumber
captainBankcardName = bankName
captainBankcardPhotoUrl = picPath.picPath
}
}
}
}
tvComDate.setOnClickListener {
PickerUtils.getInstance()
.showDateSim(this@EditCaTeamActivity, "请选择有效期至") { date ->
tvComDate.text = date
}
}
tvPerStart.setOnClickListener {
PickerUtils.getInstance()
.showDate(this@EditCaTeamActivity, "请选择起始日期") { date ->
tvPerStart.text = date
}
}
tvPerEnd.setOnClickListener {
PickerUtils.getInstance()
.showDateSim(this@EditCaTeamActivity, "请选择有效期至") { date ->
tvPerEnd.text = date
}
}
btnOk.setOnClickListener(this@EditCaTeamActivity)
/**
* 运输公司身份证开始日期
*/
tvStart.setOnClickListener {
PickerUtils.getInstance()
.showDate(this@EditCaTeamActivity, "请选择起始日期") { date ->
tvStart.text = date
}
}
/**
* 运输公司身份证截止日期
*/
tvEnd.setOnClickListener {
PickerUtils.getInstance().showDateSim(this@EditCaTeamActivity, "请选择有效期至") {
tvEnd.text = it
}
}
}
}
override fun initDate() {
}
private fun changeTeamType(type: Int) {
checkTeamType = type
if (1 == checkTeamType) {
binding.llCom.visibility = View.VISIBLE
binding.llPerson.visibility = View.GONE
} else {
binding.llCom.visibility = View.GONE
binding.llPerson.visibility = View.VISIBLE
}
}
override fun onClick(view: View?) {
super.onClick(view)
when (view?.id) {
binding.btnOk.id -> {
subMit()
}
// binding.ivBusiness.id -> {}
// binding.ivComFront.id -> {}
// binding.ivComBack.id -> {}
// binding.ivComBank.id -> {}
// binding.tvComDate.id -> {}
// binding.tvPerStart.id -> {}
// binding.ivFront.id -> {}
// binding.ivBack.id -> {}
// binding.ivBank.id -> {}
// binding.ivRoad.id -> {}
}
}
private fun subMit() {
binding.run {
if (checkTeamType == 1) {//运输公司
//道路运输相关
upComInfoBean.roadLicense = etRootId.text.toString().trim()
upComInfoBean.roadLicenseValidity = tvComDate.text.toString().trim()
//银行卡相关信息
upComInfoBean.captainBankcardNumber = etComBankId.text.toString().trim()
upComInfoBean.captainBankcardName = etComBankName.text.toString().trim()
//身份证相关信息
upComInfoBean.idcardName = etName.text.toString().trim()
upComInfoBean.idcardNo = etId.text.toString().trim()
upComInfoBean.idcardEffectiveStart = tvStart.text.toString().trim()
if ("长期" == tvEnd.text.toString().trim()) {
upComInfoBean.idcardIsEndless = "1"
} else {
upComInfoBean.idcardEffectiveEnd = tvEnd.text.toString().trim()
}
if (upComInfoBean.roadLicense.isNullOrEmpty() || upComInfoBean.roadLicenseValidity.isNullOrEmpty() ||
upComInfoBean.businessLicensePhoneUrl.isNullOrEmpty() || upComInfoBean.roadLicensePhotoUrl.isNullOrEmpty() ||
upComInfoBean.captainBankcardPhotoUrl.isNullOrEmpty() || upComInfoBean.idcardFrontUrl.isNullOrEmpty() ||
upComInfoBean.idcardBackUrl.isNullOrEmpty() ||
upComInfoBean.captainBankcardNumber.isNullOrEmpty() || upComInfoBean.captainBankcardName.isNullOrEmpty() ||
upComInfoBean.idcardName.isNullOrEmpty() || upComInfoBean.idcardNo.isNullOrEmpty() ||
upComInfoBean.idcardEffectiveStart.isNullOrEmpty()
) {
ToastUtils.showToast(mContext, "请完善信息")
return@run
}
} else {
//身份证相关信息
upPerInfoBean.idcardNo = etPerId.text.toString().trim()
upPerInfoBean.idcardName = etPerName.text.toString().trim()
upPerInfoBean.idcardEffectiveStart = tvPerStart.text.toString().trim()
if ("长期" == tvPerEnd.text.toString().trim()) {
upPerInfoBean.idcardIsEndless = "1"
} else {
upPerInfoBean.idcardEffectiveEnd = tvEnd.text.toString().trim()
}
//银行卡相关信息
upPerInfoBean.captainBankcardNumber = etPerBankId.text.toString().trim()
upPerInfoBean.captainBankcardName = tvPerBankName.text.toString().trim()
if (upPerInfoBean.idcardNo.isNullOrEmpty() || upPerInfoBean.idcardName.isNullOrEmpty() ||
upPerInfoBean.idcardEffectiveStart.isNullOrEmpty() || upPerInfoBean.captainBankcardPhotoUrl.isNullOrEmpty() ||
upPerInfoBean.idcardFrontUrl.isNullOrEmpty() || upPerInfoBean.idcardBackUrl.isNullOrEmpty() ||
upPerInfoBean.captainBankcardNumber.isNullOrEmpty() || upPerInfoBean.captainBankcardName.isNullOrEmpty()
) {
ToastUtils.showToast(mContext, "请完善信息")
return@run
}
}
DataManager.getInstance()
.authenticationCaptain(if (checkTeamType == 1) upComInfoBean else upPerInfoBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(
mContext,
object : RxHttpCallBack<Any>(this@EditCaTeamActivity) {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, HomeActivity::class.java)
}
})
)
}
}
private fun selBankPic(picType: Int = 0) {
PopsUtils.getInstance().showSimSelPic(mContext) { it ->
ossServiceUtil.run {
asyncPutImage(it[0].realPath, this@EditCaTeamActivity)
setResultCallBack { data, oldPath ->
DataManager.getInstance().recognizeBankCard(oldPath)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(mContext,
object : RxHttpCallBack<OcrPersonBean>(this@EditCaTeamActivity) {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t)
t.data.data?.run {
// bankInfo.driverBankcardPhotoUrl = oldPath
binding.let {
it.etComBankId.setText(cardNumber)
it.etComBankName.setText(bankName)
}
}
}
})
)
}
}
ImageLoader.getInstance()
.loadRoundImage(mContext, it[0].realPath, 12, binding.ivComBank)
}
}
private fun selPerPic() {
PopsUtils.getInstance().showSimSelPic(mContext) {
ImageLoader.getInstance().loadRoundImage(mContext, it[0].realPath, 12, binding.ivFront)
ossServiceUtil.run {
asyncPutImage(it[0].realPath, this@EditCaTeamActivity)
setResultCallBack { data, oldPath ->
DataManager.getInstance().recognizeIdcard(oldPath)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(mContext,
object : RxHttpCallBack<OcrPersonBean>(this@EditCaTeamActivity) {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t)
t.data.data.face?.data.let {
it?.run {
// perInfoBean.run {
// idcardNo = idNumber
// idcardName = name
// idcardSex = if (sex == "男") "1" else "2"
// }
}
binding.run {
etName.setText(it?.idNumber)
etId.setText(it?.name)
}
}
}
})
)
}
}
}
}
}

View File

@ -6,12 +6,14 @@ import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.GridItemAdapter import com.dahe.gldriver.adapter.GridItemAdapter
import com.dahe.gldriver.base.WebActivity import com.dahe.gldriver.base.WebActivity
import com.dahe.gldriver.bean.GridBean import com.dahe.gldriver.bean.GridBean
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.databinding.FragmentMineBinding import com.dahe.gldriver.databinding.FragmentMineBinding
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.ui.account.authperson.AuthPartyActivity import com.dahe.gldriver.ui.account.authperson.AuthPartyActivity
import com.dahe.gldriver.ui.mine.activity.CarTeamActivity import com.dahe.gldriver.ui.mine.activity.CarTeamManActivity
import com.dahe.gldriver.ui.mine.activity.CarsManActivity import com.dahe.gldriver.ui.mine.activity.CarsManActivity
import com.dahe.gldriver.ui.mine.activity.ComProActivity import com.dahe.gldriver.ui.mine.activity.ComProActivity
import com.dahe.gldriver.ui.mine.activity.DriverTeamsActivity import com.dahe.gldriver.ui.mine.activity.DriverTeamsActivity
@ -29,14 +31,12 @@ import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack import com.dahe.mylibrary.callback.RefreshCallBack
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.BaseUtils
import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.PhoneFormatCheckUtils import com.dahe.mylibrary.utils.PhoneFormatCheckUtils
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils import com.dahe.mylibrary.utils.ToastUtils
import com.tencent.bugly.crashreport.CrashReport
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kotlin.system.exitProcess
class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener, RefreshCallBack { class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener, RefreshCallBack {
private val tools = mutableListOf( private val tools = mutableListOf(
@ -107,7 +107,7 @@ class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener,
when (pos) { when (pos) {
0 -> { 0 -> {
if (SPUtils.instance.getUserInfo(mContext)?.isCarCaptain == "1") {//车队长 if (SPUtils.instance.getUserInfo(mContext)?.isCarCaptain == "1") {//车队长
ActivityUtils.startActivity(mContext, CarTeamActivity::class.java) ActivityUtils.startActivity(mContext, CarTeamManActivity::class.java)
} else {//司机 } else {//司机
ActivityUtils.startActivity(mContext, DriverTeamsActivity::class.java) ActivityUtils.startActivity(mContext, DriverTeamsActivity::class.java)
} }
@ -176,7 +176,6 @@ class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener,
7 -> { 7 -> {
ActivityUtils.startActivity(mContext,SettingActivity::class.java) ActivityUtils.startActivity(mContext,SettingActivity::class.java)
// exitProcess(0)
} }
} }

View File

@ -15,13 +15,11 @@ import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.ui.mine.InviteRecordActivity import com.dahe.gldriver.ui.mine.InviteRecordActivity
import com.dahe.gldriver.ui.mine.fragment.CarsManFragment import com.dahe.gldriver.ui.mine.fragment.CarsManFragment
import com.dahe.gldriver.ui.mine.fragment.DriversManFragment import com.dahe.gldriver.ui.mine.fragment.DriversManFragment
import com.dahe.gldriver.ui.waybill.fragment.AllWaybillFragment
import com.dahe.gldriver.utils.SPUtils import com.dahe.gldriver.utils.SPUtils
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import net.lucode.hackware.magicindicator.FragmentContainerHelper import net.lucode.hackware.magicindicator.FragmentContainerHelper
@ -40,7 +38,7 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorT
* @Date 2024/2/6 16:38 * @Date 2024/2/6 16:38
* @Description 车队长-车队管理 * @Description 车队长-车队管理
*/ */
class CarTeamActivity : BaseActivity<ActivityCarTeamBinding>() { class CarTeamManActivity : BaseActivity<ActivityCarTeamBinding>() {
private val mFragmentContainerHelper = FragmentContainerHelper() private val mFragmentContainerHelper = FragmentContainerHelper()
var mFragments = mutableListOf<Fragment>() var mFragments = mutableListOf<Fragment>()
@ -127,7 +125,8 @@ class CarTeamActivity : BaseActivity<ActivityCarTeamBinding>() {
val data = t.data val data = t.data
binding.run { binding.run {
tvCapName.text = data.captainName tvCapName.text = data.captainName
tvStatu.text = if (data.isRealname == "0") "未实名" else "已实名" tvStatu.text =
if (data.auditStatus == "100002") "审核中" else if (data.auditStatus == "100003") "审核通过" else if (data.auditStatus == "100001") "待认证" else "待认证"
ImageLoader.getInstance().loadCircleImage(mContext, data.avatar, ivHead) ImageLoader.getInstance().loadCircleImage(mContext, data.avatar, ivHead)
} }
} }

View File

@ -10,10 +10,12 @@ import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.CarsAdapter import com.dahe.gldriver.adapter.CarsAdapter
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.CarBean import com.dahe.gldriver.bean.CarBean
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.databinding.ActivityCarsManBinding import com.dahe.gldriver.databinding.ActivityCarsManBinding
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.ui.account.authperson.AuthDrivingActivity import com.dahe.gldriver.ui.account.authperson.AuthDrivingActivity
import com.dahe.gldriver.utils.CommonPopUtils import com.dahe.gldriver.utils.CommonPopUtils
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
@ -21,7 +23,9 @@ import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.PopsUtils import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -83,18 +87,6 @@ class CarsManActivity : BaseActivity<ActivityCarsManBinding>() {
} }
btnOk.setOnClickListener { btnOk.setOnClickListener {
// PopsUtils.getInstance().showSimSelPic(mContext){
// DataManager.getInstance().recognizeCarNumber(oldPath)
// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
// .subscribe(BaseObserver(mContext,object : RxHttpCallBack<OcrPersonBean>(){
// override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
// super.onSuccess(t)
// println("fff")
// }
// }))
// }
ActivityUtils.startActivity(mContext, AuthDrivingActivity::class.java) ActivityUtils.startActivity(mContext, AuthDrivingActivity::class.java)
} }
} }

View File

@ -15,6 +15,7 @@ import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.utils.GDLocationUtils import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.gldriver.utils.OcrUtils
import com.dahe.gldriver.utils.OrderUtils import com.dahe.gldriver.utils.OrderUtils
import com.dahe.mylibrary.adapter.GridImageAdapter import com.dahe.mylibrary.adapter.GridImageAdapter
import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener
@ -23,6 +24,7 @@ import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.LoadingUtils import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.PopsUtils import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.dahe.mylibrary.weight.FullyGridLayoutManager import com.dahe.mylibrary.weight.FullyGridLayoutManager
import com.dahe.mylibrary.weight.GlideEngine import com.dahe.mylibrary.weight.GlideEngine
import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.basic.PictureSelector
@ -92,15 +94,8 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
OssServiceUtil.getInstance().run { OssServiceUtil.getInstance().run {
asyncPutImage(it[0].realPath, this@WaybillUpPicActivity) asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
setResultCallBack { data, oldPath -> setResultCallBack { data, oldPath ->
// DataManager.getInstance().recognizeCarNumber(oldPath) OcrUtils.getInstance().ocrCarNumber(mContext, oldPath, this@WaybillUpPicActivity) { carNum ->
// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) if (!carNum.isNullOrEmpty()) {
// .subscribe(BaseObserver(mContext,object : RxHttpCallBack<OcrPersonBean>(){
// override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
// super.onSuccess(t)
// println("fff")
// }
// }))
picBean = WaybillPhoto() picBean = WaybillPhoto()
picBean.run { picBean.run {
photoUrl = oldPath photoUrl = oldPath
@ -112,6 +107,13 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" }!!.photoUrl = upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" }!!.photoUrl =
oldPath oldPath
} }
} else {
ToastUtils.showToast(
mContext,
"未识别出车牌号码,请重新拍摄"
)
}
}
} }
} }
myAdapter.data.run { myAdapter.data.run {
@ -266,7 +268,8 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,
WaybillSuccActivity::class.java, WaybillSuccActivity::class.java,
intent.extras) intent.extras
)
//装货成功-开启轨迹上传 //装货成功-开启轨迹上传
OrderUtils.getInstance().upLocation(mContext) OrderUtils.getInstance().upLocation(mContext)
} else { } else {
@ -274,7 +277,8 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,
WaybillSuccActivity::class.java, WaybillSuccActivity::class.java,
intent.extras) intent.extras
)
} }
} }
})) }))

View File

@ -3,6 +3,7 @@ package com.dahe.gldriver.utils
import android.content.Context import android.content.Context
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.dahe.gldriver.bean.OcrPersonBean import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.callback.OnOcrCarNumListener
import com.dahe.gldriver.callback.OnOcrPicResultListener import com.dahe.gldriver.callback.OnOcrPicResultListener
import com.dahe.gldriver.callback.PicPath import com.dahe.gldriver.callback.PicPath
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
@ -300,30 +301,20 @@ class OcrUtils private constructor() {
* */ * */
fun ocrCarNumber( fun ocrCarNumber(
context: Context, context: Context,
picPath: String,
activity: AppCompatActivity, activity: AppCompatActivity,
listener: OnOcrPicResultListener listener: OnOcrCarNumListener
) { ) {
PopsUtils.getInstance().showSimSelPic(context) { result -> DataManager.getInstance().recognizeCarNumber(picPath)
//上传oss得到图片地址 .subscribeOn(Schedulers.io())
OssServiceUtil.getInstance().run { .observeOn(AndroidSchedulers.mainThread())
asyncPutImage(result[0].realPath, activity)
setResultCallBack { data, oldPath ->
DataManager.getInstance().recognizeCarNumber(oldPath)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
BaseObserver( BaseObserver(activity,
context, object : RxHttpCallBack<OcrPersonBean>() {
object : RxHttpCallBack<OcrPersonBean>(activity) {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) { override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t) super.onSuccess(t)
t.data?.let { if (t.data.data.info != null && t.data.data.info.isNotEmpty())
listener.onSuccResult( listener.onSuccResult(t.data.data.info[0].value)
PicPath(
result[0].realPath,
oldPath
), it
)
}
} }
override fun onCodeError( override fun onCodeError(
@ -333,22 +324,15 @@ class OcrUtils private constructor() {
// super.onCodeError(mContext, t) // super.onCodeError(mContext, t)
LoadingUtils.instance.dissLoading() LoadingUtils.instance.dissLoading()
if (t.code == 500) { if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast( ToastUtils.showToast(
mContext, mContext,
"图片识别失败,请重新上传" "图片识别失败,请重新上传"
) )
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
} }
} }
}) })
) )
} }
}
}
}
fun noOcrUpPic( fun noOcrUpPic(

View File

@ -0,0 +1,754 @@
<?xml version="1.0" encoding="utf-8"?>
<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/white"
android:orientation="vertical">
<include layout="@layout/common_toolbar"></include>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 运输公司 -->
<LinearLayout
android:id="@+id/llCom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_7"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传营业执照"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivBusiness"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_58"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/business"></ImageView>
<TextView
android:id="@+id/tvBTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ivBusiness"
android:layout_marginLeft="@dimen/dp_14"
android:text="上传道路运输经营许可证"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivRoad"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_below="@+id/tvBTitle"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_22"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/road"></ImageView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ivRoad"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:paddingBottom="@dimen/dp_18">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:text="道路许可证号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etRootId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入经营许可证号"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="王海生"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_50"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:text="有效期至"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvComDate"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:drawableRight="@drawable/right_gray"
android:drawablePadding="@dimen/dp_6"
android:gravity="right|center_vertical"
android:hint="请选择有效期至"
android:paddingLeft="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传公司账户"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivComBank"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bank_card"></ImageView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_26"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_90"
android:layout_height="wrap_content"
android:text="银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etComBankId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:text="开户银行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etComBankName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入开户银行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_14"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传本人身份证(必填)"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20">
<ImageView
android:id="@+id/ivComFront"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_marginLeft="@dimen/dp_8"
android:background="@drawable/person_front" />
<ImageView
android:id="@+id/ivComBack"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_8"
android:background="@drawable/person_back" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_90"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="姓名"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入姓名"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="身份证"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入身份证号码"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/llStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效开始日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvStart"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择开始日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/llStart"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效结束日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvEnd"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择结束日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" />
</LinearLayout>
<!-- 个人车队 -->
<LinearLayout
android:id="@+id/llPerson"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传本人身份证(必填)"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivFront"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_58"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/person_front"></ImageView>
<ImageView
android:id="@+id/ivBack"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_58"
android:layout_marginRight="@dimen/dp_8"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/person_back"></ImageView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ivFront"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginRight="@dimen/dp_8"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_18">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="姓名"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etPerName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="王海生"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="身份证"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etPerId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="412826196205220056"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效开始日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvPerStart"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择开始日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效结束日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvPerEnd"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择结束日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传本人银行卡"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivBank"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bank_card"></ImageView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_26"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_90"
android:layout_height="wrap_content"
android:text="银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etPerBankId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:text="开户银行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/tvPerBankName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请选择开户行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" />
</LinearLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_70"
android:background="@color/white"
android:gravity="center"
android:paddingLeft="@dimen/dp_15"
android:paddingRight="@dimen/dp_15">
<Button
android:id="@+id/btnOk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_btn"
android:text="提交审核"
android:textColor="@color/white"
android:textSize="@dimen/sp_17">
</Button>
</LinearLayout>
</LinearLayout>

View File

@ -55,7 +55,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" android:maxLines="1"
android:text="张学友" tools:text="张学友"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
android:textStyle="bold" /> android:textStyle="bold" />