diff --git a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt index 4d00c7d..bc80e12 100644 --- a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt @@ -274,10 +274,10 @@ class DynamicManagementFrag : BaseVmFrag(){ //健康档案 R.id.mHealthRecords -> { - // RouteManager.goAct(ARouterUrl.FAMILY_RECORD_ACT) - CommonToastUtils.showToast("敬请期待") + RouteManager.goAct(ARouterUrl.FAMILY_RECORD_ACT) + /*CommonToastUtils.showToast("敬请期待") return@OnClickListener - +*/ } //评估 R.id.mCard -> { diff --git a/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt b/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt index b898bd3..a483067 100644 --- a/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt @@ -251,8 +251,8 @@ HealthHomeFrag : BaseVmFrag() { when(contentData.jumpUrl){ "health_data" ->{ - // RouteManager.goAct(ARouterUrl.FAMILY_RECORD_ACT) - CommonToastUtils.showToast("敬请期待") + RouteManager.goAct(ARouterUrl.FAMILY_RECORD_ACT) +// CommonToastUtils.showToast("敬请期待") } "health_dic" ->{ CommonToastUtils.showToast("敬请期待") @@ -358,8 +358,8 @@ HealthHomeFrag : BaseVmFrag() { } "PSYCHOLOGY" ->{ - // RouteManager.goAct(ARouterUrl.PSYCHOLOGICAL_TEST_LIST_ACT) - CommonToastUtils.showToast("敬请期待") + RouteManager.goAct(ARouterUrl.PSYCHOLOGICAL_TEST_LIST_ACT) +// CommonToastUtils.showToast("敬请期待") } else ->{ diff --git a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt index acc6ba4..d1b3fa9 100644 --- a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt +++ b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt @@ -132,6 +132,8 @@ class ARouterUrl { //健康档案 const val FAMILY_RECORD_ACT = "/health/com/zj365/health/act/healthrecord/HealthRecordMainAct" + const val FAMILY_REPORT_UPLOAD_ACT = "/health/com/zj365/health/act/healthrecord/UploadHealthRecordAct" + const val FAMILY_REPORT_LIST_ACT = "/health/com/zj365/health/act/healthrecord/HealthRecordsListAct" //心理测试 const val PSYCHOLOGICAL_TEST_LIST_ACT = "/health/com/zj365/health/act/psychological/PsychologicalTestMainAct" diff --git a/health/src/main/AndroidManifest.xml b/health/src/main/AndroidManifest.xml index 45bf26a..e9a2ea7 100644 --- a/health/src/main/AndroidManifest.xml +++ b/health/src/main/AndroidManifest.xml @@ -312,6 +312,9 @@ + diff --git a/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt index da119ae..3bbeb1f 100644 --- a/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt +++ b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt @@ -22,6 +22,7 @@ import com.xty.common.weight.HealthBodyView import com.zj365.health.adapter.familyhealth.HealthFamilyTargetAdapter import com.zj365.health.databinding.ActHealthRecordMainBinding import com.zj365.health.model.MyReportBean +import com.zj365.health.vm.HealthRecordMainVm import com.zj365.health.vm.ReportVm import com.zj365.health.weight.HealthSurveyView import kotlinx.coroutines.GlobalScope @@ -30,7 +31,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch @Route(path = ARouterUrl.FAMILY_RECORD_ACT) -class HealthRecordMainAct : BaseVmAct() { +class HealthRecordMainAct : BaseVmAct() { val binding by lazy { ActHealthRecordMainBinding.inflate(layoutInflater) } @@ -46,6 +47,13 @@ class HealthRecordMainAct : BaseVmAct() { override fun liveObserver() { + mViewModel.balanceDietBeanLiveData.observe(this){ + binding.tvDietCalorie.text = "${it.data.heat_val}" + binding.proCho.progress = it.data.cho_percent.toInt() + binding.proFat.progress = it.data.fat_percent + binding.proProtein.progress = it.data.protein_percent + } + } override fun initView() { @@ -56,6 +64,8 @@ class HealthRecordMainAct : BaseVmAct() { finish() } + mViewModel.getBalanceDiet() + initTab() initSurvey() initAdapter() @@ -101,7 +111,7 @@ class HealthRecordMainAct : BaseVmAct() { } binding.llReportRecord.setOnClickListener { - + RouteManager.goAct(ARouterUrl.FAMILY_REPORT_LIST_ACT) } binding.tvCompleteInfo.setOnClickListener { diff --git a/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt index bfb6bff..a08ce83 100644 --- a/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt +++ b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt @@ -1,15 +1,26 @@ package com.zj365.health.act.healthrecord import android.view.View +import androidx.recyclerview.widget.LinearLayoutManager +import com.alibaba.android.arouter.facade.annotation.Route import com.xty.base.act.BaseListAct import com.xty.base.vm.BaseVm +import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.zj365.health.adapter.healthrecord.HealthRecordsAdapter import com.zj365.health.databinding.ActHealthRecordBinding import com.zj365.health.databinding.ActHealthRecordsListBinding +@Route(path = ARouterUrl.FAMILY_REPORT_LIST_ACT) class HealthRecordsListAct : BaseListAct() { val binding by lazy { ActHealthRecordsListBinding.inflate(layoutInflater) } + + val mAdapter by lazy { HealthRecordsAdapter()} + override fun initAdapter() { + binding.recyclerView.adapter = mAdapter + binding.recyclerView.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false) } override fun loadData() { @@ -22,6 +33,9 @@ class HealthRecordsListAct : BaseListAct() { binding.title.mIvBack.setOnClickListener { finish() } + binding.tvUploadReport.setOnClickListener { + RouteManager.goAct(ARouterUrl.FAMILY_REPORT_UPLOAD_ACT) + } } override fun liveObserver() { diff --git a/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt b/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt index 5330889..127a6b1 100644 --- a/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt +++ b/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt @@ -1,18 +1,53 @@ package com.zj365.health.act.healthrecord +import android.content.Intent +import android.text.TextUtils import android.view.View +import androidx.recyclerview.widget.GridLayoutManager +import com.alibaba.android.arouter.facade.annotation.Route +import com.luck.picture.lib.PictureSelector +import com.luck.picture.lib.config.PictureConfig +import com.luck.picture.lib.config.PictureMimeType +import com.tamsiree.rxkit.RxKeyboardTool import com.xty.base.act.BaseListAct import com.xty.base.act.BaseVmAct import com.xty.base.vm.BaseVm +import com.xty.common.TimeSelect +import com.xty.common.arouter.ARouterUrl +import com.xty.common.picture.PictureUtils +import com.xty.common.util.CommonToastUtils +import com.zj365.health.R +import com.zj365.health.adapter.PictureAdapter import com.zj365.health.databinding.ActUploadHealthRecordBinding +@Route(path = ARouterUrl.FAMILY_REPORT_UPLOAD_ACT) class UploadHealthRecordAct : BaseVmAct() { val binding by lazy { ActUploadHealthRecordBinding.inflate(layoutInflater) } + private val mAdapter by lazy { PictureAdapter() } + + private var isCheck = false + private var delete = arrayListOf() + + private val timSelect by lazy { + TimeSelect(this) { + + }.apply { + chooseMany = false + showYear = true + showMonth = true + showDay = true + showHour = true + showMin = true + showSec = false + } + } + override fun liveObserver() { } + override fun initView() { super.initView() statusBar(binding.title.mView) @@ -20,7 +55,68 @@ class UploadHealthRecordAct : BaseVmAct() { binding.title.mIvBack.setOnClickListener { finish() } + + binding.tvUploadTime.setOnClickListener { + RxKeyboardTool.hideSoftInput(this) + timSelect.selectTime(it, "yyyy-MM-dd HH:mm") + } + + binding.recycler.layoutManager = GridLayoutManager(this, 4) + binding.recycler.adapter = mAdapter + mAdapter.addChildClickViewIds(R.id.ivImage, R.id.ivDelete) + mAdapter.setOnItemChildClickListener { adapter, view, position -> + when (view.id) { + R.id.ivImage -> { + if (adapter.data.size < 5) { + isCheck = true + val item = adapter.getItem(position) as String + if (TextUtils.isEmpty(item)) { + val value = 5 - (mAdapter.data.size - 1) + PictureUtils.openCamera(this, PictureMimeType.ofImage(), value) + } + } else { + CommonToastUtils.showToast("最多上传5张图片") + } + } + + R.id.ivDelete -> { + val path = adapter.data[position] as String + if (path.contains("http")) { + delete.add(adapter.data[position] as String) + } + adapter.removeAt(position) + adapter.notifyDataSetChanged() + } + } + } + mAdapter.addData("") + } override fun setLayout() = binding.root + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (resultCode === RESULT_OK) { + when (requestCode) { + PictureConfig.CHOOSE_REQUEST -> { + val result = PictureSelector.obtainMultipleResult(data) + if (result.size > 0) { + if (result.isNotEmpty()) { + for (item in result) { + val path = item.compressPath.ifEmpty { + item.androidQToPath + } + if (isCheck) { + mAdapter.addData(0, path) + mAdapter.notifyDataSetChanged() + } + } + } + } + isCheck = false + } + } + } + } } \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/healthrecord/HealthRecordsAdapter.kt b/health/src/main/java/com/zj365/health/adapter/healthrecord/HealthRecordsAdapter.kt new file mode 100644 index 0000000..6b9262f --- /dev/null +++ b/health/src/main/java/com/zj365/health/adapter/healthrecord/HealthRecordsAdapter.kt @@ -0,0 +1,18 @@ +package com.zj365.health.adapter.healthrecord + +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.xty.base.adapter.BaseAdapter +import com.zj365.health.R + +class HealthRecordsAdapter : BaseAdapter(R.layout.item_health_report_record) { + override fun convert(holder: BaseViewHolder, item: Any) { + + var imgAdapter = HealthRecordsChildAdapter() + var recycler = holder.getView(R.id.recycler) + + recycler.adapter = imgAdapter + recycler.layoutManager = LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false) + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/healthrecord/HealthRecordsChildAdapter.kt b/health/src/main/java/com/zj365/health/adapter/healthrecord/HealthRecordsChildAdapter.kt new file mode 100644 index 0000000..4d9f12e --- /dev/null +++ b/health/src/main/java/com/zj365/health/adapter/healthrecord/HealthRecordsChildAdapter.kt @@ -0,0 +1,10 @@ +package com.zj365.health.adapter.healthrecord + +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.xty.base.adapter.BaseAdapter +import com.zj365.health.R + +class HealthRecordsChildAdapter : BaseAdapter(R.layout.item_health_report_record_child) { + override fun convert(holder: BaseViewHolder, item: Any) { + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/vm/HealthRecordMainVm.kt b/health/src/main/java/com/zj365/health/vm/HealthRecordMainVm.kt new file mode 100644 index 0000000..5775d0e --- /dev/null +++ b/health/src/main/java/com/zj365/health/vm/HealthRecordMainVm.kt @@ -0,0 +1,17 @@ +package com.zj365.health.vm + +import androidx.lifecycle.MutableLiveData +import com.xty.base.vm.BaseVm +import com.xty.network.model.BalanceDietBean +import com.xty.network.model.RespBody + +class HealthRecordMainVm : BaseVm() { + + val balanceDietBeanLiveData by lazy { MutableLiveData>() } + fun getBalanceDiet(){ + startHttp { + var response = apiInterface().getBalanceDiet() + response.getCodeStatus(balanceDietBeanLiveData, nowData) + } + } +} \ No newline at end of file diff --git a/health/src/main/res/layout/act_health_record_main.xml b/health/src/main/res/layout/act_health_record_main.xml index 0edf067..f4725f7 100644 --- a/health/src/main/res/layout/act_health_record_main.xml +++ b/health/src/main/res/layout/act_health_record_main.xml @@ -336,6 +336,7 @@ android:textColor="@color/col_313"/> @@ -8,11 +9,42 @@ + + + + + + + + - - - - - - - - - - - - - - - - - - - + + - - + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/item_health_report_record_child.xml b/health/src/main/res/layout/item_health_report_record_child.xml new file mode 100644 index 0000000..eaee031 --- /dev/null +++ b/health/src/main/res/layout/item_health_report_record_child.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/act/electronicfence/ElectronicFenceSettingAct.kt b/mine/src/main/java/com/zj365/mime/act/electronicfence/ElectronicFenceSettingAct.kt new file mode 100644 index 0000000..5150bce --- /dev/null +++ b/mine/src/main/java/com/zj365/mime/act/electronicfence/ElectronicFenceSettingAct.kt @@ -0,0 +1,24 @@ +package com.zj365.mime.act.electronicfence + +import android.view.View +import com.xty.base.act.BaseVmAct +import com.xty.base.vm.BaseVm +import com.zj365.mime.databinding.ActivityElectronicFenceSettingBinding + +class ElectronicFenceSettingAct : BaseVmAct() { + + val binding by lazy { ActivityElectronicFenceSettingBinding.inflate(layoutInflater) } + override fun liveObserver() { + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "电子围栏设置" + binding.title.mIvBack.setOnClickListener { + finish() + } + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/mine/src/main/res/layout/activity_electronic_fence_setting.xml b/mine/src/main/res/layout/activity_electronic_fence_setting.xml new file mode 100644 index 0000000..55e263c --- /dev/null +++ b/mine/src/main/res/layout/activity_electronic_fence_setting.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/res/layout/layout_ele_fence_setting.xml b/mine/src/main/res/layout/layout_ele_fence_setting.xml new file mode 100644 index 0000000..c07ec3f --- /dev/null +++ b/mine/src/main/res/layout/layout_ele_fence_setting.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/res/layout/layout_empyt_no_data.xml b/mine/src/main/res/layout/layout_empyt_no_data.xml new file mode 100644 index 0000000..417fd35 --- /dev/null +++ b/mine/src/main/res/layout/layout_empyt_no_data.xml @@ -0,0 +1,22 @@ + + + + + + + \ No newline at end of file diff --git a/mine/src/main/res/mipmap-xxhdpi/bg_empty.png b/mine/src/main/res/mipmap-xxhdpi/bg_empty.png new file mode 100644 index 0000000..f2fc806 Binary files /dev/null and b/mine/src/main/res/mipmap-xxhdpi/bg_empty.png differ diff --git a/network/src/main/java/com/xty/network/ApiInterface.kt b/network/src/main/java/com/xty/network/ApiInterface.kt index 5a056cf..2cdd428 100644 --- a/network/src/main/java/com/xty/network/ApiInterface.kt +++ b/network/src/main/java/com/xty/network/ApiInterface.kt @@ -1461,6 +1461,9 @@ interface ApiInterface { @POST("pay/toPay") suspend fun toPay(@Body rb: RequestBody):RespBody + @POST("customer/meals/balanceDiet") + suspend fun getBalanceDiet():RespBody + /** * 商品信息接口 */ diff --git a/network/src/main/java/com/xty/network/model/BalanceDietBean.kt b/network/src/main/java/com/xty/network/model/BalanceDietBean.kt new file mode 100644 index 0000000..99003f6 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/BalanceDietBean.kt @@ -0,0 +1,4 @@ +package com.xty.network.model + +data class BalanceDietBean(var fat_percent:Int,var protein_percent:Int,var heat_val:String,var cho_percent:Int) { +} \ No newline at end of file