diff --git a/.gitignore b/.gitignore
index d935441..0d0349f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,4 +13,5 @@
/build
/captures
.externalNativeBuild
-.cxx
\ No newline at end of file
+.cxx
+/app/release
\ No newline at end of file
diff --git a/app/release/IndustrialOperation_app_v1.0_20250627155600.apk b/app/release/IndustrialOperation_app_v1.0_20250627155600.apk
deleted file mode 100644
index 4ed420c..0000000
Binary files a/app/release/IndustrialOperation_app_v1.0_20250627155600.apk and /dev/null differ
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
deleted file mode 100644
index acdbcf8..0000000
--- a/app/release/output-metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "version": 3,
- "artifactType": {
- "type": "APK",
- "kind": "Directory"
- },
- "applicationId": "com.tairui.industrial_operation",
- "variantName": "release",
- "elements": [
- {
- "type": "SINGLE",
- "filters": [],
- "attributes": [],
- "versionCode": 1,
- "versionName": "1.0",
- "outputFile": "IndustrialOperation_app_v1.0_20250627155600.apk"
- }
- ],
- "elementType": "File"
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 59c4660..d58fde7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -173,6 +173,11 @@
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="false"
android:screenOrientation="portrait" />
+
{
mFragments.add(new HomeFragment());
mTabEntities.add(new TabEntity("商城", R.mipmap.tabar_shopping_sel, R.mipmap.tabar_shopping_nor));
mTitles.add("商城");
- mFragments.add(new ShoppingFragment());
+ mFragments.add(new MallFragment());
mTabEntities.add(new TabEntity("服务", R.mipmap.tabar_service_sel, R.mipmap.tabar_service_nor));
mTitles.add("服务");
mFragments.add(new ServiceFragment());
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java
index fd8a0a3..0e4189c 100644
--- a/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java
+++ b/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java
@@ -40,12 +40,9 @@ public class SplashActivity extends BaseActivity {
}
private void goMain() {
- // KpLog.getInstance().doSaveEventLog(mContext, true);
- //KpLog.getInstance().onAppStart(mContext);
-
if (null != binding.txtTimerSplash) {
setGone(binding.txtTimerSplash, true);
- countTimer = new CountTimer(3 * 1000, INTERVAL);
+ countTimer = new CountTimer(1 * 1000, INTERVAL);
WeakReference weakTimerCountDowner = new WeakReference<>(countTimer);
if (null != weakTimerCountDowner.get()) {
weakTimerCountDowner.get().start();
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java
index b91f49c..0243b86 100644
--- a/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java
+++ b/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java
@@ -3,7 +3,6 @@ package com.tairui.industrial_operation.ui.account;
import com.google.gson.JsonObject;
import com.orhanobut.hawk.Hawk;
import com.rxjava.rxlife.RxLife;
-import com.tairui.industrial_operation.BuildConfig;
import com.tairui.industrial_operation.base.BaseActivity;
import com.tairui.industrial_operation.databinding.ActivityLoginBinding;
import com.tairui.industrial_operation.entity.Api;
@@ -27,10 +26,10 @@ public class LoginActivity extends BaseActivity {
@Override
protected void onFindView(Bundle savedInstanceState) {
- if (BuildConfig.DEBUG) {
- setText(binding.inputUserName, "admin");
- setText(binding.inputUserPass, "admin123");
- }
+// if (BuildConfig.DEBUG) {
+// setText(binding.inputUserName, "admin");
+// setText(binding.inputUserPass, "admin123");
+// }
}
@Override
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/brand/ApplyRecordsActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/brand/ApplyRecordsActivity.java
new file mode 100644
index 0000000..bac217d
--- /dev/null
+++ b/app/src/main/java/com/tairui/industrial_operation/ui/brand/ApplyRecordsActivity.java
@@ -0,0 +1,36 @@
+package com.tairui.industrial_operation.ui.brand;
+
+import com.gyf.immersionbar.ImmersionBar;
+import com.tairui.industrial_operation.base.BaseActivity;
+import com.tairui.industrial_operation.databinding.ActivityApplyRecordsBinding;
+import com.tairui.industrial_operation.util.SingleClickListener;
+
+import android.view.View;
+
+public class ApplyRecordsActivity extends BaseActivity {
+
+ @Override
+ protected Class getBindingClass() {
+ return ActivityApplyRecordsBinding.class;
+ }
+
+ @Override
+ protected void initStatusBar() {
+ ImmersionBar.with(this).fitsSystemWindows(false).transparentStatusBar()
+ .statusBarDarkFont(true).init();
+ }
+
+ @Override
+ protected void onQueryArguments() {
+ }
+
+ @Override
+ protected void onBindListener() {
+ binding.btnBack.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ finish();
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java
index de42dad..6c3fc20 100644
--- a/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java
+++ b/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java
@@ -22,6 +22,12 @@ public class PublicBrandActivity extends BaseActivity {
+
+ private MallAdapter adapter;
+ private int currentPageIndex = 1;
+
+ @Override
+ protected Class getBindingClass() {
+ return FragmentMallBinding.class;
+ }
+
+ @Override
+ protected void onFindView(View rootView) {
+ binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext));
+ adapter = new MallAdapter(new ArrayList<>());
+ binding.refreshRecycler.setAdapter(adapter);
+ }
+
+ @Override
+ protected void onBindListener() {
+ binding.refreshRecycler.setRefreshRecyclerListener(new RefreshRecyclerView.RefreshRecyclerListener() {
+ @Override
+ public void onRefresh() {
+ currentPageIndex = 1;
+ requestData(false);
+ }
+
+ @Override
+ public void onLoadmore() {
+ requestData(true);
+ }
+
+ @Override
+ public void onBlankClick() {
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+ }
+ });
+ adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
+ // Bundle bundle = new Bundle();
+ // bundle.putSerializable("data", (Serializable) adapter.getItem(i));
+ // IntentUtil.startActivity(mContext, LandInfoDetailActivity.class, bundle);
+ });
+ }
+
+ @Override
+ protected void onApplyData() {
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+
+ }
+
+ private void requestData(boolean loadmore) {
+ RxHttp.get(Api.HOME_GOODS_LIST).add("type", 1).add("current", currentPageIndex).add("size", Api.SIZE_PAGE)
+ .asResponse(HomeGoodsEntity.class).as(RxLife.asOnMain(this)).subscribe(data -> {
+ if (loadmore) {
+ binding.refreshRecycler.finishLoadMore();
+ }
+ if (!ArrayUtil.isEmpty(data.getRecords())) {
+ if (loadmore) {
+ adapter.addGoodsData(data.getRecords());
+ } else {
+ initData(data.getRecords());
+ }
+ currentPageIndex += 1;
+ if (ArrayUtil.size(data.getRecords()) < Api.SIZE_PAGE) {
+ binding.refreshRecycler.setNoMoreData(true);
+ } else {
+ binding.refreshRecycler.setNoMoreData(false);
+ }
+ binding.refreshRecycler.showContent();
+ } else {
+ binding.refreshRecycler.showError();
+ binding.refreshRecycler.setNoMoreData(true);
+ }
+ }, (OnError) error -> {
+ binding.refreshRecycler.showError();
+ binding.refreshRecycler.setNoMoreData(true);
+ showError(error.getErrorMsg());
+ });
+ }
+
+ private void initData(List goodsList) {
+ List list = new ArrayList<>();
+ BaseHolderEntity bannerItem = new BaseHolderEntity();
+ bannerItem.setType(MallAdapter.TYPE_BANNER);
+ list.add(bannerItem);
+
+ BaseHolderEntity funcItem = new BaseHolderEntity();
+ funcItem.setType(MallAdapter.TYPE_FUNC);
+ List funcList = new ArrayList<>();
+ BaseHolderEntity itemFunc = new BaseHolderEntity();
+ itemFunc.setData("种子种苗");
+ itemFunc.setSubData(R.mipmap.pic_mall_2);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("化肥");
+ itemFunc.setSubData(R.mipmap.pic_mall_3);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("农药");
+ itemFunc.setSubData(R.mipmap.pic_mall_4);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("泡沫");
+ itemFunc.setSubData(R.mipmap.pic_mall_5);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("地膜");
+ itemFunc.setSubData(R.mipmap.pic_mall_6);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("包装箱");
+ itemFunc.setSubData(R.mipmap.pic_mall_7);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("蔬菜");
+ itemFunc.setSubData(R.mipmap.pic_mall_8);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("中药材");
+ itemFunc.setSubData(R.mipmap.pic_mall_9);
+ funcList.add(itemFunc);
+ itemFunc = new BaseHolderEntity();
+ itemFunc.setData("水果");
+ itemFunc.setSubData(R.mipmap.pic_mall_10);
+ funcList.add(itemFunc);
+ funcItem.setData(funcList);
+ list.add(funcItem);
+
+ BaseHolderEntity goodsItem = new BaseHolderEntity();
+ goodsItem.setType(MallAdapter.TYPE_GOODS);
+ goodsItem.setData(goodsList);
+ list.add(goodsItem);
+
+ adapter.setNewData(list);
+ binding.refreshRecycler.showContent();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallAdapter.java b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallAdapter.java
new file mode 100644
index 0000000..a734948
--- /dev/null
+++ b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallAdapter.java
@@ -0,0 +1,65 @@
+package com.tairui.industrial_operation.ui.mall.adapter;
+
+import java.util.List;
+
+import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.tairui.industrial_operation.R;
+import com.tairui.industrial_operation.base.entity.BaseHolderEntity;
+import com.tairui.industrial_operation.ui.home.adapter.HomeGoodsAdapter;
+import com.tairui.industrial_operation.ui.home.entity.HomeGoodsEntity;
+import com.tairui.industrial_operation.util.DensityUtils;
+import com.tairui.industrial_operation.widget.GridSpacingItemDecoration;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+public class MallAdapter extends BaseMultiItemQuickAdapter {
+
+ public static final int TYPE_BANNER = 1;
+ public static final int TYPE_FUNC = 2;
+ public static final int TYPE_GOODS = 3;
+
+ private HomeGoodsAdapter goodsAdapter;
+
+ public MallAdapter(List list) {
+ super(list);
+ addItemType(TYPE_BANNER, R.layout.item_mall_banner);
+ addItemType(TYPE_FUNC, R.layout.item_home_func);
+ addItemType(TYPE_GOODS, R.layout.item_home_goods);
+ }
+
+ public void addGoodsData(List goods) {
+ if (goodsAdapter != null) {
+ goodsAdapter.addData(goods);
+ }
+ }
+
+ @Override
+ protected void convert(@NonNull BaseViewHolder holder, BaseHolderEntity entity) {
+ switch (holder.getItemViewType()) {
+ case TYPE_FUNC:
+ RecyclerView funcRecycler = holder.getView(R.id.recycle_view);
+ funcRecycler.setLayoutManager(new GridLayoutManager(mContext, 5));
+ MallFuncAdapter funcAdapter = new MallFuncAdapter();
+ funcAdapter.setNewData((List) entity.getData());
+ funcRecycler.setAdapter(funcAdapter);
+ funcAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
+ });
+ break;
+ case TYPE_GOODS:
+ RecyclerView goodsRecycler = holder.getView(R.id.recycle_view);
+ goodsRecycler.setLayoutManager(new GridLayoutManager(mContext, 2));
+ goodsRecycler.addItemDecoration(new GridSpacingItemDecoration(2, DensityUtils.dp2px(mContext, 12), true));
+ goodsAdapter = new HomeGoodsAdapter();
+ goodsAdapter.setNewData((List) entity.getData());
+ goodsRecycler.setAdapter(goodsAdapter);
+ break;
+ default:
+ break;
+ }
+ }
+
+}
+
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallFuncAdapter.java b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallFuncAdapter.java
new file mode 100644
index 0000000..2599ccd
--- /dev/null
+++ b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallFuncAdapter.java
@@ -0,0 +1,21 @@
+package com.tairui.industrial_operation.ui.mall.adapter;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.tairui.industrial_operation.R;
+import com.tairui.industrial_operation.base.entity.BaseHolderEntity;
+
+import androidx.annotation.NonNull;
+
+public class MallFuncAdapter extends BaseQuickAdapter {
+
+ public MallFuncAdapter() {
+ super(R.layout.item_func);
+ }
+
+ @Override
+ protected void convert(@NonNull BaseViewHolder holder, BaseHolderEntity entity) {
+ holder.setText(R.id.title, (String) entity.getData());
+ holder.setImageResource(R.id.img, (int) entity.getSubData());
+ }
+}
diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/shopping/ShoppingFragment.java b/app/src/main/java/com/tairui/industrial_operation/ui/shopping/ShoppingFragment.java
deleted file mode 100644
index 2057773..0000000
--- a/app/src/main/java/com/tairui/industrial_operation/ui/shopping/ShoppingFragment.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.tairui.industrial_operation.ui.shopping;
-
-import com.tairui.industrial_operation.base.BaseFragment;
-import com.tairui.industrial_operation.databinding.FragmentShoppingBinding;
-
-import android.os.Bundle;
-import android.view.View;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-public class ShoppingFragment extends BaseFragment {
-
- @Override
- protected Class getBindingClass() {
- return FragmentShoppingBinding.class;
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_gradient_mall.xml b/app/src/main/res/drawable/bg_gradient_mall.xml
new file mode 100644
index 0000000..9eebc79
--- /dev/null
+++ b/app/src/main/res/drawable/bg_gradient_mall.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_apply_records.xml b/app/src/main/res/layout/activity_apply_records.xml
new file mode 100644
index 0000000..ece0dd3
--- /dev/null
+++ b/app/src/main/res/layout/activity_apply_records.xml
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_public_brand.xml b/app/src/main/res/layout/activity_public_brand.xml
index a5b7a8f..83712cc 100644
--- a/app/src/main/res/layout/activity_public_brand.xml
+++ b/app/src/main/res/layout/activity_public_brand.xml
@@ -177,6 +177,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_mall_banner.xml b/app/src/main/res/layout/item_mall_banner.xml
new file mode 100644
index 0000000..efaa2fc
--- /dev/null
+++ b/app/src/main/res/layout/item_mall_banner.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_shopcart_white.png b/app/src/main/res/mipmap-xxhdpi/ic_shopcart_white.png
new file mode 100644
index 0000000..91ea2f6
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_shopcart_white.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_1.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_1.png
new file mode 100644
index 0000000..fca2dab
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_1.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_10.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_10.png
new file mode 100644
index 0000000..a409c48
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_10.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_2.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_2.png
new file mode 100644
index 0000000..987cd43
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_2.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_3.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_3.png
new file mode 100644
index 0000000..9a89219
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_3.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_4.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_4.png
new file mode 100644
index 0000000..e9e781a
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_4.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_5.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_5.png
new file mode 100644
index 0000000..1cba319
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_5.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_6.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_6.png
new file mode 100644
index 0000000..7b242ab
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_6.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_7.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_7.png
new file mode 100644
index 0000000..9c5d79a
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_7.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_8.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_8.png
new file mode 100644
index 0000000..4f36d04
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_8.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_9.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_9.png
new file mode 100644
index 0000000..e14b016
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_9.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_bg.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_bg.png
new file mode 100644
index 0000000..d054fb3
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_bg.png differ