Browse Source

business的逻辑

liukai 3 years ago
parent
commit
4ef1244fbe
73 changed files with 1759 additions and 67 deletions
  1. 1 0
      cpt_business/src/main/AndroidManifest.xml
  2. 19 0
      cpt_business/src/main/java/com/hongyegroup/cpt_business/mvvm/vm/BusinessAppointmentDateViewModel.kt
  3. 13 0
      cpt_business/src/main/java/com/hongyegroup/cpt_business/mvvm/vm/BusinessAppointmentViewModel.kt
  4. 20 0
      cpt_business/src/main/java/com/hongyegroup/cpt_business/mvvm/vm/BusinessEmployeesViewModel.kt
  5. 15 2
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/activity/BusinessAddStaffActivity.kt
  6. 50 2
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/activity/BusinessAppointmentDateActivity.kt
  7. 252 1
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/activity/BusinessMainActivity.kt
  8. 55 2
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessAppointmentFragment.kt
  9. 67 3
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessEmployeesFragment.kt
  10. 4 0
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessInfosFragment.kt
  11. 4 0
      cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessSettingFragment.kt
  12. BIN
      cpt_business/src/main/res/drawable-hdpi/business_employee_name_icon.webp
  13. BIN
      cpt_business/src/main/res/drawable-hdpi/business_employee_result_icon.webp
  14. BIN
      cpt_business/src/main/res/drawable-hdpi/business_employee_test_date_icon.webp
  15. BIN
      cpt_business/src/main/res/drawable-hdpi/business_employee_vaccine_icon.webp
  16. BIN
      cpt_business/src/main/res/drawable-hdpi/business_home_filter_icon.webp
  17. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_appointment.webp
  18. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_appointment_select.webp
  19. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_employee.webp
  20. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_employees_select.webp
  21. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_info.webp
  22. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_info_select.webp
  23. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_setting.webp
  24. BIN
      cpt_business/src/main/res/drawable-hdpi/business_tab_setting_select.webp
  25. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_employee_name_icon.webp
  26. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_employee_result_icon.webp
  27. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_employee_test_date_icon.webp
  28. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_employee_vaccine_icon.webp
  29. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_home_filter_icon.webp
  30. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_appointment.webp
  31. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_appointment_select.webp
  32. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_employee.webp
  33. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_employees_select.webp
  34. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_info.webp
  35. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_info_select.webp
  36. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_setting.webp
  37. BIN
      cpt_business/src/main/res/drawable-xhdpi/business_tab_setting_select.webp
  38. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_employee_name_icon.webp
  39. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_employee_result_icon.webp
  40. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_employee_test_date_icon.webp
  41. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_employee_vaccine_icon.webp
  42. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_home_filter_icon.webp
  43. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_appointment.webp
  44. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_appointment_select.webp
  45. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_employee.webp
  46. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_employees_select.webp
  47. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_info.webp
  48. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_info_select.webp
  49. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_setting.webp
  50. BIN
      cpt_business/src/main/res/drawable-xxhdpi/business_tab_setting_select.webp
  51. 11 0
      cpt_business/src/main/res/drawable/selector_tab_business_appointment.xml
  52. 11 0
      cpt_business/src/main/res/drawable/selector_tab_business_employee.xml
  53. 11 0
      cpt_business/src/main/res/drawable/selector_tab_business_info.xml
  54. 11 0
      cpt_business/src/main/res/drawable/selector_tab_business_setting.xml
  55. 380 12
      cpt_business/src/main/res/layout/activity_business_add_staff.xml
  56. 98 11
      cpt_business/src/main/res/layout/activity_business_appointment_date.xml
  57. 135 17
      cpt_business/src/main/res/layout/activity_business_main.xml
  58. 64 7
      cpt_business/src/main/res/layout/fragment_business_appointment.xml
  59. 153 7
      cpt_business/src/main/res/layout/fragment_business_employees.xml
  60. 55 0
      cpt_business/src/main/res/layout/item_business_appointment.xml
  61. 158 0
      cpt_business/src/main/res/layout/item_business_appointment_date.xml
  62. 168 0
      cpt_business/src/main/res/layout/item_business_employees.xml
  63. 3 1
      cpt_pensonal/src/main/res/layout/item_my_test.xml
  64. 1 2
      cs_baselib/src/main/java/com/guadou/lib_baselib/view/titlebar/EasyUtil.java
  65. BIN
      cs_cptServices/src/main/res/drawable-hdpi/drop_down_blue_sanjiao.webp
  66. 0 0
      cs_cptServices/src/main/res/drawable-hdpi/pensonal_me_home_btn_bg.webp
  67. 0 0
      cs_cptServices/src/main/res/drawable-hdpi/pensonal_me_home_tag_icon.webp
  68. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/drop_down_blue_sanjiao.webp
  69. 0 0
      cs_cptServices/src/main/res/drawable-xhdpi/pensonal_me_home_btn_bg.webp
  70. 0 0
      cs_cptServices/src/main/res/drawable-xhdpi/pensonal_me_home_tag_icon.webp
  71. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/drop_down_blue_sanjiao.webp
  72. 0 0
      cs_cptServices/src/main/res/drawable-xxhdpi/pensonal_me_home_btn_bg.webp
  73. 0 0
      cs_cptServices/src/main/res/drawable-xxhdpi/pensonal_me_home_tag_icon.webp

+ 1 - 0
cpt_business/src/main/AndroidManifest.xml

@@ -6,6 +6,7 @@
 
         <activity
             android:name=".ui.activity.BusinessMainActivity"
+            android:launchMode="singleTask"
             android:screenOrientation="portrait" />
 
         <activity

+ 19 - 0
cpt_business/src/main/java/com/hongyegroup/cpt_business/mvvm/vm/BusinessAppointmentDateViewModel.kt

@@ -0,0 +1,19 @@
+package com.hongyegroup.cpt_business.mvvm.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_business.BR
+import com.hongyegroup.cpt_business.R
+
+class BusinessAppointmentDateViewModel :BaseViewModel() {
+
+    var mKeywordLiveData: MutableLiveData<String> = MutableLiveData()
+
+    var mCurPage = 1
+    private var isNeedPlaceHolder = true
+    var isNeedCleanAllData = true
+    var mDatas = mutableListOf<String>()
+    val mAdapter by lazy { BaseDataBindingAdapter(R.layout.item_business_appointment_date, BR.item, mDatas) }
+
+}

+ 13 - 0
cpt_business/src/main/java/com/hongyegroup/cpt_business/mvvm/vm/BusinessAppointmentViewModel.kt

@@ -0,0 +1,13 @@
+package com.hongyegroup.cpt_business.mvvm.vm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_business.BR
+import com.hongyegroup.cpt_business.R
+
+class BusinessAppointmentViewModel : BaseViewModel() {
+
+    var mDatas = mutableListOf<String>()
+    val mAdapter by lazy { BaseDataBindingAdapter(R.layout.item_business_appointment, BR.item, mDatas) }
+
+}

+ 20 - 0
cpt_business/src/main/java/com/hongyegroup/cpt_business/mvvm/vm/BusinessEmployeesViewModel.kt

