Commit 1ad276a4 by han xu

sop添加单选和多选功能

parent 4f64e85f
{
"version": 1,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.dayu.bigfish",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"properties": [],
"versionCode": 331,
"versionName": "3.3.1",
"enabled": true,
"outputFile": "app-release.apk"
}
]
}
\ No newline at end of file
...@@ -45,21 +45,21 @@ public class Constants { ...@@ -45,21 +45,21 @@ public class Constants {
/** /**
* dev环境配置. * dev环境配置.
*/ */
public static String ENVIROMENT = "debug"; // public static String ENVIROMENT = "debug";
public static String PHOTO = "dev"; // public static String PHOTO = "dev";
public static int LOG_LEVEL = LogUtils.LEVEL_ALL; // public static int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static String BASE_URL = "http://47.94.101.239:3112"; // public static String BASE_URL = "http://47.94.101.239:3112";
public static String WEB_SOP = "http://47.94.101.239:9004/#/sop"; // public static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult"; // public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop"; // public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail"; // public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail"; // public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public static final String UP_PHOTO = "/file/uploadMore?targetPath=dev/sp/mobile/android/business/checkApply"; // public static final String UP_PHOTO = "/file/uploadMore?targetPath=dev/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video"; // public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
public static boolean IS_DEBUG = true; // public static boolean IS_DEBUG = true;
public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live) // public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
public static int XLR_PID = 239; //小绿人商家id // public static int XLR_PID = 239; //小绿人商家id
public static String SCHEME_9099 = "http://dev.kf.ai:9099/#/"; // public static String SCHEME_9099 = "http://dev.kf.ai:9099/#/";
/** /**
...@@ -85,21 +85,21 @@ public class Constants { ...@@ -85,21 +85,21 @@ public class Constants {
/** /**
* 正式环境. * 正式环境.
*/ */
// public static String ENVIROMENT = "release"; public static String ENVIROMENT = "release";
// public static String PHOTO = "online"; public static String PHOTO = "online";
// public static int LOG_LEVEL = LogUtils.LEVEL_OFF; public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
// public static String BASE_URL = "https://mobile.dayuspm.com"; public static String BASE_URL = "https://mobile.dayuspm.com";
// public static String WEB_SOP = "https://sop.kf.ai/#/sop"; public static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail"; public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
// public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail"; public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
// public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult"; public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop"; public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"; public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video"; public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
// public static boolean IS_DEBUG = false; public static boolean IS_DEBUG = false;
// public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live) public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
// public static int XLR_PID = 1936; //小绿人商家id public static int XLR_PID = 1936; //小绿人商家id
// public static String SCHEME_9099 = "http://app.dl.kf.ai/ext/#/"; public static String SCHEME_9099 = "http://app.dl.kf.ai/ext/#/";
/** /**
......
...@@ -5,8 +5,8 @@ buildscript { ...@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "29.0.2" ext.build_tools_version = "29.0.2"
ext.min_sdk_version = 21 ext.min_sdk_version = 21
ext.target_sdk_version = 30 ext.target_sdk_version = 30
ext.version_code = 328 ext.version_code = 331
ext.verson_name = "3.2.8" ext.verson_name = "3.3.1"
ext.gradle_version = '4.0.1' ext.gradle_version = '4.0.1'
ext.isReleaseMinify = false ext.isReleaseMinify = false
ext.isDebugMinify = false ext.isDebugMinify = false
......
package com.dayu.order.api.protocol.bean; package com.dayu.order.api.protocol.bean;
import java.util.List;
public class SopListBean { public class SopListBean {
/** /**
...@@ -42,6 +44,50 @@ public class SopListBean { ...@@ -42,6 +44,50 @@ public class SopListBean {
private String h5Url; private String h5Url;
private String dyHeight; private String dyHeight;
///是否必做:1.必须操作 2.可选操作;
private int isRequired;
///可选操作结果:1.已完成操作 2.不需要此步骤
private int allowOptionalResult;
///1.不需要 2.单选 3.多选;当=1时不显示,=2时显示单选,=3时显示多选,提示文字相应变更
private int selectOption;
public int getIsRequired() {
return isRequired;
}
public void setIsRequired(int isRequired) {
this.isRequired = isRequired;
}
public int getAllowOptionalResult() {
return allowOptionalResult;
}
public void setAllowOptionalResult(int allowOptionalResult) {
this.allowOptionalResult = allowOptionalResult;
}
public int getSelectOption() {
return selectOption;
}
public void setSelectOption(int selectOption) {
this.selectOption = selectOption;
}
public List<SopListBeanOptions> getOptions() {
return options;
}
public void setOptions(List<SopListBeanOptions> options) {
this.options = options;
}
///选项列表options,content作为显示的文本,isSelected 是否选中:1.是 2.否。
private List<SopListBeanOptions> options;
public String getH5Url() { public String getH5Url() {
return h5Url; return h5Url;
} }
...@@ -193,4 +239,61 @@ public class SopListBean { ...@@ -193,4 +239,61 @@ public class SopListBean {
public void setVideoResult(String videoResult) { public void setVideoResult(String videoResult) {
this.videoResult = videoResult; this.videoResult = videoResult;
} }
public static class SopListBeanOptions {
// "id": 17,
// "ordersRelationSpuItemSopId": 13436,
// "spuSopOptionId": 18,
// "content": "灯不亮",
// "isSelected": 2
public String id;
public String ordersRelationSpuItemSopId;
public String spuSopOptionId;
public String content;
public int isSelected;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getOrdersRelationSpuItemSopId() {
return ordersRelationSpuItemSopId;
}
public void setOrdersRelationSpuItemSopId(String ordersRelationSpuItemSopId) {
this.ordersRelationSpuItemSopId = ordersRelationSpuItemSopId;
}
public String getSpuSopOptionId() {
return spuSopOptionId;
}
public void setSpuSopOptionId(String spuSopOptionId) {
this.spuSopOptionId = spuSopOptionId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getIsSelected() {
return isSelected;
}
public void setIsSelected(int isSelected) {
this.isSelected = isSelected;
}
}
} }
...@@ -17,10 +17,13 @@ import android.webkit.ValueCallback; ...@@ -17,10 +17,13 @@ import android.webkit.ValueCallback;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.widget.CheckBox;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.cjt2325.cameralibrary.util.ScreenUtils; import com.cjt2325.cameralibrary.util.ScreenUtils;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.base.api.BaseApiFactory; import com.dayu.base.api.BaseApiFactory;
...@@ -40,6 +43,7 @@ import com.dayu.order.common.FinishSopEvent; ...@@ -40,6 +43,7 @@ import com.dayu.order.common.FinishSopEvent;
import com.dayu.order.common.OrderConstant; import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.ActivitySopLocalBinding; import com.dayu.order.databinding.ActivitySopLocalBinding;
import com.dayu.provider.event.OrderState; import com.dayu.provider.event.OrderState;
import com.dayu.usercenter.model.bean.ServiceTypeBean;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader; import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.MPermissionUtils; import com.dayu.utils.MPermissionUtils;
...@@ -72,6 +76,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -72,6 +76,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
private boolean isChooseImg = true; //拍照是否选择的图片类型 private boolean isChooseImg = true; //拍照是否选择的图片类型
private boolean isSeted; //是否已设置过 private boolean isSeted; //是否已设置过
private boolean isEdit; //是否编辑过 private boolean isEdit; //是否编辑过
private boolean optionSelected; //是否选过可选项
Bundle mBundle; Bundle mBundle;
boolean canEdit = true; boolean canEdit = true;
...@@ -82,6 +87,8 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -82,6 +87,8 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
int RESULT_CODE = 0; int RESULT_CODE = 0;
int RESULT_CODE_FOR_Lollipop = 1; int RESULT_CODE_FOR_Lollipop = 1;
BaseQuickAdapter<SopListBean.SopListBeanOptions, BaseViewHolder> typeAdapter;
@Override @Override
public void setPresenter() { public void setPresenter() {
...@@ -136,7 +143,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -136,7 +143,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
setImgAdapter(); setImgAdapter();
initUser(); initUser();
initData(); initData();
initWebView(); // initWebView();
} }
//设置页面是否可编辑 //设置页面是否可编辑
...@@ -144,6 +151,9 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -144,6 +151,9 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
mBind.edtRemark.setEnabled(canEdit); mBind.edtRemark.setEnabled(canEdit);
mBind.rbYes.setEnabled(canEdit); mBind.rbYes.setEnabled(canEdit);
mBind.rbNo.setEnabled(canEdit); mBind.rbNo.setEnabled(canEdit);
mBind.aoYes.setEnabled(canEdit);
mBind.aoNo.setEnabled(canEdit);
} }
private void setAdapterListener() { private void setAdapterListener() {
...@@ -191,6 +201,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -191,6 +201,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
if (!TextUtils.isEmpty(currentSop.getH5Url())) { if (!TextUtils.isEmpty(currentSop.getH5Url())) {
mBind.openWeb.setVisibility(View.VISIBLE); mBind.openWeb.setVisibility(View.VISIBLE);
mBind.webView.setVisibility(View.VISIBLE); mBind.webView.setVisibility(View.VISIBLE);
initWebView();
mBind.openWeb.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); mBind.openWeb.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
mBind.openWeb.setOnClickListener(v -> { mBind.openWeb.setOnClickListener(v -> {
Uri uri = Uri.parse(currentSop.getH5Url()); Uri uri = Uri.parse(currentSop.getH5Url());
...@@ -208,6 +219,89 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -208,6 +219,89 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
mBind.webView.setLayoutParams(param); mBind.webView.setLayoutParams(param);
mBind.webView.loadUrl(currentSop.getH5Url()); mBind.webView.loadUrl(currentSop.getH5Url());
} }
//isRequired 是否必做:1.必须操作 2.可选操作
//当=2时 显示【可选操作:xxx】,=1时不显示,注意此字段只是判断是否显示可选操作。
if (currentSop.getIsRequired() == 2)
{
mBind.llAllowOption.setVisibility(View.VISIBLE);
if (currentSop.getAllowOptionalResult() == 1){
mBind.aoYes.setChecked(true);
mBind.aoNo.setChecked(false);
mBind.llOptions.setVisibility(View.VISIBLE);
}else if (currentSop.getAllowOptionalResult() == 2){
mBind.aoYes.setChecked(false);
mBind.aoNo.setChecked(true);
mBind.llOptions.setVisibility(View.GONE);//选择可选操作时不展示其他所有模块
}else {
mBind.aoYes.setChecked(false);
mBind.aoNo.setChecked(false);
mBind.llOptions.setVisibility(View.VISIBLE);
}
mBind.aoYes.setOnClickListener(v -> {
if (mBind.aoYes.isChecked()){
currentSop.setAllowOptionalResult(1);
optionSelected = true;
mBind.llOptions.setVisibility(View.VISIBLE);
}
});
mBind.aoNo.setOnClickListener(v -> {
if (mBind.aoNo.isChecked()){
currentSop.setAllowOptionalResult(2);
optionSelected = true;
mBind.llOptions.setVisibility(View.GONE);//选择可选操作时不展示其他所有模块
}
});
}else {
mBind.llAllowOption.setVisibility(View.GONE);
mBind.llOptions.setVisibility(View.VISIBLE);
}
//selectOption 1.不需要 2.单选 3.多选;当=1时不显示,=2时显示单选,=3时显示多选,提示文字相应变更
if (currentSop.getSelectOption() == 1){
mBind.llSelectOption.setVisibility(View.GONE);
}else {
mBind.llSelectOption.setVisibility(View.VISIBLE);
if (currentSop.getSelectOption() == 2){
mBind.llSelectOptionTitle.setText("请根据现场实情选择(单选):");
}else {
mBind.llSelectOptionTitle.setText("请根据现场实情选择(多选):");
}
typeAdapter = new BaseQuickAdapter<SopListBean.SopListBeanOptions, BaseViewHolder>(com.dayu.usercenter.R.layout.item_business_type, currentSop.getOptions()) {
@Override
protected void convert(BaseViewHolder helper, SopListBean.SopListBeanOptions sopListBeanOptions) {
CheckBox cbItem = helper.getView(com.dayu.usercenter.R.id.cb_item);
cbItem.setText(sopListBeanOptions.getContent());
cbItem.setMaxLines(100);
cbItem.setChecked(sopListBeanOptions.getIsSelected() == 1);
cbItem.setOnClickListener(v -> {
boolean b = cbItem.isChecked();
if (b || currentSop.getSelectOption() == 3) {
sopListBeanOptions.setIsSelected(b? 1 : 2);
optionSelected = true;
//
if (b && currentSop.getSelectOption() == 2){
//单选
for (SopListBean.SopListBeanOptions option :currentSop.getOptions()){
if (option.isSelected == 1 && sopListBeanOptions != option){
option.isSelected = 2;
typeAdapter.notifyDataSetChanged();
break;
}
}
}
}
});
}
};
mBind.rvOption.setLayoutManager(new GridLayoutManager(this, 1));
mBind.rvOption.setAdapter(typeAdapter);
}
}else{ }else{
toNext(true); toNext(true);
} }
...@@ -294,12 +388,42 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -294,12 +388,42 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
} else { } else {
mVideos = mAdapter.getData(); mVideos = mAdapter.getData();
} }
if (currentSop.getIsRequired() == 2){
if (currentSop.getAllowOptionalResult() != 1 && currentSop.getAllowOptionalResult() != 2){
showToast("请选择选项");
return;
}
if (currentSop.getAllowOptionalResult() == 2){
//选择2,不展示其他所有模块,跳过校验直接提交
if (!optionSelected){
saveSop();
}else {
toNext(false);
}
return;
}
}
boolean hasSelect = false;
if (currentSop.getSelectOption() != 1){
for (SopListBean.SopListBeanOptions option :currentSop.getOptions()){
if (option.isSelected == 1 ){
hasSelect = true;
break;
}
}
if (!hasSelect){
showToast("请选择选项");
return;
}
}
//判断是否修改过 //判断是否修改过
if (radioStatus != currentSop.getRadioResult() || !remark.equals(currentSop.getTextResult()) if (radioStatus != currentSop.getRadioResult() || !remark.equals(currentSop.getTextResult())
|| mImages.size() != CommonUtils.string2ListUrl(currentSop.getPhotoResult()).size() || mImages.size() != CommonUtils.string2ListUrl(currentSop.getPhotoResult()).size()
|| mVideos.size() != CommonUtils.string2ListUrl(currentSop.getVideoResult()).size()) || mVideos.size() != CommonUtils.string2ListUrl(currentSop.getVideoResult()).size())
isEdit = true; isEdit = true;
if (isSeted && !isEdit) { if (isSeted && !isEdit && !optionSelected) {
toNext(false); toNext(false);
} else { } else {
if (radioStatus == 0 && currentSop.getRadioOption() == 2) { if (radioStatus == 0 && currentSop.getRadioOption() == 2) {
...@@ -334,6 +458,8 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -334,6 +458,8 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
if (isSeted && isEdit) if (isSeted && isEdit)
currentSop.setPhotoResult(""); currentSop.setPhotoResult("");
uploadVideo(); uploadVideo();
} else if (optionSelected) {
saveSop();
} }
} }
...@@ -391,6 +517,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -391,6 +517,7 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
Api.getService(OrderService.class).modifySop(currentSop).compose(Api.applySchedulers()) Api.getService(OrderService.class).modifySop(currentSop).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(success -> { .subscribe(mPresenter.baseObserver(success -> {
hideDialog(); hideDialog();
optionSelected = false;
getPermissionLocation(); getPermissionLocation();
toNext(false); toNext(false);
})); }));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment