提交 19b199d8 authored 作者: lgd's avatar lgd

1.提交申请

2.//TODO erp用户激活测试,忘记/重置密码测试,坩埚下单页面,组装下单,产品下单还差附件测试,mes,消息,刷新token
上级 bf0e0a31
...@@ -872,7 +872,22 @@ ...@@ -872,7 +872,22 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.order.WorkSendApplyDetailActivity"
android:configChanges="keyboardHidden|orientation"
android:label="申请发货详情"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.order.WorkSendApplyAddActivity"
android:configChanges="keyboardHidden|orientation"
android:label="申请发货"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="com.wd.workoffice.fileprovider" android:authorities="com.wd.workoffice.fileprovider"
......
...@@ -891,6 +891,15 @@ public class OrderDetail { ...@@ -891,6 +891,15 @@ public class OrderDetail {
private Object orderTypeName; private Object orderTypeName;
private List<ItemFlowsBean> itemFlows; private List<ItemFlowsBean> itemFlows;
private List<StockQuantityDetailMapsBean> stockQuantityDetailMaps; private List<StockQuantityDetailMapsBean> stockQuantityDetailMaps;
private String chooseNum;
public String getChooseNum() {
return chooseNum;
}
public void setChooseNum(String chooseNum) {
this.chooseNum = chooseNum;
}
public Object getCreatedBy() { public Object getCreatedBy() {
return createdBy; return createdBy;
......
package com.wd.workoffice.bean;
import java.util.List;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class SendApplyDetailBean {
/**
* createdBy : null
* createdByName : null
* createdTime : null
* updatedBy : null
* updatedByName : null
* updatedTime : null
* id : 106
* applyId : null
* productId : null
* productAmount : 1.0
* productName : 整体塞棒
* soleCode : 70GTB214001
* simpleCode : B214
*/
private Object createdBy;
private Object createdByName;
private Object createdTime;
private Object updatedBy;
private Object updatedByName;
private Object updatedTime;
private int id;
private Object applyId;
private Object productId;
private double productAmount;
private String productName;
private String soleCode;
private String simpleCode;
public Object getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Object createdBy) {
this.createdBy = createdBy;
}
public Object getCreatedByName() {
return createdByName;
}
public void setCreatedByName(Object createdByName) {
this.createdByName = createdByName;
}
public Object getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Object createdTime) {
this.createdTime = createdTime;
}
public Object getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(Object updatedBy) {
this.updatedBy = updatedBy;
}
public Object getUpdatedByName() {
return updatedByName;
}
public void setUpdatedByName(Object updatedByName) {
this.updatedByName = updatedByName;
}
public Object getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(Object updatedTime) {
this.updatedTime = updatedTime;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Object getApplyId() {
return applyId;
}
public void setApplyId(Object applyId) {
this.applyId = applyId;
}
public Object getProductId() {
return productId;
}
public void setProductId(Object productId) {
this.productId = productId;
}
public double getProductAmount() {
return productAmount;
}
public void setProductAmount(double productAmount) {
this.productAmount = productAmount;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getSoleCode() {
return soleCode;
}
public void setSoleCode(String soleCode) {
this.soleCode = soleCode;
}
public String getSimpleCode() {
return simpleCode;
}
public void setSimpleCode(String simpleCode) {
this.simpleCode = simpleCode;
}
}
package com.wd.workoffice.bean.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class CheckSendEvent {
public CheckSendEvent() {
}
}
package com.wd.workoffice.bean.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class SendWeightEvent {
public SendWeightEvent() {
}
}
...@@ -1136,7 +1136,24 @@ public interface ApiService { ...@@ -1136,7 +1136,24 @@ public interface ApiService {
* *
* @return * @return
*/ */
@GET("/send-out-store-apply/status") @PUT("/send-out-store-apply/status")
Observable<BaseBean> sendApplyCheck(@Body RequestBody requestBody); Observable<BaseBean> sendApplyCheck(@Body RequestBody requestBody);
/**
* _3获取发货申请详细信息列表
*
* @return
*/
@GET("/send-out-store-apply/item/list")
Observable<BaseBean> sendApplyDetail(@Query("applyId") String applyId);
/**
* _step6_1发起发货申请
*
* @return
*/
@POST("/procedureStart/so/applyOutStock/{orderId}")
Observable<BaseBean> sendApply(@Path("orderId") String orderId,@Body RequestBody requestBody);
} }
...@@ -74,15 +74,15 @@ public class SendApplyActivity extends WorkToolBarActivity { ...@@ -74,15 +74,15 @@ public class SendApplyActivity extends WorkToolBarActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu); getMenuInflater().inflate(R.menu.menu_add, menu);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.search: case R.id.add:
startActivity(SupplierOrderSearchActivity.class, "identity", "1","",""); startActivity(WorkSendApplyAddActivity.class, "id",getIntent().getStringExtra("orderId"));
break; break;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
......
package com.wd.workoffice.ui.activity.bat.order;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.OrderDetail;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.event.CheckOrderEvent;
import com.wd.workoffice.bean.event.CheckSendEvent;
import com.wd.workoffice.bean.event.SendWeightEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.bat.store.StoreOrderSuccessActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreSaleClientActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreSaleConfirmActivity;
import com.wd.workoffice.ui.adapter.WorkSendApplyAddAdapter;
import com.wd.workoffice.util.MathUtils;
import com.wd.workoffice.util.PickTimeUtils;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.TimeUtils;
import io.reactivex.disposables.Disposable;
/**
* 添加发货
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkSendApplyAddActivity extends WorkToolBarActivity {
@BindView(R.id.tv_bottom)
TextView tvBottom;
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.tv_time)
TextView tvTime;
@BindView(R.id.rl_time)
RelativeLayout rlTime;
@BindView(R.id.tv_weight)
TextView tvWeight;
@BindView(R.id.et_logistics_price)
EditText etLogisticsPrice;
@BindView(R.id.et_logistics_code)
EditText etLogisticsCode;
@BindView(R.id.tv_logistics_company)
TextView tvLogisticsCompany;
@BindView(R.id.rl_set)
RelativeLayout rlSet;
@BindView(R.id.et_remark)
EditText etRemark;
@BindView(R.id.tv_input1)
TextView tvInput1;
private List<OrderDetail.OrderItemsBean> dataList;
private WorkSendApplyAddAdapter dataAdapter;
private Map<String, Object> param;
private OrderDetail dataBean;
private int clientId;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
dataList = new ArrayList<>();
dataAdapter = new WorkSendApplyAddAdapter(R.layout.item_send_apply_add, dataList);
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("orderId", getIntent().getStringExtra("id"));
param.put("payer",2);
getData();
}
@Override
protected void initEvent() {
etRemark.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
tvInput1.setText(s.length() + "/140");
}
});
}
private void getData() {
RtfUtils.getRtf().saleOrderDetail(getIntent().getStringExtra("id"), "3").compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
dataBean = JSON.parseObject(data.getData().toString(), OrderDetail.class);
param.put("orderType", dataBean.getOrderType());
dataList.addAll(dataBean.getOrderItems());
dataAdapter.notifyDataSetChanged();
}
});
}
@Override
protected int layoutId() {
return R.layout.activity_send_apply_add;
}
@OnClick(R.id.tv_bottom)
public void onViewClicked() {
if (coverProInfo()) {
submit();
}
}
private boolean coverProInfo() {
Map<Integer, Boolean> isChoose = dataAdapter.getIsChoose();
List<JSONObject> info = new ArrayList<>();
String totalWeight = "0";
for (Map.Entry<Integer, Boolean> entry : isChoose.entrySet()) {
if (entry.getValue()) {
OrderDetail.OrderItemsBean recordsBean = dataList.get(entry.getKey());
JSONObject returnData = new JSONObject();
if (TextUtils.isEmpty(recordsBean.getChooseNum())||Double.valueOf(recordsBean.getChooseNum()) == 0d) {
toast("请选择发货数量");
return false;
}
totalWeight = MathUtils.add(totalWeight, MathUtils.multiply(recordsBean.getChooseNum(),
String.valueOf(recordsBean.getProductWeight()), 3), 3);
returnData.put("productId", recordsBean.getProductId());
returnData.put("productAmount", recordsBean.getChooseNum());
info.add(returnData);
}
}
if (info.size() == 0) {
toast("请选择货品");
return false;
}
tvWeight.setText(totalWeight);
param.put("sendOutStoreApplyItemList", info);
param.put("totalWeight", totalWeight);
return true;
}
private void submit() {
String price = etLogisticsPrice.getText().toString();
String code = etLogisticsCode.getText().toString();
String remark = etRemark.getText().toString();
if (TextUtils.isEmpty(price)) {
toast("请输入运费");
return;
}
if (TextUtils.isEmpty(code)) {
toast("请输入快递单号");
return;
}
param.put("trackingNumber", code);
param.put("fareMoney", price);
param.put("applyRemark", remark);
param.put("logisticsId", clientId);
RtfUtils.getRtf().sendApply(getIntent().getStringExtra("id"), WorkUtils.convertMapToBody(param)).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
toast("提交申请成功");
EventBus.getDefault().post(new CheckSendEvent());
finish();
}
});
}
@OnClick({R.id.tv_bottom, R.id.rl_time, R.id.rl_set})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_bottom:
break;
case R.id.rl_time:
PickTimeUtils.showPickThree(WorkSendApplyAddActivity.this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
String time = TimeUtils.date2String(date, new SimpleDateFormat("yyyy-MM-dd"));
// param.put("requireTime", time);
tvTime.setText(time);
}
}).show();
break;
case R.id.rl_set:
startActivityForResult(StoreSaleClientActivity.class, 10001,
"flag", "1", "supplier", "选择运输商", "code", "TRANSPORTERS");
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 10001 && resultCode == 10001) {
String clientName = data.getStringExtra("clientName");
clientId = data.getIntExtra("id", 0);
tvLogisticsCompany.setText(clientName);
}
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(SendWeightEvent event) {
coverProInfo();
}
}
package com.wd.workoffice.ui.activity.bat.order;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.SendApplyBean;
import com.wd.workoffice.bean.SendApplyDetailBean;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.TicketDetailBean;
import com.wd.workoffice.bean.event.CheckSendEvent;
import com.wd.workoffice.bean.event.CheckTicketEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.SendApplyDetailAdapter;
import com.wd.workoffice.ui.adapter.WorkFinancialTicketDetailAdapter;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
/**
* 收活详情
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkSendApplyDetailActivity extends WorkToolBarActivity {
@BindView(R.id.tv_refuse)
TextView tvRefuse;
@BindView(R.id.tv_agree)
TextView tvAgree;
@BindView(R.id.ll_bottom)
LinearLayout llBottom;
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.tv_time)
TextView tvTime;
@BindView(R.id.tv_weight)
TextView tvWeight;
@BindView(R.id.tv_logistics_price)
TextView tvLogisticsPrice;
@BindView(R.id.tv_logistics_code)
TextView tvLogisticsCode;
@BindView(R.id.tv_logistics_company)
TextView tvLogisticsCompany;
@BindView(R.id.tv_remark)
TextView tvRemark;
private List<SendApplyDetailBean> dataList;
private SendApplyDetailAdapter dataAdapter;
private Map<String, Object> param;
private SendApplyBean.RecordsBean info;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
info = JSON.parseObject(getIntent().getStringExtra("info"), SendApplyBean.RecordsBean.class);
getData(info.getId() + "");
tvTime.setText(info.getCreatedTime());
tvWeight.setText(String.valueOf(info.getTotalWeight()));
tvLogisticsPrice.setText(String.valueOf(info.getFareMoney()));
tvLogisticsCode.setText(info.getTrackingNumber());
tvLogisticsCompany.setText(info.getTransitPartName());
tvRemark.setText(info.getApplyRemark());
if (TextUtils.equals(info.getStatus(), "0")) {
llBottom.setVisibility(View.VISIBLE);
} else {
llBottom.setVisibility(View.GONE);
}
dataList = new ArrayList<>();
dataAdapter = new SendApplyDetailAdapter(R.layout.item_send_apply_detail, dataList);
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("id", info.getId());
}
private void getData(String id) {
RtfUtils.getRtf().sendApplyDetail(id).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
List<SendApplyDetailBean> dataBean = JSON.parseArray(data.getData().toString(), SendApplyDetailBean.class);
dataList.addAll(dataBean);
dataAdapter.notifyDataSetChanged();
}
});
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_send_apply_detail;
}
@OnClick({R.id.tv_refuse, R.id.tv_agree})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_refuse:
checkDialog(2);
break;
case R.id.tv_agree:
checkDialog(1);
break;
}
}
private void checkDialog(int status) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_check, null);
TextView tvOk = view.findViewById(R.id.tv_ok);
TextView tvDesc = view.findViewById(R.id.tv_desc);
tvDesc.setText(status == 1 ? "通过" : "拒绝");
TextView tvNum = view.findViewById(R.id.tv_num);
TextView tvCancel = view.findViewById(R.id.tv_cancel);
EditText etRemark = view.findViewById(R.id.et_content);
etRemark.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
tvNum.setText(s.length() + "/140");
}
});
builder.setView(view);
AlertDialog addCartDialog = builder.create();
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(etRemark.getText().toString())) {
toast("请填写备注");
return;
}
check(status, etRemark.getText().toString());
addCartDialog.dismiss();
}
});
tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addCartDialog.dismiss();
}
});
addCartDialog.show();
}
private void check(int status, String remark) {
param.put("status", status);
param.put("auditRemark", remark);
param.put("id",info.getId());
RtfUtils.getRtf().sendApplyCheck(WorkUtils.convertMapToBody(param)).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
toast("操作成功");
EventBus.getDefault().post(new CheckSendEvent());
finish();
}
});
}
}
...@@ -137,7 +137,7 @@ public class WorkProDetailActivity extends WorkToolBarActivity { ...@@ -137,7 +137,7 @@ public class WorkProDetailActivity extends WorkToolBarActivity {
tvDepPersonDep.setText("维护部门:" + depData.getDeptName()); tvDepPersonDep.setText("维护部门:" + depData.getDeptName());
} }
//
// transitPartRelList 往来单位关联 // transitPartRelList 往来单位关联
// * partTypeCode: SUPPLIER-供应商 CUSTOMER-客户 TRANSPORTERS-运输商 // * partTypeCode: SUPPLIER-供应商 CUSTOMER-客户 TRANSPORTERS-运输商
// * name:往来单位名称 // * name:往来单位名称
......
...@@ -29,7 +29,7 @@ public class SendApplyAdapter extends BaseQuickAdapter<SendApplyBean.RecordsBean ...@@ -29,7 +29,7 @@ public class SendApplyAdapter extends BaseQuickAdapter<SendApplyBean.RecordsBean
@Override @Override
protected void convert(BaseViewHolder helper, SendApplyBean.RecordsBean item) { protected void convert(BaseViewHolder helper, SendApplyBean.RecordsBean item) {
helper.setText(R.id.tv_name, item.getTransitPartName()); helper.setText(R.id.tv_name, item.getSerialNumber());
helper.setText(R.id.tv_reason, item.getApplyRemark()); helper.setText(R.id.tv_reason, item.getApplyRemark());
helper.setText(R.id.tv_time, item.getCreatedTime()); helper.setText(R.id.tv_time, item.getCreatedTime());
if (status == 0) { if (status == 0) {
......
package com.wd.workoffice.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.SendApplyBean;
import com.wd.workoffice.bean.SendApplyDetailBean;
import java.util.List;
import androidx.annotation.Nullable;
/**
* Created by flexible on 2018/8/13.
*/
public class SendApplyDetailAdapter extends BaseQuickAdapter<SendApplyDetailBean, BaseViewHolder> {
public SendApplyDetailAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, SendApplyDetailBean item) {
helper.setText(R.id.tv_name, item.getSimpleCode());
helper.setText(R.id.tv_card, item.getSoleCode());
helper.setText(R.id.tv_card_name, item.getProductName());
helper.setText(R.id.tv_all_num, String.valueOf(item.getProductAmount()));
}
}
package com.wd.workoffice.ui.adapter;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.LogisticDetailBean;
import com.wd.workoffice.bean.OrderDetail;
import com.wd.workoffice.bean.event.SendWeightEvent;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.widget.AddAndReduceDoubleView;
import org.greenrobot.eventbus.EventBus;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by flexible on 2018/8/13.
*/
public class WorkSendApplyAddAdapter extends BaseQuickAdapter<OrderDetail.OrderItemsBean, BaseViewHolder> {
Map<Integer, Boolean> isChoose = new HashMap<>();
public WorkSendApplyAddAdapter(int layoutResId, List data) {
super(layoutResId, data);
for (int i = 0; i < isChoose.entrySet().size(); i++) {
isChoose.put(i, false);
}
}
@Override
protected void convert(BaseViewHolder helper, OrderDetail.OrderItemsBean item) {
helper.setText(R.id.tv_name, item.getProductName());
helper.setText(R.id.tv_card, item.getProductSoleCode());
helper.setText(R.id.tv_card_name, item.getProductSimpleCode());
helper.setText(R.id.tv_spec, item.getProductSpec());
helper.setText(R.id.tv_price, "¥".concat(String.valueOf(item.getInnerPrice())));
// helper.setText(R.id.tv_all_price, "¥".concat(String.valueOf(item.getInnerPrice())));
helper.setText(R.id.tv_unit, item.getProductUnit());
// helper.setText(R.id.tv_from, WorkUtils.getOrderFrom(item.getType()));
helper.setText(R.id.tv_num, String.valueOf(item.getProductCount()));
helper.setText(R.id.tv_apply_send_num, String.valueOf(item.getStoreSum()));
helper.setText(R.id.tv_send_num, "发货数量:"+String.valueOf(item.getUsedSum()));
AddAndReduceDoubleView nrcNum = helper.getView(R.id.arv_num);
nrcNum.setMaxNum(item.getStoreSum());
nrcNum.setOnNumberChangedListener(new AddAndReduceDoubleView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(String vs) {
item.setChooseNum(vs);
EventBus.getDefault().post(new SendWeightEvent());
}
});
CheckBox cbChoose = helper.getView(R.id.cb_check);
cbChoose.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
isChoose.put(helper.getAdapterPosition(), cbChoose.isChecked());
EventBus.getDefault().post(new SendWeightEvent());
}
});
}
public Map<Integer, Boolean> getIsChoose() {
return isChoose;
}
public void setIsChoose(Map<Integer, Boolean> isChoose) {
this.isChoose = isChoose;
}
}
...@@ -17,9 +17,11 @@ import com.wd.workoffice.app.BaseBean; ...@@ -17,9 +17,11 @@ import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkBaseFg; import com.wd.workoffice.app.WorkBaseFg;
import com.wd.workoffice.bean.SendApplyBean; import com.wd.workoffice.bean.SendApplyBean;
import com.wd.workoffice.bean.event.CheckLogisticEvent; import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.event.CheckSendEvent;
import com.wd.workoffice.bean.event.CheckTicketEvent; import com.wd.workoffice.bean.event.CheckTicketEvent;
import com.wd.workoffice.retrofit.RtfUtils; import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver; import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.bat.order.WorkSendApplyDetailActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkLogisticsDetailActivity; import com.wd.workoffice.ui.activity.bat.work.WorkLogisticsDetailActivity;
import com.wd.workoffice.ui.adapter.SendApplyAdapter; import com.wd.workoffice.ui.adapter.SendApplyAdapter;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
...@@ -111,7 +113,6 @@ public class SendApplyFragment extends WorkBaseFg { ...@@ -111,7 +113,6 @@ public class SendApplyFragment extends WorkBaseFg {
return; return;
} }
List<SendApplyBean.RecordsBean> getList = JSON.parseObject(data.getData().toString(), SendApplyBean.class).getRecords(); List<SendApplyBean.RecordsBean> getList = JSON.parseObject(data.getData().toString(), SendApplyBean.class).getRecords();
if (page == 1) { if (page == 1) {
srlRefresh.finishRefresh(); srlRefresh.finishRefresh();
dataList.clear(); dataList.clear();
...@@ -146,15 +147,15 @@ public class SendApplyFragment extends WorkBaseFg { ...@@ -146,15 +147,15 @@ public class SendApplyFragment extends WorkBaseFg {
dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
startActivity(WorkLogisticsDetailActivity.class, "info", JSON.toJSONString(dataList.get(position))); startActivity(WorkSendApplyDetailActivity.class, "info", JSON.toJSONString(dataList.get(position)));
} }
}); });
dataAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { dataAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override @Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
switch (view.getId()){ switch (view.getId()) {
case R.id.tv_refuse: case R.id.tv_refuse:
checkDialog(2,dataList.get(position).getId()); checkDialog(2, dataList.get(position).getId());
break; break;
case R.id.tv_agree: case R.id.tv_agree:
checkDialog(1, dataList.get(position).getId()); checkDialog(1, dataList.get(position).getId());
...@@ -200,7 +201,7 @@ public class SendApplyFragment extends WorkBaseFg { ...@@ -200,7 +201,7 @@ public class SendApplyFragment extends WorkBaseFg {
toast("请填写备注"); toast("请填写备注");
return; return;
} }
check(status, etRemark.getText().toString(),id); check(status, etRemark.getText().toString(), id);
addCartDialog.dismiss(); addCartDialog.dismiss();
} }
}); });
...@@ -215,6 +216,7 @@ public class SendApplyFragment extends WorkBaseFg { ...@@ -215,6 +216,7 @@ public class SendApplyFragment extends WorkBaseFg {
private void check(int status, String remark, int id) { private void check(int status, String remark, int id) {
Map<String, Object> param = WorkUtils.simpleParam();
param.put("status", status); param.put("status", status);
param.put("auditRemark", remark); param.put("auditRemark", remark);
param.put("id", id); param.put("id", id);
...@@ -243,6 +245,7 @@ public class SendApplyFragment extends WorkBaseFg { ...@@ -243,6 +245,7 @@ public class SendApplyFragment extends WorkBaseFg {
} }
}); });
} }
@Override @Override
protected int layoutId() { protected int layoutId() {
return R.layout.fg_work_contacts; return R.layout.fg_work_contacts;
...@@ -261,7 +264,7 @@ public class SendApplyFragment extends WorkBaseFg { ...@@ -261,7 +264,7 @@ public class SendApplyFragment extends WorkBaseFg {
} }
@Subscribe @Subscribe
public void refresh(CheckLogisticEvent event) { public void refresh(CheckSendEvent event) {
page = 1; page = 1;
param.put("current", page); param.put("current", page);
getData(); getData();
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="60mm"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|right"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_refuse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10mm"
android:background="@drawable/shape_red_btn"
android:paddingHorizontal="20mm"
android:paddingVertical="5mm"
android:text="拒绝"
android:textColor="@color/white" />
<TextView
android:id="@+id/tv_agree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10mm"
android:background="@drawable/shape_green_btn"
android:paddingHorizontal="20mm"
android:paddingVertical="5mm"
android:text="同意"
android:textColor="@color/white" />
</LinearLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ll_bottom"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ll_bottom"
android:orientation="vertical"
android:paddingBottom="20mm">
<View style="@style/ViewX" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingVertical="10mm">
<View
android:layout_width="8mm"
android:layout_height="18mm"
android:background="@color/red_btn_bg" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:text="货品信息"
android:textSize="15sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View style="@style/ViewX" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingVertical="10mm">
<View
android:layout_width="8mm"
android:layout_height="18mm"
android:background="@color/red_btn_bg" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:text="发货信息"
android:textSize="15sp" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发货时间"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="销售二公司"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="总重"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_weight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="销售二公司"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运费"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_logistics_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="快递单号"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_logistics_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout> <View style="@style/dividerX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="物流公司"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_logistics_company"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1mm"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="备注"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_remark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3mm"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>
...@@ -74,9 +74,11 @@ ...@@ -74,9 +74,11 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_btn" android:id="@+id/ll_btn"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right" android:layout_gravity="right"
android:visibility="gone"
android:layout_marginTop="10mm"> android:layout_marginTop="10mm">
<TextView <TextView
...@@ -99,7 +101,7 @@ ...@@ -99,7 +101,7 @@
android:gravity="center" android:gravity="center"
android:paddingHorizontal="10mm" android:paddingHorizontal="10mm"
android:paddingVertical="5mm" android:paddingVertical="5mm"
android:text="拒绝" android:text="驳回"
android:textSize="13sp" /> android:textSize="13sp" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="10mm"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingTop="10mm"
android:paddingBottom="20mm">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:gravity="center_vertical">
<CheckBox
android:id="@+id/cb_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="14mm"
android:background="#FCFCFD"
android:orientation="vertical"
android:padding="10mm">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="品号"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="品号"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="品名"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_card_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="品号"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="规格"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_spec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="品号"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="内部单价"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="品号"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="单位"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="数量"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="可发货数量"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_apply_send_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_send_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="已发货:0" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="right"
android:layout_height="wrap_content"
android:text="本次发货数" />
<com.wd.workoffice.widget.AddAndReduceDoubleView
android:id="@+id/arv_num"
android:layout_width="100mm"
android:layout_height="wrap_content"
android:layout_marginLeft="5mm"
android:layout_gravity="right"></com.wd.workoffice.widget.AddAndReduceDoubleView>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="10mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="图号TH82739857"
android:textSize="16sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15mm"
android:background="#FCFCFD"
android:orientation="vertical"
android:padding="10mm">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="品号"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="品名"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_card_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="30mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发货数量: "
android:textSize="12sp" />
<TextView
android:id="@+id/tv_all_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论