diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 66b5c95..9849609 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -159,6 +159,10 @@
android:launchMode="singleTop"
android:screenOrientation="portrait" />
+
+
(), Consumer {
listOf(
HealthHomeFrag(),
// Fragment(),
+ ShopFragment(),
DynamicManagementFrag(),
MessageFragment(),
MineFrag()
@@ -226,28 +228,28 @@ class MainActivity : BaseVmAct(), Consumer {
return@setOnNavigationItemSelectedListener true
}
- /* R.id.nav_server -> {
+ R.id.nav_server -> {
binding.mVp2.setCurrentItem(1, false)
return@setOnNavigationItemSelectedListener true
- }*/
+ }
R.id.nav_dynamic_management -> {
if (MMkvHelper.getLong(Const.USER_ID).toString() == "0"){
RouteManager.goAct(ARouterUrl.LOGIN_ACT)
}else{
- binding.mVp2.setCurrentItem(1, false)
+ binding.mVp2.setCurrentItem(2, false)
return@setOnNavigationItemSelectedListener true
}
}
R.id.nav_message -> {
- binding.mVp2.setCurrentItem(2, false)
+ binding.mVp2.setCurrentItem(3, false)
return@setOnNavigationItemSelectedListener true
}
R.id.nav_mine -> {
- binding.mVp2.setCurrentItem(3, false)
+ binding.mVp2.setCurrentItem(4, false)
return@setOnNavigationItemSelectedListener true
}
diff --git a/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt b/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt
new file mode 100644
index 0000000..befa94d
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt
@@ -0,0 +1,181 @@
+package com.zj365.dc.activity.shop
+
+import android.view.LayoutInflater
+import android.view.View
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.xty.base.act.BaseListAct
+import com.xty.base.act.BaseVmAct
+import com.xty.common.Const
+import com.xty.common.R
+import com.xty.common.arouter.ARouterUrl
+import com.xty.network.model.ShopCategoryBean
+import com.zj365.dc.adapter.shop.ShopCategoryAdapter
+import com.zj365.dc.adapter.shop.ShopChildCategoryAdapter
+import com.zj365.dc.adapter.shop.ShopGoodsTwoAdapter
+import com.zj365.dc.databinding.ActShopCategoryBinding
+import com.zj365.dc.vm.ShopMallVm
+import okhttp3.internal.notify
+import java.util.ArrayList
+
+@Route(path = ARouterUrl.SHOP_CATEGORY)
+class ShopCategoryActivity : BaseVmAct() {
+
+ val binding by lazy { ActShopCategoryBinding.inflate(layoutInflater) }
+
+ val mCategoryAdapter by lazy { ShopCategoryAdapter() }
+
+ val mGoodsAdapter by lazy { ShopGoodsTwoAdapter() }
+
+ val mChildCategoryAdapter by lazy { ShopChildCategoryAdapter() }
+
+ var goodsName:String? = null
+
+ var categoryId:Long = 0L
+ var mCategoryList = ArrayList()
+ var parentId:Long = 0L
+
+ var index = 0
+ var page:Int = 1
+
+ fun initAdapter() {
+
+
+
+ binding.recyclerView.adapter = mGoodsAdapter
+ binding.recyclerView.layoutManager = LinearLayoutManager(this@ShopCategoryActivity)
+
+ binding.childRecyclerView.adapter = mChildCategoryAdapter
+ binding.childRecyclerView.layoutManager = LinearLayoutManager(this@ShopCategoryActivity)
+
+ mChildCategoryAdapter.setOnItemClickListener { adapter, view, position ->
+ var bean = adapter.data[position] as ShopCategoryBean
+ (adapter.data as ArrayList).forEach {
+ it.isChecked = false
+
+ }
+ bean.isChecked = true
+ categoryId = bean.id
+ mViewModel.getGoodsList(goodsName,categoryId,0,page)
+ mChildCategoryAdapter.notifyDataSetChanged()
+ }
+
+ binding.mRefresh.setOnRefreshListener {
+ page = 1
+ loadData()
+ binding.mRefresh.finishRefresh(1000)
+ }
+ binding.mRefresh.setEnableLoadMore(true)
+ binding.mRefresh.setOnLoadMoreListener {
+ page++
+ loadData()
+ binding.mRefresh.finishLoadMore(1000)
+ }
+
+ }
+
+ fun loadData(){
+ mViewModel.getGoodsList(goodsName,categoryId,0,page)
+
+ }
+
+ override fun initView() {
+ super.initView()
+ statusBar(binding.title.mView)
+ binding.title.mTvTitle.text ="商品分类"
+ binding.title.mIvBack.setOnClickListener {
+ finish()
+ }
+ categoryId = intent.getLongExtra("id",0)
+ parentId = categoryId
+
+ mCategoryList = intent.getParcelableArrayListExtra("categoryList")!!
+ initAdapter()
+ mCategoryList.forEachIndexed { index, shopCategoryBean ->
+ if (shopCategoryBean.id == categoryId){
+ this.index = index
+ shopCategoryBean.isChecked = true
+ }
+ }
+
+ binding.categoryRecyclerView.adapter = mCategoryAdapter
+
+ if(mCategoryList.size != 8){
+ binding.categoryRecyclerView.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
+ }else if(mCategoryList.size == 8){
+ binding.categoryRecyclerView.layoutManager = GridLayoutManager(this,4)
+ }
+ mCategoryAdapter.setNewInstance(mCategoryList)
+ binding.categoryRecyclerView.scrollToPosition(index)
+
+ mCategoryAdapter.setOnItemClickListener { adapter, view, position ->
+ var bean = adapter.data[position] as ShopCategoryBean
+ (adapter.data as ArrayList).forEach {
+ it.isChecked = false
+
+ }
+ bean.isChecked = true
+ parentId = bean.id
+ mViewModel.getGoodsCategory(bean.id)
+ mCategoryAdapter.notifyDataSetChanged()
+ }
+ mViewModel.getGoodsCategory(categoryId)
+
+ }
+
+
+ override fun liveObserver() {
+ mViewModel.categoryLiveDate.observe(this){
+ it.data.add(0,ShopCategoryBean(parentId,parentId,"全部",0,null,true))
+ it.data.forEachIndexed { index, shopCategoryBean ->
+
+ if (shopCategoryBean.isChecked){
+ categoryId = shopCategoryBean.id
+ mViewModel.getGoodsList(goodsName,shopCategoryBean.id,0,page)
+
+ }
+ }
+ mChildCategoryAdapter.setNewInstance(it.data)
+ }
+
+
+ mViewModel.goodsLiveData.observe(this){
+
+ if (page == 1) {
+ if (it.data.records.isNullOrEmpty()) {
+ mGoodsAdapter.setNewInstance(null)
+ mGoodsAdapter.setEmptyView(getNoneView())
+ binding.mRefresh?.setEnableLoadMore(false)
+ } else {
+ if (it.data.records.size < Const.PAGE_SIZE) {
+ binding.mRefresh?.setEnableLoadMore(false)
+ } else {
+ binding.mRefresh?.setEnableLoadMore(true)
+ ++page
+ }
+ mGoodsAdapter.setNewInstance(it.data.records)
+ }
+ } else {
+ if (it.data.records.isNullOrEmpty()) {
+ binding.mRefresh?.setEnableLoadMore(false)
+ }else{
+ if (it.data.records.size < Const.PAGE_SIZE) {
+ binding.mRefresh?.setEnableLoadMore(false)
+ }else{
+ ++page
+ }
+ mGoodsAdapter.addData(it.data.records)
+
+ }
+
+ }
+ }
+
+ }
+
+ fun getNoneView() =
+ LayoutInflater.from(this).inflate(R.layout.view_none_data, binding.recyclerView, false)
+
+ override fun setLayout() = binding.root
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zj365/dc/adapter/shop/ShopCategoryAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/shop/ShopCategoryAdapter.kt
new file mode 100644
index 0000000..e362800
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/adapter/shop/ShopCategoryAdapter.kt
@@ -0,0 +1,40 @@
+package com.zj365.dc.adapter.shop
+
+import android.widget.LinearLayout
+import android.widget.TextView
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.ruffian.library.widget.RImageView
+import com.xty.base.adapter.BaseAdapter
+import com.xty.common.setImage
+import com.xty.network.model.ShopCategoryBean
+import com.zj365.dc.R
+import de.hdodenhof.circleimageview.CircleImageView
+
+class ShopCategoryAdapter : BaseAdapter(R.layout.item_shop_categroy) {
+ override fun convert(holder: BaseViewHolder, item: ShopCategoryBean) {
+
+ if (data.size != 8){
+ var screenWidth = context.resources.displayMetrics.widthPixels
+ val layoutParam = holder.getView(R.id.root).layoutParams
+ layoutParam.width = screenWidth /4
+ holder.getView(R.id.root).layoutParams = layoutParam
+ }
+
+ var img = holder.getView(R.id.img_category)
+ var categoryName = holder.getView(R.id.tv_category)
+ if (item.isChecked){
+ img.borderColor = context.getColor(R.color.col_02c)
+ categoryName.setTextColor(context.getColor(R.color.col_02c))
+ }else{
+ img.borderColor = context.getColor(R.color.white)
+ categoryName.setTextColor(context.getColor(R.color.col_313))
+
+ }
+ item.pic?.let {
+ img.setImage(context,it)
+
+ }
+ holder.setText(R.id.tv_category,item.categoryName)
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zj365/dc/adapter/shop/ShopChildCategoryAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/shop/ShopChildCategoryAdapter.kt
new file mode 100644
index 0000000..ebd09ed
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/adapter/shop/ShopChildCategoryAdapter.kt
@@ -0,0 +1,21 @@
+package com.zj365.dc.adapter.shop
+
+import android.graphics.Color
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.xty.base.adapter.BaseAdapter
+import com.xty.network.model.ShopCategoryBean
+import com.zj365.dc.R
+
+class ShopChildCategoryAdapter : BaseAdapter(R.layout.item_category_child) {
+ override fun convert(holder: BaseViewHolder, item: ShopCategoryBean) {
+ holder.setText(R.id.tv_child_category,item.categoryName)
+ if (item.isChecked){
+ holder.setTextColor(R.id.tv_child_category,context.getColor(R.color.col_02c))
+ holder.setBackgroundColor(R.id.tv_child_category, Color.parseColor("#2102C191"))
+ }else{
+ holder.setTextColor(R.id.tv_child_category,context.getColor(R.color.col_313))
+ holder.setBackgroundColor(R.id.tv_child_category,context.getColor(R.color.white))
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zj365/dc/adapter/shop/ShopGoodsAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/shop/ShopGoodsAdapter.kt
new file mode 100644
index 0000000..2b7116c
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/adapter/shop/ShopGoodsAdapter.kt
@@ -0,0 +1,21 @@
+package com.zj365.dc.adapter.shop
+
+import android.widget.TextView
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.ruffian.library.widget.RImageView
+import com.xty.base.adapter.BaseAdapter
+import com.xty.common.setImage
+import com.xty.common.util.SpannableUtils
+import com.xty.network.model.GoodsRecordsBean
+import com.zj365.dc.R
+import org.w3c.dom.Text
+
+class ShopGoodsAdapter : BaseAdapter(R.layout.item_shop_list) {
+ override fun convert(holder: BaseViewHolder, item: GoodsRecordsBean.GoodsBean) {
+ holder.getView(R.id.img_goods).setImage(context,item.imgs)
+ holder.setText(R.id.tv_goods_name,item.prodName)
+ holder.setText(R.id.tv_price,"¥ ${item.price}")
+ SpannableUtils.setMoney(holder.getView(R.id.tv_line_price),item.oriPrice)
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zj365/dc/adapter/shop/ShopGoodsTwoAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/shop/ShopGoodsTwoAdapter.kt
new file mode 100644
index 0000000..b567d2c
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/adapter/shop/ShopGoodsTwoAdapter.kt
@@ -0,0 +1,21 @@
+package com.zj365.dc.adapter.shop
+
+import android.widget.TextView
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.ruffian.library.widget.RImageView
+import com.xty.base.adapter.BaseAdapter
+import com.xty.common.setImage
+import com.xty.common.util.SpannableUtils
+import com.xty.network.model.GoodsRecordsBean
+import com.zj365.dc.R
+
+class ShopGoodsTwoAdapter : BaseAdapter(R.layout.item_goods_list_two_style) {
+ override fun convert(holder: BaseViewHolder, item: GoodsRecordsBean.GoodsBean) {
+ holder.getView(R.id.img_goods).setImage(context,item.imgs)
+ holder.setText(R.id.tv_goods_name,item.prodName)
+ holder.setText(R.id.tv_price,"¥ ${item.price}")
+ SpannableUtils.setMoney(holder.getView(R.id.tv_line_price),item.oriPrice)
+
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt b/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt
new file mode 100644
index 0000000..2a5795c
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt
@@ -0,0 +1,106 @@
+package com.zj365.dc.fragment
+
+import android.os.Parcelable
+import android.text.TextUtils
+import android.view.KeyEvent
+import android.view.View
+import android.view.inputmethod.EditorInfo
+import android.widget.TextView
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.tamsiree.rxkit.RxKeyboardTool
+import com.xty.base.fragment.BaseFragList
+import com.xty.base.fragment.BaseVmFrag
+import com.xty.base.vm.BaseVm
+import com.xty.common.arouter.ARouterUrl
+import com.xty.common.arouter.RouteManager
+import com.xty.common.util.CommonToastUtils
+import com.xty.network.model.ShopCategoryBean
+import com.zj365.dc.adapter.shop.ShopCategoryAdapter
+import com.zj365.dc.adapter.shop.ShopGoodsAdapter
+import com.zj365.dc.databinding.FragShopBinding
+import com.zj365.dc.vm.ShopMallVm
+import java.util.ArrayList
+
+class ShopFragment: BaseFragList() {
+ val binding by lazy { FragShopBinding.inflate(layoutInflater) }
+
+ val mCategoryAdapter by lazy { ShopCategoryAdapter() }
+
+ val mGoodsAdapter by lazy { ShopGoodsAdapter() }
+
+
+ var goodsName:String? = null
+
+ override fun initAdapter() {
+ binding.recyclerView.adapter = mGoodsAdapter
+ binding.recyclerView.layoutManager = GridLayoutManager(requireContext(),2)
+
+ binding.categoryRecyclerView.adapter = mCategoryAdapter
+
+ mCategoryAdapter.setOnItemClickListener { adapter, view, position ->
+ var bean = adapter.data[position] as ShopCategoryBean
+ bundle.clear()
+ bundle.putLong("id",bean.id)
+ bundle.putParcelableArrayList("categoryList",adapter.data as ArrayList)
+ RouteManager.goAct(ARouterUrl.SHOP_CATEGORY,bundle)
+ }
+
+ setRecycleRefresh(binding.recyclerView,binding.mRefresh,true)
+ }
+
+ override fun refresh() {
+ mViewModel.getGoodsList(null,0L,1,page)
+ }
+
+ override fun initView() {
+ super.initView()
+ mViewModel.getGoodsCategory(0L)
+ mViewModel.getGoodsList(null,0L,0,page)
+
+ binding.etSearch.setOnEditorActionListener(object : TextView.OnEditorActionListener {
+ override fun onEditorAction(p0: TextView?, p1: Int, p2: KeyEvent?): Boolean {
+ if(p1 == EditorInfo.IME_ACTION_SEARCH){
+ goodsName = binding.etSearch.text.toString().trim()
+ if(TextUtils.isEmpty(goodsName)){
+ CommonToastUtils.showToast("请输入搜索内容")
+ return true
+ }
+
+ mViewModel.getGoodsList(goodsName,0L,0,page)
+
+ RxKeyboardTool.hideSoftInput(requireActivity())
+ return true
+
+ }
+ return false
+ }
+
+ })
+ }
+
+ override fun setViewModel()= ShopMallVm()
+ override fun observer() {
+ mViewModel.categoryLiveDate.observe(this){
+ if(it.data.size != 8){
+ binding.categoryRecyclerView.layoutManager = LinearLayoutManager(requireContext(),LinearLayoutManager.HORIZONTAL,false)
+ }else if(it.data.size == 8){
+ binding.categoryRecyclerView.layoutManager = GridLayoutManager(requireContext(),4)
+
+ }
+
+ mCategoryAdapter.setNewInstance(it.data)
+ }
+
+ mViewModel.goodsLiveData.observe(this){
+ if(page == 1){
+ mGoodsAdapter.setNewInstance(it.data.records)
+
+ }else{
+ mGoodsAdapter.addData(it.data.records)
+ }
+ }
+ }
+
+ override fun setLayout() = binding.root
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt b/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt
new file mode 100644
index 0000000..a3ccb78
--- /dev/null
+++ b/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt
@@ -0,0 +1,37 @@
+package com.zj365.dc.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.alibaba.fastjson.JSONObject
+import com.xty.base.vm.BaseVm
+import com.xty.network.model.GoodsRecordsBean
+import com.xty.network.model.RespBody
+import com.xty.network.model.ShopCategoryBean
+
+class ShopMallVm : BaseVm() {
+
+ val categoryLiveDate by lazy { MutableLiveData>>() }
+
+ val goodsLiveData by lazy { MutableLiveData>() }
+
+ fun getGoodsCategory(parentId:Long){
+ startHttp {
+ var code = apiInterface().getGoodsCategory(parentId)
+ code.getCodeStatus(categoryLiveDate, nowData)
+ }
+ }
+
+ fun getGoodsList(prodName:String?,categoryId:Long,isRec:Int,pageSize:Int){
+ startHttp {
+ var json = JSONObject()
+ prodName?.let {
+ json.put("prodName",it)
+ }
+ json.put("categoryId",categoryId)
+ json.put("isRec",isRec)
+ json.put("pageSize",20)
+ json.put("pageNum",pageSize)
+ var code = apiInterface().getGoodsList(retrofits.getRequestBody(json.toString()))
+ code.getCodeStatus(goodsLiveData, nowData)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/act_shop_category.xml b/app/src/main/res/layout/act_shop_category.xml
new file mode 100644
index 0000000..2e6603c
--- /dev/null
+++ b/app/src/main/res/layout/act_shop_category.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/frag_shop.xml b/app/src/main/res/layout/frag_shop.xml
new file mode 100644
index 0000000..05b83cc
--- /dev/null
+++ b/app/src/main/res/layout/frag_shop.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_category_child.xml b/app/src/main/res/layout/item_category_child.xml
new file mode 100644
index 0000000..198eb47
--- /dev/null
+++ b/app/src/main/res/layout/item_category_child.xml
@@ -0,0 +1,14 @@
+
+
+
diff --git a/app/src/main/res/layout/item_goods_list_two_style.xml b/app/src/main/res/layout/item_goods_list_two_style.xml
new file mode 100644
index 0000000..f28ec23
--- /dev/null
+++ b/app/src/main/res/layout/item_goods_list_two_style.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_shop_categroy.xml b/app/src/main/res/layout/item_shop_categroy.xml
new file mode 100644
index 0000000..f38a6cc
--- /dev/null
+++ b/app/src/main/res/layout/item_shop_categroy.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_shop_list.xml b/app/src/main/res/layout/item_shop_list.xml
new file mode 100644
index 0000000..dccd992
--- /dev/null
+++ b/app/src/main/res/layout/item_shop_list.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/bottom_nav_bar.xml b/app/src/main/res/menu/bottom_nav_bar.xml
index 980abb8..1f82fd1 100644
--- a/app/src/main/res/menu/bottom_nav_bar.xml
+++ b/app/src/main/res/menu/bottom_nav_bar.xml
@@ -7,11 +7,11 @@
android:icon="@drawable/sel_home"
android:title="@string/home"
app:showAsAction="ifRoom" />
-
+ app:showAsAction="ifRoom" />
- :BaseVmFrag() {
}
refresh.setEnableLoadMore(isLoadMore)
refresh.setOnLoadMoreListener {
+ page++
+ refresh()
refresh.finishLoadMore(1000)
}
}
diff --git a/build.gradle b/build.gradle
index ed99960..952b266 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,7 +15,7 @@ buildscript {
maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" }
maven {url 'https://developer.huawei.com/repo/'}
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
- maven{ url 'https://oss.sonatype.org/content/repositories/snapshots'}
+ // maven{ url 'https://oss.sonatype.org/content/repositories/snapshots'}
}
dependencies {
@@ -42,7 +42,7 @@ allprojects {
maven { url "https://www.jitpack.io" }
maven {url 'https://developer.huawei.com/repo/'}
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
- maven{ url 'https://oss.sonatype.org/content/repositories/snapshots'}
+ // maven{ url 'https://oss.sonatype.org/content/repositories/snapshots'}
flatDir{
dirs project(':common').file('lib')
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 8674b58..066f520 100644
--- a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt
+++ b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt
@@ -22,6 +22,9 @@ class ARouterUrl {
const val MESSAGE_DETAIL_NEW = "/com/zj365/dc/activity/MessageDetailNewAct"
const val WATCH_FAMILY_HEALTH = "/com/zj365/dc/activity/WatchFamilyHealthAct"
+ //商城
+ const val SHOP_CATEGORY = "/com/zj365/dc/activity/shop/ShopCategoryActivity"
+
// const val FAMILY_INFO="/com/zj365/dc/act/FamilyMainAct"
const val AGAIN_SIGN = "/com/zj365/dc/act/AgainSignAct"
diff --git a/common/src/main/java/com/xty/common/util/SpannableUtils.kt b/common/src/main/java/com/xty/common/util/SpannableUtils.kt
index 93bb786..f16bc9b 100644
--- a/common/src/main/java/com/xty/common/util/SpannableUtils.kt
+++ b/common/src/main/java/com/xty/common/util/SpannableUtils.kt
@@ -1,11 +1,13 @@
package com.xty.common.util
+import android.graphics.Paint
import android.graphics.Typeface
import android.text.SpannableString
import android.text.Spanned
import android.text.style.AbsoluteSizeSpan
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
+import android.widget.TextView
object SpannableUtils {
@@ -111,5 +113,12 @@ object SpannableUtils {
return statuSpan
}
+ fun setMoney(txtView: TextView, num:String){
+ var statuSpan = SpannableString("¥ ${num}")
+ txtView.text = statuSpan
+ txtView.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
+ txtView.paint.isAntiAlias = true
+ }
+
}
\ No newline at end of file
diff --git a/common/src/main/res/color/color_02c_333.xml b/common/src/main/res/color/color_02c_333.xml
new file mode 100644
index 0000000..1ad3800
--- /dev/null
+++ b/common/src/main/res/color/color_02c_333.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/common/src/main/res/drawable/selector_ele_setting.xml b/common/src/main/res/drawable/selector_ele_setting.xml
new file mode 100644
index 0000000..63e8a49
--- /dev/null
+++ b/common/src/main/res/drawable/selector_ele_setting.xml
@@ -0,0 +1,20 @@
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/src/main/res/mipmap-xxhdpi/icon_seekbar_drawer.png b/common/src/main/res/mipmap-xxhdpi/icon_seekbar_drawer.png
new file mode 100644
index 0000000..1e0e985
Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_seekbar_drawer.png differ
diff --git a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt
index 810d852..386c786 100644
--- a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt
+++ b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt
@@ -27,6 +27,7 @@ import com.xty.common.setImage
import com.xty.common.util.PermissionUtils
import com.xty.network.MyRetrofit
import com.xty.network.model.SettingBean
+import com.xty.network.model.UserEquipmentInformationizationBean
import com.zj365.mime.BuildConfig
import com.zj365.mime.R
import com.zj365.mime.databinding.ActDevInfoBinding
@@ -53,6 +54,8 @@ class DevInfoAct : BaseVmAct() {
var user: SettingBean.User? = null
var userId: String? = null
+
+ var devInfo: UserEquipmentInformationizationBean? = null
private val unBindDialog by lazy {
FactorySettingDialog(this, getString(R.string.dialog_un_bind)) {
//确认解除绑定
@@ -129,9 +132,16 @@ class DevInfoAct : BaseVmAct() {
binding.tvContactKefu.text = span
binding.tvDeviceSetting.setOnClickListener {
- bundle.clear()
- bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=braceletSetting")
- RouteManager.goAct(ARouterUrl.H5_ACT,bundle)
+ devInfo?.let {
+ if(it.bindType == 1){
+ bundle.clear()
+ bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=braceletSetting")
+ RouteManager.goAct(ARouterUrl.H5_ACT,bundle)
+ }else{
+ RouteManager.goAct(ARouterUrl.WEAR_MANAGER)
+ }
+ }
+
}
binding.tvRecharge.setOnClickListener {
@@ -169,6 +179,7 @@ class DevInfoAct : BaseVmAct() {
}
mViewModel.deviceInfo.observe(this) {
+ devInfo = it.data
if(it.data.bindType == 1){
binding.mNickName.text = "设备名称:${it.data.watchName?:""}"
binding.mNum.text = "设备编码:${it.data.bluetooth?:""}"
@@ -184,7 +195,7 @@ class DevInfoAct : BaseVmAct() {
binding.mActiveCode.text = "设备激活码:${it.data.activationCode?:""}"
binding.mActiveCode.visibility = View.GONE
binding.tvRecharge.visibility = View.GONE
- binding.tvDeviceSetting.visibility = View.GONE
+ binding.tvDeviceSetting.visibility = View.VISIBLE
binding.ivDevice.setImage(this,it.data.deviceImageUrl)
}
diff --git a/mine/src/main/res/layout/act_wear_manager.xml b/mine/src/main/res/layout/act_wear_manager.xml
index 16a4e93..a5fdad2 100644
--- a/mine/src/main/res/layout/act_wear_manager.xml
+++ b/mine/src/main/res/layout/act_wear_manager.xml
@@ -655,6 +655,7 @@
android:background="@color/col_f1f" />
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/network/src/main/java/com/xty/network/ApiInterface.kt b/network/src/main/java/com/xty/network/ApiInterface.kt
index a48dfdb..fda81a1 100644
--- a/network/src/main/java/com/xty/network/ApiInterface.kt
+++ b/network/src/main/java/com/xty/network/ApiInterface.kt
@@ -1846,4 +1846,16 @@ interface ApiInterface {
*/
@POST("customer/material/index")
suspend fun getEnterpriseInfoHomeList():RespBody>
+
+ /**
+ * 商城分类
+ */
+ @GET("customer/mall/category/list")
+ suspend fun getGoodsCategory(@Query("parentId") parentId:Long):RespBody>
+
+ /**
+ * 商品列表
+ */
+ @POST("customer/mall/prod/getProdList")
+ suspend fun getGoodsList(@Body rb: RequestBody):RespBody
}
\ No newline at end of file
diff --git a/network/src/main/java/com/xty/network/model/GoodsRecordsBean.kt b/network/src/main/java/com/xty/network/model/GoodsRecordsBean.kt
new file mode 100644
index 0000000..1719fe8
--- /dev/null
+++ b/network/src/main/java/com/xty/network/model/GoodsRecordsBean.kt
@@ -0,0 +1,19 @@
+package com.xty.network.model
+
+data class GoodsRecordsBean(
+ var records:ArrayList
+) {
+ data class GoodsBean(
+ var id:Long,
+ var prodName:String,
+ var oriPrice:String,
+ var price:String,
+ var brief:String,
+ var content:String,
+ var pic:String,
+ var imgs:String,
+ var status:Int,
+ var categoryId:Long,
+ var prodType:Int,
+ var soldNum:String)
+}
\ No newline at end of file
diff --git a/network/src/main/java/com/xty/network/model/ShopCategoryBean.kt b/network/src/main/java/com/xty/network/model/ShopCategoryBean.kt
new file mode 100644
index 0000000..0cf5a4c
--- /dev/null
+++ b/network/src/main/java/com/xty/network/model/ShopCategoryBean.kt
@@ -0,0 +1,15 @@
+package com.xty.network.model
+
+import android.os.Parcelable
+import kotlinx.android.parcel.Parcelize
+
+@Parcelize
+data class ShopCategoryBean(
+ var id:Long,
+ var parentId:Long,
+ var categoryName:String,
+ var categoryType:Int, //商品类型,1,普通商品,2,VIP商品,3,增值服务
+
+ var pic:String?,
+ var isChecked:Boolean = false
+): Parcelable