@@ -0,0 +1,20 @@
+package com.hongyegroup.cpt_business.mvvm.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_business.BR
+import com.hongyegroup.cpt_business.R
+
+class BusinessEmployeesViewModel : BaseViewModel() {
+
+    var mKeywordLiveData: MutableLiveData<String> = MutableLiveData()
+
+    var mCurPage = 1
+    private var isNeedPlaceHolder = true
+    var isNeedCleanAllData = true
+    var mDatas = mutableListOf<String>()
+    val mAdapter by lazy { BaseDataBindingAdapter(R.layout.item_business_employees, BR.item, mDatas) }
+
+
+}

+ 15 - 2
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/activity/BusinessAddStaffActivity.kt

@@ -5,12 +5,14 @@ import android.os.Bundle
 import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
 import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.toast
 import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_business.BR
 import com.hongyegroup.cpt_business.R
 import com.hongyegroup.cpt_business.databinding.ActivityBusinessAddStaffBinding
 
 /**
- * 公司 添加旗下的员工页面
+ * 公司 添加或编辑旗下的员工页面
  */
 class BusinessAddStaffActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusinessAddStaffBinding>() {
 
@@ -25,6 +27,7 @@ class BusinessAddStaffActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusin
 
     override fun getDataBindingConfig(): DataBindingConfig {
         return DataBindingConfig(R.layout.activity_business_add_staff)
+            .addBindingParams(BR.click, ClickProxy())
     }
 
     override fun startObserve() {
@@ -33,8 +36,18 @@ class BusinessAddStaffActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusin
 
     override fun init(savedInstanceState: Bundle?) {
 
-
     }
 
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        fun doSave() {
+            toast("保存用户信息")
+            finish()
+        }
+
+    }
 
 }

+ 50 - 2
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/activity/BusinessAppointmentDateActivity.kt

@@ -3,17 +3,21 @@ package com.hongyegroup.cpt_business.ui.activity
 import android.content.Intent
 import android.os.Bundle
 import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
-import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.toast
+import com.guadou.lib_baselib.ext.vertical
 import com.guadou.lib_baselib.utils.CommUtils
+import com.guadou.lib_baselib.utils.KeyboardUtils
+import com.hongyegroup.cpt_business.BR
 import com.hongyegroup.cpt_business.R
 import com.hongyegroup.cpt_business.databinding.ActivityBusinessAppointmentDateBinding
+import com.hongyegroup.cpt_business.mvvm.vm.BusinessAppointmentDateViewModel
 
 /**
  * 公司预约列表
  * 指定日期下面全部的员工的预约列表
  */
