From 759287800a2eb994b201049a0e3791be657a8cd3 Mon Sep 17 00:00:00 2001 From: tongchao Date: Tue, 17 Jun 2025 14:54:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=9F=E5=9C=B0=E8=BF=9D=E8=A7=84=E6=A1=88?= =?UTF-8?q?=E4=BB=B6=E5=A4=84=E7=90=86=EF=BC=9B=E6=8A=95=E5=85=A5=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 15 + .../tairui/gov_affairs_cloud/entity/Api.java | 10 +- .../ui/input/InputGoodsListActivity.java | 75 +++ .../ui/input/entity/InputGoodsListEntity.java | 182 +++++++ .../ui/input/fragment/InputGoodsFragment.java | 187 +++++++ .../ui/land/AddLegalCaseActivity.java | 428 ++++++++++++++++ .../ui/land/IllegalDetailActivity.java | 9 + .../ui/land/IllegalListActivity.java | 47 +- .../ui/land/InspectionListActivity.java | 5 +- .../ui/land/LegalCaseDetailActivity.java | 77 +++ .../ui/land/entity/CaseDetailEntity.java | 210 ++++++++ .../ui/land/entity/IllegalListEntity.java | 88 +++- .../ui/login/LoginActivity.java | 3 + .../ui/workspace/WorkSpaceFragment.java | 3 + .../gov_affairs_cloud/util/AppUtil.java | 8 + .../res/layout/activity_add_legal_case.xml | 479 ++++++++++++++++++ .../res/layout/activity_illegal_detail.xml | 15 + .../res/layout/activity_input_goods_list.xml | 77 +++ .../res/layout/activity_legal_case_detail.xml | 458 +++++++++++++++++ app/src/main/res/layout/item_illegal_2.xml | 3 +- app/src/main/res/layout/item_illegal_case.xml | 95 ++++ .../main/res/layout/item_list_input_goods.xml | 156 ++++++ app/src/main/res/values/colors.xml | 1 + 23 files changed, 2602 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/InputGoodsListActivity.java create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/entity/InputGoodsListEntity.java create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddLegalCaseActivity.java create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/LegalCaseDetailActivity.java create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/CaseDetailEntity.java create mode 100644 app/src/main/res/layout/activity_add_legal_case.xml create mode 100644 app/src/main/res/layout/activity_input_goods_list.xml create mode 100644 app/src/main/res/layout/activity_legal_case_detail.xml create mode 100644 app/src/main/res/layout/item_illegal_case.xml create mode 100644 app/src/main/res/layout/item_list_input_goods.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b74584a..c455f09 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -198,6 +198,21 @@ android:configChanges="orientation|screenSize|keyboardHidden" android:exported="false" android:screenOrientation="portrait" /> + + + { + + private List fragments; + private ArrayList mTitles = new ArrayList<>(); + private TabFragmentPagerAdapter mPagerAdapter; + + @Override + protected Class getBindingClass() { + return ActivityInputGoodsListBinding.class; + } + + private void initFragment() { + fragments = new ArrayList<>(); + //1:农药 2:肥料 3:兽药 4:种源 5:农机 + mTitles.add("全部"); + fragments.add(InputGoodsFragment.newInstance("")); + mTitles.add("农药"); + fragments.add(InputGoodsFragment.newInstance("1")); + mTitles.add("肥料"); + fragments.add(InputGoodsFragment.newInstance("2")); + mTitles.add("兽药"); + fragments.add(InputGoodsFragment.newInstance("3")); + mTitles.add("种源"); + fragments.add(InputGoodsFragment.newInstance("4")); + mTitles.add("农机"); + fragments.add(InputGoodsFragment.newInstance("5")); + + mPagerAdapter = new TabFragmentPagerAdapter(getSupportFragmentManager(), mTitles, fragments); + binding.viewPager.setAdapter(mPagerAdapter);//给ViewPager设置适配器 + binding.viewPager.setOffscreenPageLimit(fragments.size()); + binding.tabBar.setViewPager(binding.viewPager); + binding.viewPager.setCurrentItem(0, false); + } + + @Override + protected void onFindView(Bundle savedInstanceState) { + binding.viewPager.setIsCanScroll(true); + } + + @Override + protected void onBindListener() { + binding.btnBack.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + finish(); + } + }); + binding.btnSearch.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + // IntentUtil.startActivity(mContext, LandSearchActivity.class); + } + }); + } + + @Override + protected void onApplyData() { + initFragment(); + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/entity/InputGoodsListEntity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/entity/InputGoodsListEntity.java new file mode 100644 index 0000000..eaaa13f --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/entity/InputGoodsListEntity.java @@ -0,0 +1,182 @@ +package com.tairui.gov_affairs_cloud.ui.input.entity; + +import java.util.List; + +import com.google.gson.annotations.SerializedName; + +public class InputGoodsListEntity { + + @SerializedName("total") + private Integer total; + @SerializedName("size") + private Integer size; + @SerializedName("current") + private Integer current; + @SerializedName("optimizeCountSql") + private Boolean optimizeCountSql; + @SerializedName("searchCount") + private Boolean searchCount; + @SerializedName("maxLimit") + private Object maxLimit; + @SerializedName("countId") + private Object countId; + @SerializedName("pages") + private Integer pages; + @SerializedName("records") + private List records; + @SerializedName("orders") + private List orders; + + public Integer getTotal() { + return total; + } + + public void setTotal(Integer total) { + this.total = total; + } + + public Integer getSize() { + return size; + } + + public void setSize(Integer size) { + this.size = size; + } + + public Integer getCurrent() { + return current; + } + + public void setCurrent(Integer current) { + this.current = current; + } + + public Boolean isOptimizeCountSql() { + return optimizeCountSql; + } + + public void setOptimizeCountSql(Boolean optimizeCountSql) { + this.optimizeCountSql = optimizeCountSql; + } + + public Boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(Boolean searchCount) { + this.searchCount = searchCount; + } + + public Object getMaxLimit() { + return maxLimit; + } + + public void setMaxLimit(Object maxLimit) { + this.maxLimit = maxLimit; + } + + public Object getCountId() { + return countId; + } + + public void setCountId(Object countId) { + this.countId = countId; + } + + public Integer getPages() { + return pages; + } + + public void setPages(Integer pages) { + this.pages = pages; + } + + public List getRecords() { + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public List getOrders() { + return orders; + } + + public void setOrders(List orders) { + this.orders = orders; + } + + public static class RecordsEntity { + @SerializedName("type") + private String type; + @SerializedName("pic") + private String pic; + @SerializedName("name") + private String name; + @SerializedName("manufacturer") + private String manufacturer; + @SerializedName("dealer") + private String dealer; + @SerializedName("subTypeName") + private String subTypeName; + @SerializedName("shelfLife") + private String shelfLife; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getPic() { + return pic; + } + + public void setPic(String pic) { + this.pic = pic; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer; + } + + public String getDealer() { + return dealer; + } + + public void setDealer(String dealer) { + this.dealer = dealer; + } + + public String getSubTypeName() { + return subTypeName; + } + + public void setSubTypeName(String subTypeName) { + this.subTypeName = subTypeName; + } + + public String getShelfLife() { + return shelfLife; + } + + public void setShelfLife(String shelfLife) { + this.shelfLife = shelfLife; + } + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java new file mode 100644 index 0000000..19cbff3 --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java @@ -0,0 +1,187 @@ +package com.tairui.gov_affairs_cloud.ui.input.fragment; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.rxjava.rxlife.RxLife; +import com.tairui.gov_affairs_cloud.R; +import com.tairui.gov_affairs_cloud.base.BaseFragment; +import com.tairui.gov_affairs_cloud.databinding.FragmentLandResourceInfoBinding; +import com.tairui.gov_affairs_cloud.entity.Api; +import com.tairui.gov_affairs_cloud.entity.EventConstant; +import com.tairui.gov_affairs_cloud.entity.EventMessage; +import com.tairui.gov_affairs_cloud.http.OnError; +import com.tairui.gov_affairs_cloud.ui.input.entity.InputGoodsListEntity; +import com.tairui.gov_affairs_cloud.util.AppUtil; +import com.tairui.gov_affairs_cloud.util.ArrayUtil; +import com.tairui.gov_affairs_cloud.util.ToastUtil; +import com.tairui.gov_affairs_cloud.util.glide.GlideLoader; +import com.tairui.gov_affairs_cloud.widget.RefreshRecyclerView; + +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import rxhttp.RxHttp; +import rxhttp.RxHttpNoBodyParam; + +public class InputGoodsFragment extends BaseFragment { + + private LandResourceInfoAdapter adapter; + private int currentPageIndex = 1; + + private String type = ""; + private String searchWord = ""; + + public static InputGoodsFragment newInstance(String _type) { + InputGoodsFragment fragment = new InputGoodsFragment(); + Bundle args = new Bundle(); + args.putString("type", _type); + fragment.setArguments(args); + return fragment; + } + + @Override + protected Class getBindingClass() { + return FragmentLandResourceInfoBinding.class; + } + + @Override + public void onDestroyView() { + EventBus.getDefault().unregister(this); + super.onDestroyView(); + } + + @Override + protected void onQueryArguments() { + EventBus.getDefault().register(this); + type = getArguments().getString("type"); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onMessageReceive(EventMessage message) { + if (null != message && !TextUtils.isEmpty(message.getLabel())) { + if (EventConstant.REFRESH_LIST.equals(message.getLabel())) { + binding.refreshRecycler.showLoading(); + currentPageIndex = 1; + requestData(false); + } else if (EventConstant.SEARCH_LIST.equals(message.getLabel())) { + searchWord = (String) message.getData(); + binding.refreshRecycler.showLoading(); + currentPageIndex = 1; + requestData(false); + } + } + } + + @Override + protected void onFindView(View rootView) { + binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext)); + adapter = new LandResourceInfoAdapter(); + 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) { + RxHttpNoBodyParam http = RxHttp.get(Api.INPUT_GOODS_LIST); + if (!TextUtils.isEmpty(type)) { + http.add("type", type); + } + if (!TextUtils.isEmpty(searchWord)) { + http.add("keyword", searchWord); + } + http.add("pageNum", currentPageIndex) + .add("pageSize", Api.SIZE_PAGE) + .asResponse(InputGoodsListEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + if (loadmore) { + binding.refreshRecycler.finishLoadMore(); + } + if (!ArrayUtil.isEmpty(data.getRecords())) { + if (loadmore) { + adapter.addData(data.getRecords()); + } else { + adapter.setNewData(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); + ToastUtil.showLongToast(error.getErrorMsg()); + }); + } + + private class LandResourceInfoAdapter extends BaseQuickAdapter { + + public LandResourceInfoAdapter() { + super(R.layout.item_list_input_goods); + } + + @Override + protected void convert(@NonNull BaseViewHolder holder, InputGoodsListEntity.RecordsEntity entity) { + ImageView img = holder.getView(R.id.img); + if (entity.getPic() != null && entity.getPic().indexOf(",") != -1) { + String pics[] = entity.getPic().split(","); + String pic = pics[0]; + GlideLoader.loadOriginal(img, AppUtil.getImageUrl(pic)); + } else { + GlideLoader.loadOriginal(img, AppUtil.getImageUrl(entity.getPic())); + } + holder.setText(R.id.title, entity.getName()); + holder.setText(R.id.factory, entity.getManufacturer()); + holder.setText(R.id.company, entity.getDealer()); + holder.setText(R.id.category, entity.getSubTypeName()); + holder.setText(R.id.useDate, entity.getShelfLife()); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddLegalCaseActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddLegalCaseActivity.java new file mode 100644 index 0000000..222aa6f --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddLegalCaseActivity.java @@ -0,0 +1,428 @@ +package com.tairui.gov_affairs_cloud.ui.land; + +import java.io.File; +import java.util.List; + +import org.greenrobot.eventbus.EventBus; + +import com.bigkoo.pickerview.builder.OptionsPickerBuilder; +import com.bigkoo.pickerview.view.OptionsPickerView; +import com.google.gson.JsonObject; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; +import com.kongzue.albumdialog.PhotoAlbumDialog; +import com.kongzue.albumdialog.util.SelectPhotoCallback; +import com.kongzue.dialogx.dialogs.PopTip; +import com.rxjava.rxlife.RxLife; +import com.tairui.gov_affairs_cloud.base.BaseActivity; +import com.tairui.gov_affairs_cloud.databinding.ActivityAddLegalCaseBinding; +import com.tairui.gov_affairs_cloud.entity.Api; +import com.tairui.gov_affairs_cloud.entity.EventConstant; +import com.tairui.gov_affairs_cloud.entity.EventMessage; +import com.tairui.gov_affairs_cloud.entity.UploadEntity; +import com.tairui.gov_affairs_cloud.http.OnError; +import com.tairui.gov_affairs_cloud.ui.land.entity.DictDataEntity; +import com.tairui.gov_affairs_cloud.util.DateUtils; +import com.tairui.gov_affairs_cloud.util.DensityUtils; +import com.tairui.gov_affairs_cloud.util.SingleClickListener; +import com.tairui.gov_affairs_cloud.util.glide.GlideLoader; + +import android.graphics.Color; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import rxhttp.RxHttp; +import rxhttp.RxHttpFormParam; +import rxhttp.RxHttpJsonParam; + +public class AddLegalCaseActivity extends BaseActivity implements OnDateSetListener { + + private List caseTypeData; + private DictDataEntity selectCaseType; + private List caseWhoData; + private DictDataEntity selectCaseWho; + private List caseFileData; + private DictDataEntity selectFileType; + private List caseResultData; + private DictDataEntity selectResult; + + private TimePickerDialog mDialogMonthDayHourMinute; + + private OptionsPickerView landTypePickerView; + private OptionsPickerView whoPickerView; + private OptionsPickerView fileTypePickerView; + private OptionsPickerView resultPickerView; + + private String landImgPath; + private String landFilePath; + private UploadEntity landImgEntity; + private UploadEntity landFileEntity; + private String illegalId; + private String finishTime; + + @Override + protected Class getBindingClass() { + return ActivityAddLegalCaseBinding.class; + } + + @Override + protected void onQueryArguments() { + illegalId = getIntent().getStringExtra("id"); + } + + @Override + protected void onFindView(Bundle savedInstanceState) { + mDialogMonthDayHourMinute = new TimePickerDialog.Builder() + .setType(Type.MONTH_DAY_HOUR_MIN) + .setTitleStringId("选择违法时间") + .setWheelItemTextSize(14) + .setCallBack(this) + .build(); + } + + @Override + protected void onBindListener() { + binding.btnBack.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + finish(); + } + }); + binding.btnSubmit.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + checkSubmit(); + } + }); + binding.layoutAction.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + showLandTypeDialog(); + } + }); + binding.layoutWho.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + showWhoDialog(); + } + }); + binding.layoutFile.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + showFileTypeDialog(); + } + }); + binding.layoutResult.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + showResultDialog(); + } + }); + binding.layoutTime.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + mDialogMonthDayHourMinute.show(getSupportFragmentManager(), "month_day_hour_minute"); + } + }); + binding.btnSelectImg.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + selectImg(); + } + }); + binding.btnSelectFile.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + selectDocument(); + } + }); + } + + @Override + public void onDateSet(TimePickerDialog timePickerView, long millseconds) { + finishTime = DateUtils.getDateToString(millseconds); + setText(binding.tvTime, finishTime); + } + + private void showLandTypeDialog() { + if (landTypePickerView == null) { + landTypePickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> { + selectCaseType = caseTypeData.get(options1); + setText(binding.tvAction, selectCaseType.getDictLabel()); + }).setTitleText("案件分类选择").setContentTextSize(20) + .setSelectOptions(0) + .setTitleBgColor(Color.WHITE) + .isRestoreItem(true) + .isCenterLabel(false) + .setOutSideColor(0x00000000) + .build(); + + landTypePickerView.setPicker(caseTypeData); + } + landTypePickerView.show(); + } + + private void showWhoDialog() { + if (whoPickerView == null) { + whoPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> { + selectCaseWho = caseWhoData.get(options1); + setText(binding.tvWho, selectCaseWho.getDictLabel()); + }).setTitleText("执法对象选择").setContentTextSize(20) + .setSelectOptions(0) + .setTitleBgColor(Color.WHITE) + .isRestoreItem(true) + .isCenterLabel(false) + .setOutSideColor(0x00000000) + .build(); + + whoPickerView.setPicker(caseWhoData); + } + whoPickerView.show(); + } + + private void showFileTypeDialog() { + if (fileTypePickerView == null) { + fileTypePickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> { + selectFileType = caseFileData.get(options1); + setText(binding.tvFileType, selectFileType.getDictLabel()); + }).setTitleText("执法文书选择").setContentTextSize(20) + .setSelectOptions(0) + .setTitleBgColor(Color.WHITE) + .isRestoreItem(true) + .isCenterLabel(false) + .setOutSideColor(0x00000000) + .build(); + + fileTypePickerView.setPicker(caseFileData); + } + fileTypePickerView.show(); + } + + private void showResultDialog() { + if (resultPickerView == null) { + resultPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> { + selectResult = caseResultData.get(options1); + setText(binding.tvResult, selectResult.getDictLabel()); + }).setTitleText("案件处理结果选择").setContentTextSize(20) + .setSelectOptions(0) + .setTitleBgColor(Color.WHITE) + .isRestoreItem(true) + .isCenterLabel(false) + .setOutSideColor(0x00000000) + .build(); + + resultPickerView.setPicker(caseResultData); + } + resultPickerView.show(); + } + + private void selectImg() { + PhotoAlbumDialog.build() + .setCompressQuality(90) //开启压缩并指定质量 90% + .setCompressPhoto(false) //是否压缩(开启回调格式为 jpg,不开启回调格式为 png) + .setMaxSelectPhotoCount(1) //最多选择三张照片 + .setClip(false) //开启裁剪模式 + .setMaxSize(1000) //最高分辨率 1000(宽或高大于 1000会被等比缩小到 1000内) + .setMaxWidth(1000) //最大宽度 + .setMaxHeight(1000) //最大高度 + .setCallback(new SelectPhotoCallback() { + @Override + public void selectedPhoto(String selectedPhotos) { + landImgPath = selectedPhotos; + GlideLoader.loadOriginal(binding.imgLand, selectedPhotos); + setGone(binding.imgLand, true); + } + }) + .setDialogDialogImplCallback(dialog -> dialog.setRadius(DensityUtils.dp2px(mContext, 25))) + .show(this); + } + + private void selectDocument() { + PhotoAlbumDialog.build() + .setCompressQuality(90) //开启压缩并指定质量 90% + .setCompressPhoto(false) //是否压缩(开启回调格式为 jpg,不开启回调格式为 png) + .setMaxSelectPhotoCount(1) //最多选择三张照片 + .setClip(false) //开启裁剪模式 + .setMaxSize(1000) //最高分辨率 1000(宽或高大于 1000会被等比缩小到 1000内) + .setMaxWidth(1000) //最大宽度 + .setMaxHeight(1000) //最大高度 + .setCallback(new SelectPhotoCallback() { + @Override + public void selectedPhoto(String selectedPhotos) { + landFilePath = selectedPhotos; + GlideLoader.loadOriginal(binding.imgFile, landFilePath); + setGone(binding.imgFile, true); + } + }) + .setDialogDialogImplCallback(dialog -> dialog.setRadius(DensityUtils.dp2px(mContext, 25))) + .show(this); + } + + @Override + protected void onApplyData() { + getIllegalTypeData(); + getCaseWhoData(); + getDocumentTypeData(); + getResultTypeData(); + } + + private void getIllegalTypeData() { + RxHttp.get(Api.LAND_ILLEGAL_TYPE) + .asResponseList(DictDataEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + caseTypeData = data; + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void getCaseWhoData() { + RxHttp.get(Api.ILLEGAL_CASE_WHO) + .asResponseList(DictDataEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + caseWhoData = data; + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void getDocumentTypeData() { + RxHttp.get(Api.ILLEGAL_DOCUMENT_TYPE) + .asResponseList(DictDataEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + caseFileData = data; + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void getResultTypeData() { + RxHttp.get(Api.ILLEGAL_CASE_RESULT_TYPE) + .asResponseList(DictDataEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + caseResultData = data; + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void uploadLandImg() { + RxHttpFormParam http = RxHttp.postForm(Api.FILE_UPLOAD); + http.addFile("file", new File(landImgPath)); + http.asSingleUpload(UploadEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + landImgEntity = data; + uploadFileImg(); + }, (OnError) error -> { + PopTip.show("图片上传失败:" + error.getErrorMsg()).iconError(); + hideLoading(); + }); + } + + private void uploadFileImg() { + RxHttpFormParam http = RxHttp.postForm(Api.FILE_UPLOAD); + http.addFile("file", new File(landFilePath)); + http.asSingleUpload(UploadEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + landFileEntity = data; + doAddCase(); + }, (OnError) error -> { + PopTip.show("图片上传失败:" + error.getErrorMsg()).iconError(); + hideLoading(); + }); + } + + private void checkSubmit() { + String caseName = binding.inputCaseName.getText().toString().trim(); + if (TextUtils.isEmpty(caseName)) { + showError("请输入案件名称"); + return; + } + String caseCode = binding.inputCaseCode.getText().toString().trim(); + if (TextUtils.isEmpty(caseCode)) { + showError("请输入案件编号"); + return; + } + String responsible = binding.inputResponsible.getText().toString().trim(); + if (TextUtils.isEmpty(responsible)) { + showError("请输入案件负责人"); + return; + } + String phone = binding.inputPhone.getText().toString().trim(); + if (TextUtils.isEmpty(phone)) { + showError("请输入负责人电话"); + return; + } + String desc = binding.inputDesc.getText().toString().trim(); + if (TextUtils.isEmpty(desc)) { + showError("请输入案件记录"); + return; + } + if (TextUtils.isEmpty(finishTime)) { + showError("请选择案件处理时间"); + return; + } + if (selectCaseType == null) { + showError("请选择案件分类"); + return; + } + if (selectCaseWho == null) { + showError("请选择案件执法对象类型"); + return; + } + if (TextUtils.isEmpty(landImgPath)) { + showError("请选择现场取整图片或视频"); + return; + } + if (selectFileType == null) { + showError("请选择执法文书类型"); + return; + } + if (TextUtils.isEmpty(landFilePath)) { + showError("请选择执法文书图片"); + return; + } + if (selectResult == null) { + showError("请选择案件处理结果"); + return; + } + showLoading(); + uploadLandImg(); + } + + private void doAddCase() { + RxHttpJsonParam http = RxHttp.postJson(Api.ILLEGAL_CASE_ADD); + String caseName = binding.inputCaseName.getText().toString().trim(); + String caseCode = binding.inputCaseCode.getText().toString().trim(); + String responsible = binding.inputResponsible.getText().toString().trim(); + String phone = binding.inputPhone.getText().toString().trim(); + String desc = binding.inputDesc.getText().toString().trim(); + http.add("resultId", illegalId); + http.add("caseId", caseCode); + http.add("caseName", caseName); + http.add("subjectType", selectCaseWho.getDictValue()); + http.add("responsiblePerson", responsible); + http.add("responsiblePersonPhone", phone); + http.add("caseResultCode", selectResult.getDictValue()); + http.add("caseRecord", desc); + http.add("evidenceFile", landImgEntity.getUrl()); + http.add("evidenceFileType", "image"); + http.add("processingTime", finishTime); + JsonObject files = new JsonObject(); + files.addProperty("url", landFileEntity.getUrl()); + files.addProperty("fileTypeCode", selectFileType.getDictValue()); + http.add("files", files); + http.add("caseTypeCode", selectCaseType.getDictValue()); + http.asResponse(Boolean.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + hideLoading(); + PopTip.show("案件处理成功").iconSuccess(); + EventBus.getDefault().post(new EventMessage(EventConstant.REFRESH_LIST)); + binding.btnSubmit.postDelayed(() -> finish(), 1000); + }, (OnError) error -> { + PopTip.show(error.getErrorMsg()).iconError(); + hideLoading(); + }); + } + +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/IllegalDetailActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/IllegalDetailActivity.java index 373345d..951b6fc 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/IllegalDetailActivity.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/IllegalDetailActivity.java @@ -8,6 +8,7 @@ import com.tairui.gov_affairs_cloud.entity.Api; import com.tairui.gov_affairs_cloud.http.OnError; import com.tairui.gov_affairs_cloud.ui.land.entity.IllegalDetailEntity; import com.tairui.gov_affairs_cloud.util.AppUtil; +import com.tairui.gov_affairs_cloud.util.IntentUtil; import com.tairui.gov_affairs_cloud.util.SingleClickListener; import com.tairui.gov_affairs_cloud.util.glide.GlideLoader; @@ -42,6 +43,12 @@ public class IllegalDetailActivity extends BaseActivity()); binding.refreshRecycler.setAdapter(mAdapter); } @@ -90,7 +90,11 @@ public class IllegalListActivity extends BaseActivity { status = index; setText(binding.tvType, text.toString()); -// binding.refreshRecycler.showLoading(); -// currentPageIndex = 1; -// requestData(false); + binding.refreshRecycler.showLoading(); + currentPageIndex = 1; + requestData(false); return false; }).setItemDivider(new ItemDivider(15, 15, 1)); } @@ -128,7 +132,7 @@ public class IllegalListActivity extends BaseActivity { + private class IllegalListAdapter extends BaseMultiItemQuickAdapter { - public IllegalListAdapter() { - super(R.layout.item_illegal_2); + public IllegalListAdapter(List list) { + super(list); + addItemType(0, R.layout.item_illegal_2); + addItemType(1, R.layout.item_illegal_case); } @Override protected void convert(@NonNull BaseViewHolder holder, IllegalListEntity entity) { - holder.setText(R.id.tvLandName,entity.getLandName()); - holder.setText(R.id.tvIllegalType,entity.getIllegalTypeName()); - holder.setText(R.id.tvDate,entity.getIllegalDate()); - - if (entity.getStatus().equals("0")) { - holder.setText(R.id.tvStatus, "待处理"); - holder.setBackgroundRes(R.id.tvStatus, R.drawable.bg_container_light_green_raduis_2); - holder.setTextColor(R.id.tvStatus, getResColor(R.color.color_txt_green)); + if (holder.getItemViewType() == 0) { + holder.setText(R.id.tvLandName, entity.getLandName()); + holder.setText(R.id.tvIllegalType, entity.getIllegalTypeName()); + holder.setText(R.id.tvDate, entity.getIllegalDate()); } else { - holder.setText(R.id.tvStatus, "已处理"); - holder.setBackgroundRes(R.id.tvStatus, R.drawable.bg_container_light_orange_raduis_2); - holder.setTextColor(R.id.tvStatus, getResColor(R.color.color_txt_orange)); + holder.setText(R.id.tvCaseNo, "案件编号:" + entity.getCaseId()); + holder.setText(R.id.tvCaseName, entity.getCaseName()); + holder.setText(R.id.tvCaseType, entity.getCaseTypeName()); + holder.setText(R.id.tvWho, entity.getResponsiblePerson()); + holder.setText(R.id.tvRegion, entity.getInspectionTaskTarget()); } - } } diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java index d22251e..7f9e8bb 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java @@ -155,14 +155,15 @@ public class InspectionListActivity extends BaseActivity { + + private String caseId; + private CaseDetailEntity mData; + + @Override + protected Class getBindingClass() { + return ActivityLegalCaseDetailBinding.class; + } + + @Override + protected void onQueryArguments() { + caseId = getIntent().getStringExtra("id"); + } + + @Override + protected void onBindListener() { + binding.btnBack.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + finish(); + } + }); + binding.btnIllegalDetail.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + Bundle bundle = new Bundle(); + bundle.putString("id", caseId); + IntentUtil.startActivity(mContext, IllegalDetailActivity.class, bundle); + } + }); + } + + @Override + protected void onApplyData() { + RxHttp.get(Api.ILLEGAL_CASE_DETAIL + caseId) + .asResponse(CaseDetailEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + mData = data; + initView(); + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void initView() { + setText(binding.tvCaseName, mData.getCaseName()); + setText(binding.tvCaseCode, mData.getCaseId()); + setText(binding.tvAction, mData.getCaseTypeName()); + setText(binding.tvWho, mData.getSubjectTypeName()); + setText(binding.tvResponsible, mData.getResponsiblePerson()); + setText(binding.tvPhone, mData.getResponsiblePersonPhone()); + setText(binding.tvDesc, mData.getCaseRecord()); + setText(binding.tvTime, mData.getProcessingTime()); + GlideLoader.loadRound(binding.imgLand, AppUtil.getImageUrl(mData.getEvidenceFile())); + setText(binding.tvFileType, mData.getProcessingTime()); + GlideLoader.loadRound(binding.imgFile, AppUtil.getImageUrl(mData.getFiles().getUrl())); + setText(binding.tvResult, mData.getCaseResultName()); + + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/CaseDetailEntity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/CaseDetailEntity.java new file mode 100644 index 0000000..45c876b --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/CaseDetailEntity.java @@ -0,0 +1,210 @@ +package com.tairui.gov_affairs_cloud.ui.land.entity; + +import com.google.gson.annotations.SerializedName; + +public class CaseDetailEntity { + + @SerializedName("resultId") + private Long resultId; + @SerializedName("caseId") + private String caseId; + @SerializedName("caseName") + private String caseName; + @SerializedName("subjectType") + private String subjectType; + @SerializedName("responsiblePerson") + private String responsiblePerson; + @SerializedName("responsiblePersonPhone") + private String responsiblePersonPhone; + @SerializedName("caseResultCode") + private String caseResultCode; + @SerializedName("caseRecord") + private String caseRecord; + @SerializedName("evidenceFile") + private String evidenceFile; + @SerializedName("evidenceFileType") + private String evidenceFileType; + @SerializedName("processingTime") + private String processingTime; + @SerializedName("files") + private FilesEntity files; + @SerializedName("caseTypeCode") + private String caseTypeCode; + @SerializedName("id") + private String id; + @SerializedName("subjectTypeName") + private String subjectTypeName; + @SerializedName("caseTypeName") + private String caseTypeName; + @SerializedName("caseResultName") + private String caseResultName; + + public Long getResultId() { + return resultId; + } + + public void setResultId(Long resultId) { + this.resultId = resultId; + } + + public String getCaseId() { + return caseId; + } + + public void setCaseId(String caseId) { + this.caseId = caseId; + } + + public String getCaseName() { + return caseName; + } + + public void setCaseName(String caseName) { + this.caseName = caseName; + } + + public String getSubjectType() { + return subjectType; + } + + public void setSubjectType(String subjectType) { + this.subjectType = subjectType; + } + + public String getResponsiblePerson() { + return responsiblePerson; + } + + public void setResponsiblePerson(String responsiblePerson) { + this.responsiblePerson = responsiblePerson; + } + + public String getResponsiblePersonPhone() { + return responsiblePersonPhone; + } + + public void setResponsiblePersonPhone(String responsiblePersonPhone) { + this.responsiblePersonPhone = responsiblePersonPhone; + } + + public String getCaseResultCode() { + return caseResultCode; + } + + public void setCaseResultCode(String caseResultCode) { + this.caseResultCode = caseResultCode; + } + + public String getCaseRecord() { + return caseRecord; + } + + public void setCaseRecord(String caseRecord) { + this.caseRecord = caseRecord; + } + + public String getEvidenceFile() { + return evidenceFile; + } + + public void setEvidenceFile(String evidenceFile) { + this.evidenceFile = evidenceFile; + } + + public String getEvidenceFileType() { + return evidenceFileType; + } + + public void setEvidenceFileType(String evidenceFileType) { + this.evidenceFileType = evidenceFileType; + } + + public String getProcessingTime() { + return processingTime; + } + + public void setProcessingTime(String processingTime) { + this.processingTime = processingTime; + } + + public FilesEntity getFiles() { + return files; + } + + public void setFiles(FilesEntity files) { + this.files = files; + } + + public String getCaseTypeCode() { + return caseTypeCode; + } + + public void setCaseTypeCode(String caseTypeCode) { + this.caseTypeCode = caseTypeCode; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSubjectTypeName() { + return subjectTypeName; + } + + public void setSubjectTypeName(String subjectTypeName) { + this.subjectTypeName = subjectTypeName; + } + + public String getCaseTypeName() { + return caseTypeName; + } + + public void setCaseTypeName(String caseTypeName) { + this.caseTypeName = caseTypeName; + } + + public String getCaseResultName() { + return caseResultName; + } + + public void setCaseResultName(String caseResultName) { + this.caseResultName = caseResultName; + } + + public static class FilesEntity { + @SerializedName("fileTypeCode") + private String fileTypeCode; + @SerializedName("fileTypeName") + private String fileTypeName; + @SerializedName("url") + private String url; + + public String getFileTypeCode() { + return fileTypeCode; + } + + public void setFileTypeCode(String fileTypeCode) { + this.fileTypeCode = fileTypeCode; + } + + public String getFileTypeName() { + return fileTypeName; + } + + public void setFileTypeName(String fileTypeName) { + this.fileTypeName = fileTypeName; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/IllegalListEntity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/IllegalListEntity.java index 2e8c1dc..aed6074 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/IllegalListEntity.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/IllegalListEntity.java @@ -2,9 +2,10 @@ package com.tairui.gov_affairs_cloud.ui.land.entity; import java.io.Serializable; +import com.chad.library.adapter.base.entity.MultiItemEntity; import com.google.gson.annotations.SerializedName; -public class IllegalListEntity implements Serializable { +public class IllegalListEntity implements Serializable, MultiItemEntity { @SerializedName("inspectionId") private String inspectionId; @@ -28,8 +29,29 @@ public class IllegalListEntity implements Serializable { private String illegalTypeName; @SerializedName("inspectionTaskName") private String inspectionTaskName; + @SerializedName("inspectionTaskTarget") + private String inspectionTaskTarget; + @SerializedName("inspectionTaskId") + private Object inspectionTaskId; @SerializedName("status") private String status; + @SerializedName("caseId") + private String caseId; + @SerializedName("caseName") + private String caseName; + @SerializedName("responsiblePerson") + private String responsiblePerson; + @SerializedName("caseTypeCode") + private String caseTypeCode; + @SerializedName("caseTypeName") + private String caseTypeName; + @SerializedName("processingTime") + private String processingTime; + + @Override + public int getItemType() { + return Integer.parseInt(status); + } public String getInspectionId() { return inspectionId; @@ -119,6 +141,22 @@ public class IllegalListEntity implements Serializable { this.inspectionTaskName = inspectionTaskName; } + public String getInspectionTaskTarget() { + return inspectionTaskTarget; + } + + public void setInspectionTaskTarget(String inspectionTaskTarget) { + this.inspectionTaskTarget = inspectionTaskTarget; + } + + public Object getInspectionTaskId() { + return inspectionTaskId; + } + + public void setInspectionTaskId(Object inspectionTaskId) { + this.inspectionTaskId = inspectionTaskId; + } + public String getStatus() { return status; } @@ -126,4 +164,52 @@ public class IllegalListEntity implements Serializable { public void setStatus(String status) { this.status = status; } + + public String getCaseId() { + return caseId; + } + + public void setCaseId(String caseId) { + this.caseId = caseId; + } + + public String getCaseName() { + return caseName; + } + + public void setCaseName(String caseName) { + this.caseName = caseName; + } + + public String getResponsiblePerson() { + return responsiblePerson; + } + + public void setResponsiblePerson(String responsiblePerson) { + this.responsiblePerson = responsiblePerson; + } + + public String getCaseTypeCode() { + return caseTypeCode; + } + + public void setCaseTypeCode(String caseTypeCode) { + this.caseTypeCode = caseTypeCode; + } + + public String getCaseTypeName() { + return caseTypeName; + } + + public void setCaseTypeName(String caseTypeName) { + this.caseTypeName = caseTypeName; + } + + public String getProcessingTime() { + return processingTime; + } + + public void setProcessingTime(String processingTime) { + this.processingTime = processingTime; + } } \ No newline at end of file diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java index b7ee80e..37c68b7 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java @@ -95,6 +95,9 @@ public class LoginActivity extends BaseActivity { } else if (username.equals("d")) { username = "dev"; userpass = "dev123"; + } else if (username.equals("a1")) { + username = "admin1"; + userpass = "admin123"; } } showLoading(); diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java index 9981f8b..4d201b2 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java @@ -8,6 +8,7 @@ import com.chad.library.adapter.base.BaseViewHolder; import com.tairui.gov_affairs_cloud.R; import com.tairui.gov_affairs_cloud.base.BaseFragment; import com.tairui.gov_affairs_cloud.databinding.FragmentWorkspaceBinding; +import com.tairui.gov_affairs_cloud.ui.input.InputGoodsListActivity; import com.tairui.gov_affairs_cloud.ui.land.GridInfoActivity; import com.tairui.gov_affairs_cloud.ui.land.IllegalListActivity; import com.tairui.gov_affairs_cloud.ui.land.InspectionListActivity; @@ -75,6 +76,8 @@ public class WorkSpaceFragment extends BaseFragment { IntentUtil.startActivity(mContext, InspectionListActivity.class); } else if (_id == 5) { IntentUtil.startActivity(mContext, IllegalListActivity.class); + } else if (_id == 9) { + IntentUtil.startActivity(mContext, InputGoodsListActivity.class); } }); } diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/util/AppUtil.java b/app/src/main/java/com/tairui/gov_affairs_cloud/util/AppUtil.java index 48b06ac..192e33f 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/util/AppUtil.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/util/AppUtil.java @@ -31,6 +31,8 @@ public class AppUtil { public static String getImageUrl(String url) { if (TextUtils.isEmpty(url)) { return null; + } else if (url.startsWith("http")) { + return url; } else { return Api.OSS_HOST.concat(url); } @@ -42,4 +44,10 @@ public class AppUtil { bundle.putStringArrayList("imgs", imgs); IntentUtil.startActivity(context, PhotoViewActivty.class, bundle); } + + public static Bundle getIdBundle(String id) { + Bundle bundle = new Bundle(); + bundle.putString("id", id); + return bundle; + } } diff --git a/app/src/main/res/layout/activity_add_legal_case.xml b/app/src/main/res/layout/activity_add_legal_case.xml new file mode 100644 index 0000000..8589764 --- /dev/null +++ b/app/src/main/res/layout/activity_add_legal_case.xml @@ -0,0 +1,479 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_illegal_detail.xml b/app/src/main/res/layout/activity_illegal_detail.xml index 4608b63..02ed62f 100644 --- a/app/src/main/res/layout/activity_illegal_detail.xml +++ b/app/src/main/res/layout/activity_illegal_detail.xml @@ -222,6 +222,21 @@ + + diff --git a/app/src/main/res/layout/activity_input_goods_list.xml b/app/src/main/res/layout/activity_input_goods_list.xml new file mode 100644 index 0000000..27f70c9 --- /dev/null +++ b/app/src/main/res/layout/activity_input_goods_list.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_legal_case_detail.xml b/app/src/main/res/layout/activity_legal_case_detail.xml new file mode 100644 index 0000000..1f6b909 --- /dev/null +++ b/app/src/main/res/layout/activity_legal_case_detail.xml @@ -0,0 +1,458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_illegal_2.xml b/app/src/main/res/layout/item_illegal_2.xml index f87d3cb..65a1d8d 100644 --- a/app/src/main/res/layout/item_illegal_2.xml +++ b/app/src/main/res/layout/item_illegal_2.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" - android:paddingTop="16dp"> + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_list_input_goods.xml b/app/src/main/res/layout/item_list_input_goods.xml new file mode 100644 index 0000000..759a4cd --- /dev/null +++ b/app/src/main/res/layout/item_list_input_goods.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 40d1c15..74f2cfd 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -19,6 +19,7 @@ #50000000 #007AFF #D5D5D5 + #E6E6E6 #26FF4E3D