package com.example.smart.ui.projectevent
|
|
import android.text.TextUtils
|
import android.view.LayoutInflater
|
import android.view.View
|
import androidx.activity.viewModels
|
import androidx.core.view.isVisible
|
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.FragmentActivity
|
import androidx.viewpager2.adapter.FragmentStateAdapter
|
import com.example.basecore.BaseBindingActivity
|
|
import com.example.smart.databinding.ActivityProjectEventBinding
|
import com.example.smart.ui.projectevent.frag.SystemTreeFragment
|
|
import com.example.basecore.util.toast
|
import com.example.smart.ui.projectevent.bean.SystemTreeBean
|
import com.google.android.material.tabs.TabLayoutMediator
|
|
/**
|
* 添加问题
|
*/
|
class ProjectProblemActivity : BaseBindingActivity() {
|
|
|
private val binding by lazy { ActivityProjectEventBinding.inflate(LayoutInflater.from(mContext)) }
|
private val viewModel: ProjectProblemViewModel by viewModels()
|
|
private lateinit var from: String
|
private lateinit var taskId: String
|
private lateinit var planId: String
|
|
override fun initView() {
|
transStatusBar()
|
from = intent.data?.getQueryParameter("from") ?: "issue"
|
taskId = intent.data?.getQueryParameter("id") ?: ""
|
planId = intent.data?.getQueryParameter("plan_id") ?: ""
|
if (from == "correct") {
|
binding.titleLayout.setTitle("正确做法")
|
}
|
|
requestData()
|
|
}
|
|
override fun bindDataObserver() {
|
super.bindDataObserver()
|
viewModel.systemTreeBean.observe(this) {
|
bindPage(it)
|
binding.loadingLayout.loadNull()
|
binding.viewPager.visibility = View.VISIBLE
|
}
|
}
|
|
private fun requestData() {
|
if (TextUtils.isEmpty(taskId)) {
|
toast("任务不存在")
|
return
|
}
|
viewModel.callSystemTree(taskId) {
|
binding.loadingLayout.loadEmpty()
|
binding.viewPager.visibility = View.GONE
|
}
|
}
|
|
private fun bindPage(treeList : List<SystemTreeBean>) {
|
|
binding.viewPager.adapter = PageAdapter(this, treeList)
|
|
binding.run {
|
TabLayoutMediator(tabLayout, viewPager) { tab, position ->
|
tab.text = treeList[position].name
|
}.attach()
|
}
|
}
|
|
inner class PageAdapter(activity: FragmentActivity, val list: List<SystemTreeBean>) :
|
FragmentStateAdapter(activity) {
|
|
override fun createFragment(position: Int): Fragment {
|
return SystemTreeFragment.newInstance(list[position])
|
}
|
|
override fun getItemCount(): Int {
|
return list.size
|
}
|
}
|
|
override fun getRootView() = binding.root
|
|
|
}
|