Commit c9fbc1d4 authored by shiyuelong's avatar shiyuelong

个人认证选择职业标签改成读取本地json 文件配置

parent bc50fdec
......@@ -14,5 +14,6 @@ class XEventConfig {
const val UPDATE_COMMENT: String = "updateComment"
const val UPDATE_LIKE: String = "updateLike"
const val GIF_DATA: String = "gifData"
const val CHOOSE_CAREER: String = "chooseCareer"
}
}
[
{
"category": "专业咨询服务",
"list": [
"律师",
"心理咨询",
"情感咨询",
"翻译"
]
},
{
"category": "互联网IT",
"list": [
"程序员",
"运营",
"电商",
"IT服务"
]
},
{
"category": "农林畜牧",
"list": [
"养殖/繁殖",
"农民",
"农业种植",
"花匠"
]
},
{
"category": "医疗健康",
"list": [
"医生",
"护士",
"中医",
"口腔",
"兽医",
"养生保健"
]
},
{
"category": "司机货运",
"list": [
"出租车",
"专职司机",
"物料运输",
"汽车租赁",
"代驾"
]
},
{
"category": "媒体广告",
"list": [
"广告传媒",
"平面设计",
"新媒体运营",
"记者",
"自媒体",
"演员",
"手艺人",
"经纪人",
"主播",
"网红",
"导演",
"编辑",
"摄像师",
"模特",
"歌手",
"运动员",
"自由撰稿人"
]
},
{
"category": "工程基建",
"list": [
"普通",
"工程师",
"施工管理",
"工程设备租赁",
"建材",
"农民工",
"消防施工改造"
]
},
{
"category": "房租销售",
"list": [
"房屋中介",
"房产顾问",
"房屋出租",
"地产开发",
"房屋买卖"
]
},
{
"category": "教育培训",
"list": [
"公办教师",
"课外培训",
"艺术培训",
"教育咨询",
"游泳教练",
"幼师",
"驾校培训",
"学历提升"
]
},
{
"category": "生成制造",
"list": [
"汽车制造",
"数控车床",
"机械加工制造",
"电焊工",
"纺织制造",
"农业生产",
"视频加工",
"手工制造"
]
},
{
"category": "生活服务",
"list": [
"快递",
"安保/保安",
"家政",
"保洁",
"空调维修",
"汽车服务",
"搬家",
"保姆",
"水电维修",
"电脑维修",
"家电维修",
"宠物美容",
"宠物医院",
"手机维修",
"代办服务",
"社工/义工",
"导游服务",
"汽车评估师",
"宝妈",
"插画师",
"画家",
"废品回收",
"电梯维护",
"烟酒回收",
"珠宝首饰回收",
"风水师",
"疏通维修"
]
},
{
"category": "美容美体",
"list": [
"理发",
"美容护肤",
"美甲",
"美瞳",
"化妆师",
"烫发染发",
"保健按摩",
"健身",
"医美整形",
"纹身师",
"减肥瘦身"
]
},
{
"category": "行政管理",
"list": [
"人力资源",
"猎头顾问",
"企业管理",
"劳务派遣",
"酒店管理",
"企业员工",
"后勤管理"
]
},
{
"category": "装修装饰",
"list": [
"室内装修",
"装修设计",
"装修装潢施工",
"家具定制",
"水电暖施工改造"
]
},
{
"category": "财务审计",
"list": [
"财务",
"审计",
"会计",
"出纳",
"财务代理"
]
},
{
"category": "金融保险",
"list": [
"保险销售",
"理财投资",
"银行贷款"
]
},
{
"category": "销售营销",
"list": [
"二手车",
"家具销售",
"五金建材",
"服装销售",
"建材销售",
"房租销售",
"市场营销策划",
"烟酒销售",
"超市",
"电商",
"手机销售",
"珍宝贵金属销售",
"蔬菜水果销售",
"食品销售",
"销售经理",
"个体经营"
]
},
{
"category": "餐饮娱乐",
"list": [
"餐饮服务",
"KTV",
"酒吧",
"网吧/网咖",
"洗浴",
"温泉",
"旅游服务"
]
},
{
"category": "其他",
"list": [
"退休人员",
"退伍军人",
"家庭主妇",
"收藏家"
]
}
]
\ No newline at end of file
......@@ -23,7 +23,7 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
RecyclerView.Adapter<MerchantServiceGroupAdapter.MerchantServiceGroupViewHolder>() {
companion object {
// 是否显示标识
// 是否显示标识(1:显示;0:不显示)
private const val GROUP_SHOW = 1
}
......@@ -39,30 +39,35 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
init {
// 将不显示的数据去除
data?.let {
(it as ArrayList<GetConfigListBean.Item>).iterator().apply {
while (hasNext()) {
if (next().show != GROUP_SHOW) remove()
it.forEach { menuItem ->
if (menuItem.show == GROUP_SHOW) {
groupData.add(menuItem)
}
}
groupData.addAll(it)
// (it as ArrayList<GetConfigListBean.Item>).iterator().apply {
// while (hasNext()) {
// if (next().show != GROUP_SHOW) remove()
// }
// }
// groupData.addAll(it)
}
}
/**
* 更换数据 将不显示的数据去除
*/
fun updateData(data: List<GetConfigListBean.Item>?) {
data?.let {
groupData.clear()
(it as ArrayList<GetConfigListBean.Item>).iterator().apply {
while (hasNext()) {
if (next().show != GROUP_SHOW) remove()
}
}
groupData.addAll(it)
notifyDataSetChanged()
}
}
// /**
// * 更换数据 将不显示的数据去除
// */
// fun updateData(data: List<GetConfigListBean.Item>?) {
// data?.let {
// groupData.clear()
// (it as ArrayList<GetConfigListBean.Item>).iterator().apply {
// while (hasNext()) {
// if (next().show != GROUP_SHOW) remove()
// }
// }
// groupData.addAll(it)
// notifyDataSetChanged()
// }
// }
override fun onCreateViewHolder(
parent: ViewGroup,
......@@ -81,8 +86,7 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
val data = groupData[position]
if (data.show != GROUP_SHOW) return
holder.viewBinding.tvTitle.text = data.group_name
viewBinding.rvService.layoutManager =
GridLayoutManager(context, 4)
viewBinding.rvService.layoutManager = GridLayoutManager(context, 4)
viewBinding.rvService.adapter = MerchantServiceFunctionAdapter(context, data.functions)
}
......@@ -95,6 +99,9 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
val viewBinding: ItemMerchantServiceGroupBinding
) : RecyclerView.ViewHolder(itemView)
/**
* 管理中心菜单列表的分割线
*/
class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() {
override fun getItemOffsets(
outRect: Rect,
......
package com.yidian.shenghuoquan.newscontent.bean
import com.google.gson.annotations.SerializedName
/**
* 职业列表数据模型
*/
class CareerListBean : ArrayList<CareerListBeanItem>()
data class CareerListBeanItem(
@SerializedName("category")
val category: String,
@SerializedName("list")
val list: List<String>
)
package com.yidian.shenghuoquan.newscontent.ui.auth
import android.os.Bundle
import com.google.gson.Gson
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants.Companion.CHOOSE_CAREER
import com.yidian.common.base.BaseActivity
import com.yidian.common.extensions.initTitleBar
import com.yidian.common.services.XEventService
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.adapter.FirstCareerListAdapter
import com.yidian.shenghuoquan.newscontent.adapter.SecondCareerListAdapter
import com.yidian.shenghuoquan.newscontent.bean.CareerListBean
import com.yidian.shenghuoquan.newscontent.databinding.ActivityChooseCareerBinding
import com.yidian.shenghuoquan.newscontent.utils.JsonUtils
import com.yidian.utils.ToastUtil
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
/**
......@@ -16,11 +23,8 @@ import com.yidian.utils.ToastUtil
*/
class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() {
var secondCareer1 = arrayListOf("第一职业1", "第一职业2", "第一职业3", "第一职业4", "第一职业5")
var secondCareer2 = arrayListOf("第二职业1", "第二职业2", "第二职业3", "第二职业4", "第二职业5")
var secondCareer3 = arrayListOf("第三职业1", "第三职业2", "第三职业3", "第三职业4", "第三职业5")
var secondCareer4 = arrayListOf("第四职业1", "第四职业2", "第四职业3", "第四职业4", "第四职业5")
var firstCareer = arrayListOf("互联网", "金融类", "公务员", "自由职业")
private var firstCareer = arrayListOf<String>()
private var secondCareer = arrayListOf<String>()
private val firstListAdapter: FirstCareerListAdapter by lazy { FirstCareerListAdapter() }
private val secondListAdapter: SecondCareerListAdapter by lazy { SecondCareerListAdapter() }
......@@ -42,30 +46,31 @@ class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, resources.getString(R.string.choose_career))
viewBind.rvListFirst.adapter = firstListAdapter
viewBind.rvListSecond.adapter = secondListAdapter
// 解析本地json数据
val jsonStr = JsonUtils.file2JsonStr(this, "Career.json")
val gson = Gson()
val beanList: CareerListBean = gson.fromJson(jsonStr, CareerListBean::class.java)
// 赋值给一级职业分类
beanList.forEach {
firstCareer.add(it.category)
}
// 二级列表默认值
secondCareer.addAll(beanList[0].list)
// 赋值给适配器
firstListAdapter.setList(firstCareer)
secondListAdapter.setList(secondCareer1)
secondListAdapter.setList(secondCareer)
firstListAdapter.setOnItemClickListener { _, _, position ->
when (position) {
0 -> {
secondListAdapter.setList(secondCareer1)
}
1 -> {
secondListAdapter.setList(secondCareer2)
}
2 -> {
secondListAdapter.setList(secondCareer3)
}
3 -> {
secondListAdapter.setList(secondCareer4)
}
}
secondListAdapter.setList(beanList[position].list)
firstListAdapter.setSelectedIndex(position)
}
secondListAdapter.setOnItemClickListener { adapter, _, position ->
secondListAdapter.setSelectedIndex(position)
val secondCareer = adapter.data[position] as String
// todo 回传选择的职业
ToastUtil.showToast(this, "选择的职业:$secondCareer")
// 回传选择的职业
val event = XBaseEvent(XEventConfig.CHOOSE_CAREER, secondCareer)
XEventService.postEvent(event)
}
}
......
......@@ -6,6 +6,7 @@ import android.view.View
import android.widget.CompoundButton
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R
......@@ -15,7 +16,11 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.callback.IAuthPersonalCompleteCallback
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthAuthenticationBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthPersonalCompleteBean
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
import com.yidian.xpage.XPageManager
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
/**
* author: yinjiacheng
......@@ -57,6 +62,7 @@ class LifeAccountPersonalAuthActivity :
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
XEventManager.register(this)
initView()
initListener()
initData()
......@@ -111,10 +117,7 @@ class LifeAccountPersonalAuthActivity :
when (v?.id) {
R.id.iv_back -> XPageManager.pop(null)
R.id.sv_occupation -> {
// TODO: 5/27/21 跳转职业标签选择 选择完成后进行下一步检查
LifeAccountAuthDataManager.personalAuthData.occupation = "工程师"
viewBind.svOccupation.setContentResult("工程师")
checkNextCondition()
XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
}
R.id.btn_next -> {
// 个人认证 完成认证
......@@ -171,4 +174,22 @@ class LifeAccountPersonalAuthActivity :
"request auth complete failure: message: $message"
)
}
override fun onDestroy() {
super.onDestroy()
XEventManager.unRegister(this)
}
@Subscribe(sticky = false, threadMode = ThreadMode.MAIN)
fun onEvent(event: XBaseEvent?) {
when (event?.name) {
XEventConfig.CHOOSE_CAREER -> {
val selectedCareer = event.body as String
LifeAccountAuthDataManager.personalAuthData.occupation = selectedCareer
viewBind.svOccupation.setContentResult(selectedCareer)
checkNextCondition()
}
}
}
}
......@@ -67,6 +67,10 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
// 本期需求无资产功能 仅做UI展示
viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00")
viewBind.avMerchantAsset.setOnClickListener {
XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
}
}
private fun initListener() {
......@@ -105,13 +109,9 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
}
override fun getConfigListSuccess(result: GetConfigListBean.Response?) {
viewBind.rvServiceGroup.layoutManager =
LinearLayoutManager(this)
viewBind.rvServiceGroup.layoutManager = LinearLayoutManager(this)
viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator())
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(
this,
result?.merchant_manager_center?.items
)
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(this, result?.merchant_manager_center?.items)
}
override fun getConfigListFailure(message: String?) {
......@@ -142,10 +142,7 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
override fun onEnterLifeAccountInfo(lifeAccountId: String) {
// 请求生活号详情接口
ApiService.getLifeAccountInfoById(
this,
hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId))
)
ApiService.getLifeAccountInfoById(this, hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId)))
}
override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) {
......
package com.yidian.shenghuoquan.newscontent.utils
import android.content.Context
import android.content.res.AssetManager
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
/**
* JSON解析工具类
*/
object JsonUtils {
//从文件中读取内容转成json字符串
fun file2JsonStr(context: Context, fileName: String): String? {
val stringBuilder = StringBuilder()
try {
val assetManager: AssetManager = context.assets
val isr = InputStreamReader(assetManager.open(fileName))
val bf = BufferedReader(isr)
var line: String?
while (bf.readLine().also { line = it } != null) {
stringBuilder.append(line)
}
bf.close()
isr.close()
return stringBuilder.toString()
} catch (e: IOException) {
e.printStackTrace()
}
return null
}
}
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