-class BusinessAppointmentDateActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusinessAppointmentDateBinding>() {
+class BusinessAppointmentDateActivity : YYBaseVDBActivity<BusinessAppointmentDateViewModel, ActivityBusinessAppointmentDateBinding>() {
 
     companion object {
         fun startInstance() {
@@ -26,6 +30,7 @@ class BusinessAppointmentDateActivity : YYBaseVDBActivity<EmptyViewModel, Activi
 
     override fun getDataBindingConfig(): DataBindingConfig {
         return DataBindingConfig(R.layout.activity_business_appointment_date)
+            .addBindingParams(BR.click, ClickProxy())
     }
 
     override fun startObserve() {
@@ -34,8 +39,51 @@ class BusinessAppointmentDateActivity : YYBaseVDBActivity<EmptyViewModel, Activi
 
     override fun init(savedInstanceState: Bundle?) {
 
+        initRV()
+        initData()
+        initListener()
+    }
+
+    private fun initData() {
+
+        for (i in 1..10) {
+            mViewModel.mDatas.add(i.toString())
+        }
+
+        mViewModel.mAdapter.notifyDataSetChanged()
 
     }
 
+    private fun initListener() {
+
+    }
+
+    private fun initRV() {
+
+        mBinding.recyclerView.vertical().adapter = mViewModel.mAdapter
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //执行搜索
+        fun doSearch() {
+            KeyboardUtils.hideSoftInput(mActivity)
+
+            val searchText = mViewModel.mKeywordLiveData.value
+
+            toast("Search:$searchText")
+
+        }
+
+        //搜索的删除
+        fun searchDel() {
+            mViewModel.mKeywordLiveData.value = ""
+        }
+
+    }
 
 }

+ 252 - 1
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/activity/BusinessMainActivity.kt

@@ -3,15 +3,33 @@ package com.hongyegroup.cpt_business.ui.activity
 import android.annotation.SuppressLint
 import android.content.Intent
 import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.FragmentTransaction
 import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
 import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.utils.CommUtils
+import com.guadou.lib_baselib.utils.StatusBarUtils
+import com.hongyegroup.cpt_business.BR
 import com.hongyegroup.cpt_business.R
 import com.hongyegroup.cpt_business.databinding.ActivityBusinessMainBinding
+import com.hongyegroup.cpt_business.ui.fragment.BusinessAppointmentFragment
+import com.hongyegroup.cpt_business.ui.fragment.BusinessEmployeesFragment
+import com.hongyegroup.cpt_business.ui.fragment.BusinessInfosFragment
+import com.hongyegroup.cpt_business.ui.fragment.BusinessSettingFragment
 
 class BusinessMainActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusinessMainBinding>() {
 
+    //首页的4个TabFragment
+    private var mEmployeeFragment: BusinessEmployeesFragment? = null
+    private var mAppointmentFragment: BusinessAppointmentFragment? = null
+    private var mBusinessInfoFragment: BusinessInfosFragment? = null
+    private var mSettingFragment: BusinessSettingFragment? = null
+
+    private var mCurPosition = 0  //当前Fragment选中的索引
+    private var mClickPage = 0  //当前Fragment选中的索引
+
     companion object {
         fun startInstance() {
             val context = CommUtils.getContext()
@@ -23,6 +41,7 @@ class BusinessMainActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusinessM
 
     override fun getDataBindingConfig(): DataBindingConfig {
         return DataBindingConfig(R.layout.activity_business_main)
+            .addBindingParams(BR.click, ClickProxy())
     }
 
     override fun startObserve() {
@@ -31,9 +50,241 @@ class BusinessMainActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusinessM
 
     @SuppressLint("SetTextI18n")
     override fun init(savedInstanceState: Bundle?) {
+        StatusBarUtils.immersive(this)
+
+        if (savedInstanceState == null) {
+            initFragment()
+            //第一次初始化首页默认显示第一个fragment
+        } else {
+            // Activity因为内存不足的时候,这里进行Fragment恢复
+            restoreFragmentInstance(savedInstanceState)
+            // 因为内存原因Activity退到后天被kill,再打开的时候,会重新走onCreate
+            // 这时候恢复的Fragment默认恢复第一个
+            // 实际中这里可以根据需求进行修改
+            switchFragment(mCurPosition)
+        }
+    }
+
+    // ============================  Fragment begin ↓  =============================
+
+    //切换索引
+    private fun switchFragment(index: Int) {
+        val targetFragment: Fragment?
+        val targetTag = index.toString()
+
+        when (index) {
+            0 -> {
+                targetFragment = mEmployeeFragment
+            }
+            1 -> {
+                targetFragment = mAppointmentFragment
+            }
+            2 -> {
+                targetFragment = mBusinessInfoFragment
+            }
+            3 -> {
+                targetFragment = mSettingFragment
+            }
+            else -> {
+                targetFragment = null
+            }
+
+        }
+
+        if (null == targetFragment) {
+            return
+        }
+
+        val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
+        // 先隐藏掉所有的Fragment
+        hideFragment(transaction)
+
+        // 在 show 操作
+        if (!targetFragment.isAdded) {
+            transaction.add(R.id.fl_container, targetFragment, targetTag)
+            transaction.show(targetFragment)
+            transaction.commit()
+        } else {
+            transaction.show(targetFragment).commit()
+        }
+
+        mCurPosition = index
+
+        setBottomSelected(index)
+
+    }
+
+
+    // 隐藏 fragment
+    private fun hideFragment(transaction: FragmentTransaction) {
+        mEmployeeFragment?.let {
+            transaction.hide(it)
+        }
+        mAppointmentFragment?.let {
+            transaction.hide(it)
+        }
+        mBusinessInfoFragment?.let {
+            transaction.hide(it)
+        }
+        mSettingFragment?.let {
+            transaction.hide(it)
+        }
+    }
+
+    //底部Tab的选中效果
+    private fun setBottomSelected(position: Int) {
+        mBinding.tabCompany.isSelected = false
 
-        mBinding.tvMainText.setText("Business Main Page")
+        //传递进来的Position设置为选中:
+        when (position) {
+            0 -> {
+                mBinding.tabCompany.isSelected = true
+                mBinding.tabAppointment.isSelected = false
+                mBinding.tabMe.isSelected = false
+                mBinding.tabSetting.isSelected = false
+            }
+            1 -> {
+                mBinding.tabCompany.isSelected = false
+                mBinding.tabAppointment.isSelected = true
+                mBinding.tabMe.isSelected = false
+                mBinding.tabSetting.isSelected = false
+            }
+            2 -> {
+                mBinding.tabCompany.isSelected = false
+                mBinding.tabAppointment.isSelected = false
+                mBinding.tabMe.isSelected = true
+                mBinding.tabSetting.isSelected = false
+            }
+            else -> {
+                mBinding.tabCompany.isSelected = false
+                mBinding.tabAppointment.isSelected = false
+                mBinding.tabMe.isSelected = false
+                mBinding.tabSetting.isSelected = true
+            }
+        }
     }
 
+    /**
+     * 初始化Fragment
+     */
+    private fun initFragment() {
+
+        // 正常情况下初始化
+        mEmployeeFragment = BusinessEmployeesFragment()
+        mAppointmentFragment = BusinessAppointmentFragment()
+        mBusinessInfoFragment = BusinessInfosFragment()
+        mSettingFragment = BusinessSettingFragment()
+
+        //第一次显示,选中第一个
+        switchFragment(mCurPosition)
+
+    }
+
+    // activity的销毁标识
+    private var isHomeActDestroy = false
+    private val EXTRA_SAVE_INDEX = "SaveIndex"
+    private val EXTRA_IS_HOME_ACT_DESTROY = "isHomeActDestroy"
+
+    //恢复Fragment
+    private fun restoreFragmentInstance(savedInstanceState: Bundle?) {
+        if (savedInstanceState != null) {
+            mCurPosition = savedInstanceState.getInt(EXTRA_SAVE_INDEX, 0)
+            isHomeActDestroy = savedInstanceState.getBoolean(EXTRA_IS_HOME_ACT_DESTROY, false)
+
+            val manager: FragmentManager = supportFragmentManager
+            val f0 = manager.findFragmentByTag("0")
+            val f1 = manager.findFragmentByTag("1")
+            val f2 = manager.findFragmentByTag("2")
+            val f3 = manager.findFragmentByTag("3")
+
+            // 复用
+            mEmployeeFragment = if (f0 != null) {
+                f0 as BusinessEmployeesFragment
+            } else {
+                BusinessEmployeesFragment()
+            }
+
+            mAppointmentFragment = if (f1 != null) {
+                f1 as BusinessAppointmentFragment
+            } else {
+                BusinessAppointmentFragment()
+            }
+
+            mBusinessInfoFragment = if (f2 != null) {
+                f2 as BusinessInfosFragment
+            } else {
+                BusinessInfosFragment()
+            }
+
+            mSettingFragment = if (f3 != null) {
+                f3 as BusinessSettingFragment
+            } else {
+                BusinessSettingFragment()
+            }
+        }
+    }
 
+    override fun onSaveInstanceState(outState: Bundle) {
+        hideFragment(supportFragmentManager.beginTransaction())
+        outState.putInt(EXTRA_SAVE_INDEX, mCurPosition)
+        outState.putBoolean(EXTRA_IS_HOME_ACT_DESTROY, true)
+        super.onSaveInstanceState(outState)
+    }
+
+    // ============================  Fragment end ↑  =============================
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        fun switchEmployee() {
+            mClickPage = 0
+            if (mClickPage == mCurPosition) {
+                //重复点击
+                mEmployeeFragment?.run {
+                    scrollTopRefresh()
+                }
+            } else {
+                switchFragment(0)
+            }
+        }
+
+        fun switchAppointment() {
+            mClickPage = 1
+            if (mClickPage == mCurPosition) {
+                //重复点击
+                mAppointmentFragment?.run {
+                    scrollTopRefresh()
+                }
+            } else {
+                switchFragment(1)
+            }
+        }
+
+        fun switchInfo() {
+            mClickPage = 2
+            if (mClickPage == mCurPosition) {
+                //重复点击
+                mBusinessInfoFragment?.run {
+                    scrollTopRefresh()
+                }
+            } else {
+                switchFragment(2)
+            }
+        }
+
+        fun switchSetting() {
+            mClickPage = 3
+            if (mClickPage == mCurPosition) {
+                //重复点击
+                mSettingFragment?.run {
+                    scrollTopRefresh()
+                }
+            } else {
+                switchFragment(3)
+            }
+        }
+
+    }
 }

+ 55 - 2
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessAppointmentFragment.kt

@@ -1,20 +1,26 @@
 package com.hongyegroup.cpt_business.ui.fragment
 
 import com.guadou.cs_cptservices.base.fragment.YYBaseVDBFragment
-import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.view.titlebar.EasyUtil
+import com.hongyegroup.cpt_business.BR
 import com.hongyegroup.cpt_business.R
 import com.hongyegroup.cpt_business.databinding.FragmentBusinessAppointmentBinding
+import com.hongyegroup.cpt_business.mvvm.vm.BusinessAppointmentViewModel
+import com.hongyegroup.cpt_business.ui.activity.BusinessAppointmentDateActivity
+import com.hongyegroup.cpt_business.ui.activity.BusinessAppointmentMakeActivity
 
 
 /**
  * 公司用户 首页第二个Tab
  * 公司下面全部的预约列表 按时间日期计数
  */
-class BusinessAppointmentFragment : YYBaseVDBFragment<EmptyViewModel, FragmentBusinessAppointmentBinding>() {
+class BusinessAppointmentFragment : YYBaseVDBFragment<BusinessAppointmentViewModel, FragmentBusinessAppointmentBinding>() {
 
     override fun getDataBindingConfig(): DataBindingConfig {
         return DataBindingConfig(R.layout.fragment_business_appointment)
+            .addBindingParams(BR.click, ClickProxy())
     }
 
     override fun startObserve() {
@@ -22,6 +28,53 @@ class BusinessAppointmentFragment : YYBaseVDBFragment<EmptyViewModel, FragmentBu
     }
 
     override fun init() {
+        //状态栏高度动态设置
+        mBinding.statusPaddingView.layoutParams = mBinding.statusPaddingView.layoutParams.apply {
+            height = EasyUtil.getStateBarHeight(context)
+        }
+
+        initRV()
+        initData()
+        initListener()
+    }
+
+    private fun initData() {
+
+        for (i in 1..10) {
+            mViewModel.mDatas.add(i.toString())
+        }
+
+        mViewModel.mAdapter.notifyDataSetChanged()
+
+    }
+
+    private fun initListener() {
+
+        mViewModel.mAdapter.setOnItemClickListener { _, _, position ->
+            val item = mViewModel.mDatas[position]
+            BusinessAppointmentDateActivity.startInstance()
+        }
+    }
+
+    private fun initRV() {
+
+        mBinding.recyclerView.vertical().adapter = mViewModel.mAdapter
+
+    }
+
+    fun scrollTopRefresh() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //去預約頁面
+        fun gotoMakeAppointmentPage() {
+            BusinessAppointmentMakeActivity.startInstance()
+        }
 
     }
 

+ 67 - 3
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessEmployeesFragment.kt

@@ -1,20 +1,26 @@
 package com.hongyegroup.cpt_business.ui.fragment
 
 import com.guadou.cs_cptservices.base.fragment.YYBaseVDBFragment
-import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.toast
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.KeyboardUtils
+import com.guadou.lib_baselib.view.titlebar.EasyUtil
+import com.hongyegroup.cpt_business.BR
 import com.hongyegroup.cpt_business.R
 import com.hongyegroup.cpt_business.databinding.FragmentBusinessEmployeesBinding
-
+import com.hongyegroup.cpt_business.mvvm.vm.BusinessEmployeesViewModel
+import com.hongyegroup.cpt_business.ui.activity.BusinessAddStaffActivity
 
 /**
  * 公司用户 首页第一个Tab
  * 公司旗下全部员工列表
  */
-class BusinessEmployeesFragment : YYBaseVDBFragment<EmptyViewModel, FragmentBusinessEmployeesBinding>() {
+class BusinessEmployeesFragment : YYBaseVDBFragment<BusinessEmployeesViewModel, FragmentBusinessEmployeesBinding>() {
 
     override fun getDataBindingConfig(): DataBindingConfig {
         return DataBindingConfig(R.layout.fragment_business_employees)
+            .addBindingParams(BR.click, ClickProxy())
     }
 
     override fun startObserve() {
@@ -22,6 +28,64 @@ class BusinessEmployeesFragment : YYBaseVDBFragment<EmptyViewModel, FragmentBusi
     }
 
     override fun init() {
+        //状态栏高度动态设置
+        mBinding.statusPaddingView.layoutParams = mBinding.statusPaddingView.layoutParams.apply {
+            height = EasyUtil.getStateBarHeight(context)
+        }
+
+        initRV()
+        initData()
+        initListener()
+    }
+
+    private fun initData() {
+
+        for (i in 1..10) {
+            mViewModel.mDatas.add(i.toString())
+        }
+
+        mViewModel.mAdapter.notifyDataSetChanged()
+
+    }
+
+    private fun initListener() {
+
+        mViewModel.mAdapter.addChildClickViewIds(R.id.btn_edit_employee)
+        mViewModel.mAdapter.setOnItemChildClickListener { _, _, position ->
+            val item = mViewModel.mDatas[position]
+            BusinessAddStaffActivity.startInstance()
+        }
+    }
+
+    private fun initRV() {
+
+        mBinding.recyclerView.vertical().adapter = mViewModel.mAdapter
+
+    }
+
+    fun scrollTopRefresh() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //执行搜索
+        fun doSearch() {
+            KeyboardUtils.hideSoftInput(mActivity)
+
+            val searchText = mViewModel.mKeywordLiveData.value
+
+            toast("Search:$searchText")
+
+        }
+
+        //搜索的删除
+        fun searchDel() {
+            mViewModel.mKeywordLiveData.value = ""
+        }
 
     }
 

+ 4 - 0
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessInfosFragment.kt

@@ -25,4 +25,8 @@ class BusinessInfosFragment : YYBaseVDBFragment<EmptyViewModel, FragmentBusiness
 
     }
 
+    fun scrollTopRefresh() {
+
+    }
+
 }

+ 4 - 0
cpt_business/src/main/java/com/hongyegroup/cpt_business/ui/fragment/BusinessSettingFragment.kt

@@ -25,4 +25,8 @@ class BusinessSettingFragment : YYBaseVDBFragment<EmptyViewModel, FragmentBusine
 
     }
 
+    fun scrollTopRefresh() {
+
+    }
+
 }

BIN
cpt_business/src/main/res/drawable-hdpi/business_employee_name_icon.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_employee_result_icon.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_employee_test_date_icon.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_employee_vaccine_icon.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_home_filter_icon.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_appointment.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_appointment_select.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_employee.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_employees_select.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_info.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_info_select.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_setting.webp


BIN
cpt_business/src/main/res/drawable-hdpi/business_tab_setting_select.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_employee_name_icon.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_employee_result_icon.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_employee_test_date_icon.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_employee_vaccine_icon.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_home_filter_icon.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_appointment.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_appointment_select.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_employee.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_employees_select.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_info.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_info_select.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_setting.webp


BIN
cpt_business/src/main/res/drawable-xhdpi/business_tab_setting_select.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_employee_name_icon.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_employee_result_icon.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_employee_test_date_icon.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_employee_vaccine_icon.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_home_filter_icon.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_appointment.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_appointment_select.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_employee.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_employees_select.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_info.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_info_select.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_setting.webp


BIN
cpt_business/src/main/res/drawable-xxhdpi/business_tab_setting_select.webp


+ 11 - 0
cpt_business/src/main/res/drawable/selector_tab_business_appointment.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/business_tab_appointment_select" android:state_pressed="true" />
+    <item android:drawable="@drawable/business_tab_appointment_select" android:state_selected="true" />
+    <item android:drawable="@drawable/business_tab_appointment_select" android:state_active="true" />
+    <item android:drawable="@drawable/business_tab_appointment" android:state_selected="false" />
+    <item android:drawable="@drawable/business_tab_appointment" android:state_active="false" />
+    <item android:drawable="@drawable/business_tab_appointment" android:state_pressed="false" />
+
+</selector>

+ 11 - 0
cpt_business/src/main/res/drawable/selector_tab_business_employee.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/business_tab_employees_select" android:state_pressed="true" />
+    <item android:drawable="@drawable/business_tab_employees_select" android:state_selected="true" />
+    <item android:drawable="@drawable/business_tab_employees_select" android:state_active="true" />
+    <item android:drawable="@drawable/business_tab_employee" android:state_selected="false" />
+    <item android:drawable="@drawable/business_tab_employee" android:state_active="false" />
+    <item android:drawable="@drawable/business_tab_employee" android:state_pressed="false" />
+
+</selector>

+ 11 - 0
cpt_business/src/main/res/drawable/selector_tab_business_info.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/business_tab_info_select" android:state_pressed="true" />
+    <item android:drawable="@drawable/business_tab_info_select" android:state_selected="true" />
+    <item android:drawable="@drawable/business_tab_info_select" android:state_active="true" />
+    <item android:drawable="@drawable/business_tab_info" android:state_selected="false" />
+    <item android:drawable="@drawable/business_tab_info" android:state_active="false" />
+    <item android:drawable="@drawable/business_tab_info" android:state_pressed="false" />
+
+</selector>

+ 11 - 0
cpt_business/src/main/res/drawable/selector_tab_business_setting.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/business_tab_setting_select" android:state_pressed="true" />
+    <item android:drawable="@drawable/business_tab_setting_select" android:state_selected="true" />
+    <item android:drawable="@drawable/business_tab_setting_select" android:state_active="true" />
+    <item android:drawable="@drawable/business_tab_setting" android:state_selected="false" />
+    <item android:drawable="@drawable/business_tab_setting" android:state_active="false" />
+    <item android:drawable="@drawable/business_tab_setting" android:state_pressed="false" />
+
+</selector>

+ 380 - 12
cpt_business/src/main/res/layout/activity_business_add_staff.xml

@@ -7,26 +7,394 @@
 
     <data>
 
+        <variable
+            name="click"
+            type="com.hongyegroup.cpt_business.ui.activity.BusinessAddStaffActivity.ClickProxy" />
+
         <import type="android.text.TextUtils" />
 
     </data>
 
-
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="@color/white"
-        tools:context=".ui.activity.BusinessMainActivity">
+        android:background="@color/page_bg"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
 
-        <TextView
-            android:layout_width="wrap_content"
+        <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="Add Staff"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            app:Easy_title="Edit" />
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="@dimen/d_5dp"
+            android:layout_marginTop="5dp"
+            android:layout_marginRight="@dimen/d_5dp"
+            android:layout_marginBottom="@dimen/d_5dp"
+            android:background="@drawable/shadow_round_gray_bg">
+
+            <ScrollView
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="@dimen/d_15dp"
+                android:layout_marginRight="@dimen/d_15dp"
+                android:layout_marginBottom="@dimen/d_3dp"
+                android:overScrollMode="never"
+                android:scrollbars="none">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/d_30dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="@dimen/d_1dp"
+                            android:src="@drawable/pensonal_me_home_tag_icon" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="15dp"
+                            android:text="Full Name"
+                            android:textColor="#FF3E4A5D"
+                            android:textSize="@dimen/d_17sp" />
+
+                        <ImageView
+                            android:layout_width="@dimen/d_20dp"
+                            android:layout_height="20dp"
+                            android:layout_marginBottom="@dimen/d_3dp"
+                            android:src="@drawable/bitian_icon" />
+
+                    </LinearLayout>
+
+                    <EditText
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="20dp"
+                        android:layout_marginTop="@dimen/d_16dp"
+                        android:layout_marginRight="@dimen/d_20dp"
+                        android:background="@null"
+                        android:hint="Please fill in your Full Name"
+                        android:singleLine="true"
+                        android:text="WendyCheng"
+                        android:textColor="#FFBFBFBF"
+                        android:textColorHint="#FFBFBFBF"
+                        android:textSize="@dimen/d_17sp"
+                        binding:typefaceRegular="@{true}" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.8dp"
+                        android:layout_marginLeft="@dimen/d_17dp"
+                        android:layout_marginTop="@dimen/d_14dp"
+                        android:layout_marginRight="@dimen/d_17dp"
+                        android:background="#FFDFE4EE" />
+
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/d_20dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="@dimen/d_1dp"
+                            android:src="@drawable/pensonal_me_home_tag_icon" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="15dp"
+                            android:text="NRIC"
+                            android:textColor="#FF3E4A5D"
+                            android:textSize="@dimen/d_17sp" />
+
+                        <ImageView
+                            android:layout_width="@dimen/d_20dp"
+                            android:layout_height="20dp"
+                            android:layout_marginBottom="@dimen/d_3dp"
+                            android:src="@drawable/bitian_icon" />
+
+                    </LinearLayout>
+
+                    <EditText
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="20dp"
+                        android:layout_marginTop="@dimen/d_16dp"
+                        android:layout_marginRight="@dimen/d_20dp"
+                        android:background="@null"
+                        android:hint="Please fill in your Mobile"
+                        android:singleLine="true"
+                        android:text="S5987654F"
+                        android:textColor="#FFBFBFBF"
+                        android:textColorHint="#FFBFBFBF"
+                        android:textSize="@dimen/d_17sp"
+                        binding:typefaceRegular="@{true}" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.8dp"
+                        android:layout_marginLeft="@dimen/d_17dp"
+                        android:layout_marginTop="@dimen/d_14dp"
+                        android:layout_marginRight="@dimen/d_17dp"
+                        android:background="#FFDFE4EE" />
+
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/d_20dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="@dimen/d_1dp"
+                            android:src="@drawable/pensonal_me_home_tag_icon" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="15dp"
+                            android:text="Vaccine"
+                            android:textColor="#FF3E4A5D"
+                            android:textSize="@dimen/d_17sp" />
+
+                        <ImageView
+                            android:layout_width="@dimen/d_20dp"
+                            android:layout_height="20dp"
+                            android:layout_marginBottom="@dimen/d_3dp"
+                            android:src="@drawable/bitian_icon" />
+
+                    </LinearLayout>
+
+                    <RadioGroup
+                        android:id="@+id/rg_group"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_22dp"
+                        android:layout_marginTop="@dimen/d_15dp"
+                        android:orientation="horizontal">
+
+                        <RadioButton
+                            android:id="@+id/rb_yes"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@color/transparent"
+                            android:button="@drawable/selector_radio_blue_pading10"
+                            android:checked="true"
+                            android:text="Yes"
+                            android:textColor="#FFBFBFBF"
+                            android:textSize="@dimen/d_17sp"
+                            binding:typefaceRegular="@{true}" />
+
+                        <RadioButton
+                            android:id="@+id/rb_no"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_40dp"
+                            android:background="@color/transparent"
+                            android:button="@drawable/selector_radio_blue_pading10"
+                            android:text="No"
+                            android:textColor="#FFBFBFBF"
+                            android:textSize="@dimen/d_17sp"
+                            binding:typefaceRegular="@{true}" />
+
+                    </RadioGroup>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.8dp"
+                        android:layout_marginLeft="@dimen/d_17dp"
+                        android:layout_marginTop="@dimen/d_14dp"
+                        android:layout_marginRight="@dimen/d_17dp"
+                        android:background="#FFDFE4EE" />
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/d_20dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="@dimen/d_1dp"
+                            android:src="@drawable/pensonal_me_home_tag_icon" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="15dp"
+                            android:text="Mobile"
+                            android:textColor="#FF3E4A5D"
+                            android:textSize="@dimen/d_17sp" />
+
+                        <ImageView
+                            android:layout_width="@dimen/d_20dp"
+                            android:layout_height="20dp"
+                            android:layout_marginBottom="@dimen/d_3dp"
+                            android:src="@drawable/bitian_icon" />
+
+                    </LinearLayout>
+
+                    <EditText
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="20dp"
+                        android:layout_marginTop="@dimen/d_16dp"
+                        android:layout_marginRight="@dimen/d_20dp"
+                        android:background="@null"
+                        android:hint="Please fill in your Mobile"
+                        android:singleLine="true"
+                        android:text="+65 89765678"
+                        android:textColor="#FFBFBFBF"
+                        android:textColorHint="#FFBFBFBF"
+                        android:textSize="@dimen/d_17sp"
+                        binding:typefaceRegular="@{true}" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.8dp"
+                        android:layout_marginLeft="@dimen/d_17dp"
+                        android:layout_marginTop="@dimen/d_14dp"
+                        android:layout_marginRight="@dimen/d_17dp"
+                        android:background="#FFDFE4EE" />
+
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/d_20dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="@dimen/d_1dp"
+                            android:src="@drawable/pensonal_me_home_tag_icon" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="15dp"
+                            android:text="Email"
+                            android:textColor="#FF3E4A5D"
+                            android:textSize="@dimen/d_17sp" />
+
+                    </LinearLayout>
+
+                    <EditText
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="20dp"
+                        android:layout_marginTop="@dimen/d_16dp"
+                        android:layout_marginRight="@dimen/d_20dp"
+                        android:background="@null"
+                        android:hint="Please fill in your Email"
+                        android:singleLine="true"
+                        android:textColor="#FFBFBFBF"
+                        android:textColorHint="#FFBFBFBF"
+                        android:textSize="@dimen/d_17sp"
+                        binding:typefaceRegular="@{true}" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.8dp"
+                        android:layout_marginLeft="@dimen/d_17dp"
+                        android:layout_marginTop="@dimen/d_14dp"
+                        android:layout_marginRight="@dimen/d_17dp"
+                        android:background="#FFDFE4EE" />
+
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/d_20dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="@dimen/d_1dp"
+                            android:src="@drawable/pensonal_me_home_tag_icon" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="15dp"
+                            android:text="Home Address"
+                            android:textColor="#FF3E4A5D"
+                            android:textSize="@dimen/d_17sp" />
+
+                    </LinearLayout>
+
+                    <EditText
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="20dp"
+                        android:layout_marginTop="@dimen/d_16dp"
+                        android:layout_marginRight="@dimen/d_20dp"
+                        android:background="@null"
+                        android:hint="Please fill in your Home Address"
+                        android:singleLine="true"
+                        android:textColor="#FFBFBFBF"
+                        android:textColorHint="#FFBFBFBF"
+                        android:textSize="@dimen/d_17sp"
+                        binding:typefaceRegular="@{true}" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.8dp"
+                        android:layout_marginLeft="@dimen/d_17dp"
+                        android:layout_marginTop="@dimen/d_14dp"
+                        android:layout_marginRight="@dimen/d_17dp"
+                        android:background="#FFDFE4EE" />
+
+                    <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_horizontal"
+                        android:layout_marginTop="@dimen/d_20dp"
+                        android:background="@drawable/pensonal_me_home_btn_bg"
+                        android:gravity="center"
+                        android:paddingBottom="5dp"
+                        android:text="Save"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/d_18sp"
+                        binding:clicks="@{click.doSave}" />
+
+                    <View
+                        android:layout_width="1dp"
+                        android:layout_height="10dp" />
+
+                </LinearLayout>
+
+            </ScrollView>
+
+        </FrameLayout>
 
-    </androidx.constraintlayout.widget.ConstraintLayout>
+    </LinearLayout>
 
 </layout>

+ 98 - 11
cpt_business/src/main/res/layout/activity_business_appointment_date.xml

@@ -7,26 +7,113 @@
 
     <data>
 
+        <variable
+            name="viewModel"
+            type="com.hongyegroup.cpt_business.mvvm.vm.BusinessAppointmentDateViewModel" />
+
+        <variable
+            name="click"
+            type="com.hongyegroup.cpt_business.ui.activity.BusinessAppointmentDateActivity.ClickProxy" />
+
         <import type="android.text.TextUtils" />
 
     </data>
 
-
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="@color/white"
-        tools:context=".ui.activity.BusinessMainActivity">
+        android:background="@color/page_bg"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
+
+        <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:Easy_title="Test Appointment" />
+
+        <!--    Search    -->
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_35dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginTop="@dimen/d_8dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:background="@drawable/search_bg"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_16dp"
+                android:src="@drawable/search_bg_icon"
+                binding:clicks="@{click.doSearch}" />
+
+            <EditText
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="@dimen/d_13dp"
+                android:layout_marginRight="@dimen/d_13dp"
+                android:layout_weight="1"
+                android:background="@color/transparent"
+                android:hint="Search"
+                android:imeOptions="actionSearch"
+                android:singleLine="true"
+                android:text="@={viewModel.mKeywordLiveData}"
+                android:textColor="@color/input_black_text"
+                android:textColorHint="#FFBDC1CF"
+                android:textCursorDrawable="@null"
+                android:textSize="@dimen/d_15sp"
+                binding:onKeyEnter="@{click.doSearch}" />
 
-        <TextView
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:padding="@dimen/d_5dp"
+                android:src="@drawable/search_delete"
+                android:visibility="visible"
+                app:tint="@color/input_black_text"
+                binding:clicks="@{click.searchDel}"
+                binding:isVisibleGone="@{!TextUtils.isEmpty(viewModel.mKeywordLiveData)}"
+                tools:tint="@color/input_black_text" />
+
+        </LinearLayout>
+
+        <com.guadou.lib_baselib.font_text_view.TextViewSBold
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="Appointment Date"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginTop="@dimen/d_12dp"
+            android:layout_marginBottom="@dimen/d_2dp"
+            android:drawableRight="@drawable/drop_down_blue_sanjiao"
+            android:drawablePadding="@dimen/d_6dp"
+            android:text="Apr 09, 2021"
+            android:textColor="#FF656F80"
+            android:textSize="@dimen/d_15sp" />
+
+
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refresh_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="@dimen/d_10dp">
+
+            <com.scwang.smart.refresh.header.ClassicsHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:overScrollMode="never"
+                android:scrollbars="none" />
+
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
 
-    </androidx.constraintlayout.widget.ConstraintLayout>
+    </LinearLayout>
 
 </layout>

+ 135 - 17
cpt_business/src/main/res/layout/activity_business_main.xml

@@ -7,27 +7,145 @@
 
     <data>
 
-        <import type="android.text.TextUtils" />
+        <variable
+            name="click"
+            type="com.hongyegroup.cpt_business.ui.activity.BusinessMainActivity.ClickProxy" />
 
     </data>
 
-
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="@color/white"
-        tools:context=".ui.activity.BusinessMainActivity">
-
-        <TextView
-            android:id="@+id/tv_main_text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="Hello world"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
+        android:background="@color/page_bg_white"
+        android:orientation="vertical">
+
+        <FrameLayout
+            android:id="@+id/fl_container"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_0.5dp"
+            android:layout_gravity="bottom"
+            android:background="#E8ECF6" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_50dp"
+            android:background="@color/white"
+            android:orientation="horizontal">
+
+            <!--Company-->
+            <LinearLayout
+                android:id="@+id/tab_company"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:background="@drawable/selector_tab_pensonal_bg_drawable"
+                android:gravity="center"
+                android:onClick="@{()->click.switchEmployee()}"
+                android:orientation="vertical">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:src="@drawable/selector_tab_business_employee" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_4dp"
+                    android:text="My Employees"
+                    android:textColor="@color/selector_tab_main_text"
+                    android:textSize="@dimen/d_11sp" />
+
+            </LinearLayout>
+
+
+            <!--Appointment-->
+            <LinearLayout
+                android:id="@+id/tab_appointment"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:background="@drawable/selector_tab_pensonal_bg_drawable"
+                android:onClick="@{()->click.switchAppointment()}"
+                android:orientation="vertical">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:src="@drawable/selector_tab_business_appointment" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_4dp"
+                    android:text="Test Appointment"
+                    android:textColor="@color/selector_tab_main_text"
+                    android:textSize="@dimen/d_11sp" />
+
+            </LinearLayout>
+
+
+            <!--Me-->
+            <LinearLayout
+                android:id="@+id/tab_me"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:background="@drawable/selector_tab_pensonal_bg_drawable"
+                android:onClick="@{()->click.switchInfo()}"
+                android:orientation="vertical">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:src="@drawable/selector_tab_business_info" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_4dp"
+                    android:text="Business Info"
+                    android:textColor="@color/selector_tab_main_text"
+                    android:textSize="@dimen/d_11sp" />
+
+            </LinearLayout>
+
+
+            <!--Setting-->
+            <LinearLayout
+                android:id="@+id/tab_setting"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:background="@drawable/selector_tab_pensonal_bg_drawable"
+                android:onClick="@{()->click.switchSetting()}"
+                android:orientation="vertical">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:src="@drawable/selector_tab_business_setting" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_4dp"
+                    android:text="Setting"
+                    android:textColor="@color/selector_tab_main_text"
+                    android:textSize="@dimen/d_11sp" />
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+    </LinearLayout>
 
 </layout>

+ 64 - 7
cpt_business/src/main/res/layout/fragment_business_appointment.xml

@@ -7,19 +7,76 @@
 
     <data>
 
+        <variable
+            name="click"
+            type="com.hongyegroup.cpt_business.ui.fragment.BusinessAppointmentFragment.ClickProxy" />
+
+        <import type="android.text.TextUtils" />
+
     </data>
 
     <LinearLayout
-        android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:background="@color/page_bg"
+        android:orientation="vertical">
 
-        <com.guadou.lib_baselib.font_text_view.TextViewRegular
-            android:textSize="@dimen/d_18sp"
-            android:gravity="center"
-            android:text="Appointment"
+        <!--   Title Bar     -->
+        <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
+            android:layout_height="wrap_content"
+            android:background="@color/white"
+            android:orientation="vertical">
+
+            <View
+                android:id="@+id/status_padding_view"
+                android:layout_width="1dp"
+                android:layout_height="0dp" />
+
+            <FrameLayout
+                android:layout_width="match_parent"
+                android:layout_height="46dp">
+
+                <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="Test Appointment"
+                    android:textColor="@color/input_black_text_5D"
+                    android:textSize="@dimen/d_18sp" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical|right"
+                    android:layout_marginRight="@dimen/d_15dp"
+                    android:text="Book"
+                    android:textColor="@color/input_blue_text"
+                    android:textSize="@dimen/d_14sp"
+                    binding:clicks="@{click.gotoMakeAppointmentPage}" />
+
+            </FrameLayout>
+
+        </LinearLayout>
+
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refresh_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="@dimen/d_10dp">
+
+            <com.scwang.smart.refresh.header.ClassicsHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:overScrollMode="never"
+                android:scrollbars="none" />
+
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
 
     </LinearLayout>
 

+ 153 - 7
cpt_business/src/main/res/layout/fragment_business_employees.xml

@@ -7,19 +7,165 @@
 
     <data>
 
+        <variable
+            name="viewModel"
+            type="com.hongyegroup.cpt_business.mvvm.vm.BusinessEmployeesViewModel" />
+
+        <variable
+            name="click"
+            type="com.hongyegroup.cpt_business.ui.fragment.BusinessEmployeesFragment.ClickProxy" />
+
+        <import type="android.text.TextUtils" />
+
     </data>
 
     <LinearLayout
-        android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:background="@color/page_bg"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
 
-        <com.guadou.lib_baselib.font_text_view.TextViewRegular
-            android:textSize="@dimen/d_18sp"
-            android:gravity="center"
-            android:text="My Employees"
+        <!--   Title Bar     -->
+        <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
+            android:layout_height="wrap_content"
+            android:background="@color/white"
+            android:orientation="vertical">
+
+            <View
+                android:id="@+id/status_padding_view"
+                android:layout_width="1dp"
+                android:layout_height="0dp" />
+
+            <FrameLayout
+                android:layout_width="match_parent"
+                android:layout_height="46dp">
+
+                <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="My Employees"
+                    android:textColor="@color/input_black_text_5D"
+                    android:textSize="@dimen/d_18sp" />
+
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="right|center_vertical"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_marginRight="@dimen/d_18dp"
+                        android:src="@drawable/business_home_filter_icon" />
+
+                    <FrameLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="right"
+                        android:layout_marginRight="@dimen/d_20dp">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="@dimen/d_3dp"
+                            android:src="@drawable/notification_white_icon"
+                            app:tint="@color/input_blue_text"
+                            tools:tint="@color/input_blue_text" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                            android:layout_width="11dp"
+                            android:layout_height="11dp"
+                            android:layout_marginLeft="@dimen/d_7dp"
+                            android:background="@drawable/shape_circle_red_bg"
+                            android:gravity="center"
+                            android:text="12"
+                            android:textColor="@color/white"
+                            android:textSize="7sp" />
+
+                    </FrameLayout>
+
+                </LinearLayout>
+
+            </FrameLayout>
+
+        </LinearLayout>
+
+        <!--    Search    -->
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_35dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginTop="@dimen/d_8dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:background="@drawable/search_bg"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_16dp"
+                android:src="@drawable/search_bg_icon"
+                binding:clicks="@{click.doSearch}" />
+
+            <EditText
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="@dimen/d_13dp"
+                android:layout_marginRight="@dimen/d_13dp"
+                android:layout_weight="1"
+                android:background="@color/transparent"
+                android:hint="Search"
+                android:imeOptions="actionSearch"
+                android:singleLine="true"
+                android:text="@={viewModel.mKeywordLiveData}"
+                android:textColor="@color/input_black_text"
+                android:textColorHint="#FFBDC1CF"
+                android:textCursorDrawable="@null"
+                android:textSize="@dimen/d_15sp"
+                binding:onKeyEnter="@{click.doSearch}" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:padding="@dimen/d_5dp"
+                android:src="@drawable/search_delete"
+                android:visibility="visible"
+                app:tint="@color/input_black_text"
+                binding:clicks="@{click.searchDel}"
+                binding:isVisibleGone="@{!TextUtils.isEmpty(viewModel.mKeywordLiveData)}"
+                tools:tint="@color/input_black_text" />
+
+        </LinearLayout>
+
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refresh_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="@dimen/d_10dp">
+
+            <com.scwang.smart.refresh.header.ClassicsHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:overScrollMode="never"
+                android:scrollbars="none" />
+
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
 
     </LinearLayout>
 

+ 55 - 0
cpt_business/src/main/res/layout/item_business_appointment.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:binding="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+
+        <variable
+            name="item"
+            type="java.lang.String" />
+
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/d_12dp"
+        android:layout_marginRight="@dimen/d_12dp"
+        android:layout_marginBottom="@dimen/d_3dp"
+        android:background="@drawable/setting_item_bg"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d_17dp"
+            android:text="18 May 2021"
+            android:textColor="@color/input_black_text_5D"
+            android:textSize="@dimen/d_16sp" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="1dp"
+            android:layout_weight="1" />
+
+        <com.guadou.lib_baselib.font_text_view.TextViewSBold
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d_12dp"
+            android:layout_marginRight="@dimen/d_12dp"
+            android:text="78"
+            android:textColor="@color/input_blue_text"
+            android:textSize="@dimen/d_16sp" />
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/d_17dp"
+            android:src="@drawable/more_black" />
+
+    </LinearLayout>
+
+</layout>

+ 158 - 0
cpt_business/src/main/res/layout/item_business_appointment_date.xml

@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:binding="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+
+        <variable
+            name="item"
+            type="java.lang.String" />
+
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/d_5dp"
+        android:layout_marginTop="-10dp"
+        android:layout_marginRight="@dimen/d_5dp"
+        android:background="@drawable/shadow_round_gray_bg"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_18dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_name_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Name"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="Annie(S****548F)"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_vaccine_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Vaccine"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="No"
+                android:textColor="#FF22A710"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_test_date_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Swab Test Date"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="Apr 09, 2021 15:00"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_result_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Result"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="Negative"
+                android:textColor="@color/input_blue_text"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="1dp"
+            android:layout_height="20dp" />
+
+    </LinearLayout>
+
+</layout>

+ 168 - 0
cpt_business/src/main/res/layout/item_business_employees.xml

@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:binding="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+
+        <variable
+            name="item"
+            type="java.lang.String" />
+
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/d_5dp"
+        android:layout_marginTop="-10dp"
+        android:layout_marginRight="@dimen/d_5dp"
+        android:background="@drawable/shadow_round_gray_bg"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_18dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_name_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Name"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="Annie(S****548F)"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_vaccine_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Vaccine"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="No"
+                android:textColor="#FF22A710"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_test_date_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Swab Test Date"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="Apr 09, 2021 15:00"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_20dp"
+                android:src="@drawable/business_employee_result_icon" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_weight="1"
+                android:text="Result"
+                android:textColor="@color/input_black_text_5D"
+                android:textSize="@dimen/d_15sp" />
+
+            <com.guadou.lib_baselib.font_text_view.TextViewSBold
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_20dp"
+                android:text="Negative"
+                android:textColor="@color/input_blue_text"
+                android:textSize="@dimen/d_15sp" />
+
+        </LinearLayout>
+
+        <com.guadou.lib_baselib.font_text_view.TextViewRegular
+            android:id="@+id/btn_edit_employee"
+            android:layout_width="match_parent"
+            android:layout_height="35dp"
+            android:layout_marginLeft="@dimen/d_18dp"
+            android:layout_marginTop="@dimen/d_17dp"
+            android:layout_marginRight="@dimen/d_18dp"
+            android:layout_marginBottom="@dimen/d_20dp"
+            android:background="@drawable/shape_btn_blue_3round_bg"
+            android:gravity="center"
+            android:text="Edit Information"
+            android:textColor="@color/white"
+            android:textSize="@dimen/d_15sp" />
+
+    </LinearLayout>
+
+</layout>

+ 3 - 1
cpt_pensonal/src/main/res/layout/item_my_test.xml

@@ -13,9 +13,11 @@
     </data>
 
     <LinearLayout
-        android:layout_marginTop="-10dp"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/d_5dp"
+        android:layout_marginTop="-10dp"
+        android:layout_marginRight="@dimen/d_5dp"
         android:background="@drawable/shadow_round_gray_bg"
         android:orientation="vertical">
 

+ 1 - 2
cs_baselib/src/main/java/com/guadou/lib_baselib/view/titlebar/EasyUtil.java

@@ -2,7 +2,6 @@ package com.guadou.lib_baselib.view.titlebar;
 
 import android.content.Context;
 import android.view.View;
-import android.view.WindowManager;
 
 import androidx.core.widget.NestedScrollView;
 import androidx.recyclerview.widget.RecyclerView;
@@ -11,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView;
 /**
  * EasyTitle专用工具类
  */
-class EasyUtil {
+public class EasyUtil {
 
     /**
      * 根据手机的分辨率从 dp 的单位 转成为 px(像素)

BIN
cs_cptServices/src/main/res/drawable-hdpi/drop_down_blue_sanjiao.webp


cpt_pensonal/src/main/res/drawable-hdpi/pensonal_me_home_btn_bg.webp → cs_cptServices/src/main/res/drawable-hdpi/pensonal_me_home_btn_bg.webp


cpt_pensonal/src/main/res/drawable-hdpi/pensonal_me_home_tag_icon.webp → cs_cptServices/src/main/res/drawable-hdpi/pensonal_me_home_tag_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/drop_down_blue_sanjiao.webp


cpt_pensonal/src/main/res/drawable-xhdpi/pensonal_me_home_btn_bg.webp → cs_cptServices/src/main/res/drawable-xhdpi/pensonal_me_home_btn_bg.webp


cpt_pensonal/src/main/res/drawable-xhdpi/pensonal_me_home_tag_icon.webp → cs_cptServices/src/main/res/drawable-xhdpi/pensonal_me_home_tag_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/drop_down_blue_sanjiao.webp


cpt_pensonal/src/main/res/drawable-xxhdpi/pensonal_me_home_btn_bg.webp → cs_cptServices/src/main/res/drawable-xxhdpi/pensonal_me_home_btn_bg.webp


cpt_pensonal/src/main/res/drawable-xxhdpi/pensonal_me_home_tag_icon.webp → cs_cptServices/src/main/res/drawable-xxhdpi/pensonal_me_home_tag_icon.webp