diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 7594c13..cb22e45 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -441,9 +441,10 @@ } /** + * TODO 参数待定 * 退回委托书 */ - suspend fun returnEntrust(id: String): String { + suspend fun returnEntrust(id: String, selected: ArrayList): String { val paramObject = JSONObject() paramObject.put("id", id) val requestBody = paramObject.toString().toRequestBody( diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 7594c13..cb22e45 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -441,9 +441,10 @@ } /** + * TODO 参数待定 * 退回委托书 */ - suspend fun returnEntrust(id: String): String { + suspend fun returnEntrust(id: String, selected: ArrayList): String { val paramObject = JSONObject() paramObject.put("id", id) val requestBody = paramObject.toString().toRequestBody( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 01adff3..94ecefa 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -10,6 +10,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.AlertReturnControlDialog import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.utils.Constant @@ -75,7 +76,22 @@ //退回 returnImageView.setOnClickListener { - entrustViewModel.returnEntrust(entrustId) + AlertReturnControlDialog.Builder() + .setContext(this) + .setTitle("退回提示") + .setMessage("确定要退回该需求?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertReturnControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick(selected: ArrayList) { + entrustViewModel.returnEntrust(entrustId, selected) + } + }).build().show() } //接收 diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 7594c13..cb22e45 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -441,9 +441,10 @@ } /** + * TODO 参数待定 * 退回委托书 */ - suspend fun returnEntrust(id: String): String { + suspend fun returnEntrust(id: String, selected: ArrayList): String { val paramObject = JSONObject() paramObject.put("id", id) val requestBody = paramObject.toString().toRequestBody( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 01adff3..94ecefa 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -10,6 +10,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.AlertReturnControlDialog import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.utils.Constant @@ -75,7 +76,22 @@ //退回 returnImageView.setOnClickListener { - entrustViewModel.returnEntrust(entrustId) + AlertReturnControlDialog.Builder() + .setContext(this) + .setTitle("退回提示") + .setMessage("确定要退回该需求?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertReturnControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick(selected: ArrayList) { + entrustViewModel.returnEntrust(entrustId, selected) + } + }).build().show() } //接收 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt index 8b0f66c..2280f88 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt @@ -102,9 +102,9 @@ it.cause.toString().show(BaseApplication.get()) }) - fun returnEntrust(id: String) = launch({ + fun returnEntrust(id: String, selected: ArrayList) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.returnEntrust(id) + val response = RetrofitServiceManager.returnEntrust(id, selected) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 7594c13..cb22e45 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -441,9 +441,10 @@ } /** + * TODO 参数待定 * 退回委托书 */ - suspend fun returnEntrust(id: String): String { + suspend fun returnEntrust(id: String, selected: ArrayList): String { val paramObject = JSONObject() paramObject.put("id", id) val requestBody = paramObject.toString().toRequestBody( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 01adff3..94ecefa 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -10,6 +10,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.AlertReturnControlDialog import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.utils.Constant @@ -75,7 +76,22 @@ //退回 returnImageView.setOnClickListener { - entrustViewModel.returnEntrust(entrustId) + AlertReturnControlDialog.Builder() + .setContext(this) + .setTitle("退回提示") + .setMessage("确定要退回该需求?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertReturnControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick(selected: ArrayList) { + entrustViewModel.returnEntrust(entrustId, selected) + } + }).build().show() } //接收 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt index 8b0f66c..2280f88 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt @@ -102,9 +102,9 @@ it.cause.toString().show(BaseApplication.get()) }) - fun returnEntrust(id: String) = launch({ + fun returnEntrust(id: String, selected: ArrayList) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.returnEntrust(id) + val response = RetrofitServiceManager.returnEntrust(id, selected) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt new file mode 100644 index 0000000..8c97da7 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -0,0 +1,118 @@ +package com.casic.xz.meterage.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import android.widget.Button +import android.widget.TextView +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.extensions.initDialogLayoutParams +import kotlinx.android.synthetic.main.dialog_alert_return.* + +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( + builder.context, R.style.UserDefinedDialogStyle +) { + private val title = builder.title + private val message = builder.message + private val positiveBtn = builder.positiveBtn + private val negativeBtn = builder.negativeBtn + private val listener = builder.listener + + class Builder { + lateinit var context: Context + lateinit var title: String + lateinit var message: String + lateinit var positiveBtn: String + lateinit var negativeBtn: String + lateinit var listener: OnDialogButtonClickListener + + fun setContext(context: Context): Builder { + this.context = context + return this + } + + fun setTitle(title: String): Builder { + this.title = title + return this + } + + fun setMessage(message: String): Builder { + this.message = message + return this + } + + fun setPositiveButton(name: String): Builder { + positiveBtn = name + return this + } + + fun setNegativeButton(name: String): Builder { + negativeBtn = name + return this + } + + fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder { + this.listener = listener + return this + } + + fun build(): AlertReturnControlDialog { + return AlertReturnControlDialog(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + this.initDialogLayoutParams(0.8f) + setContentView(R.layout.dialog_alert_return) + setCancelable(false) + setCanceledOnTouchOutside(false) + initView() + } + + private fun initView() { + val dialogTitleView: TextView = findViewById(R.id.dialogTitleView) + val dialogMessageView: TextView = findViewById(R.id.dialogMessageView) + val dialogCancelButton = findViewById