init: init proj
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
package com.lukouguoji.gjc.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.databinding.DialogGjcBoxBatchBinding
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.bean.GjcWaybillBean
|
||||
import com.lukouguoji.module_base.http.net.NetApply
|
||||
import com.lukouguoji.module_base.ktx.getLifecycleOwner
|
||||
import com.lukouguoji.module_base.ktx.launchCollect
|
||||
import com.lukouguoji.module_base.ktx.noNull
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.ktx.tryCatch
|
||||
import com.lukouguoji.module_base.util.Arith
|
||||
import com.lxj.xpopup.XPopup
|
||||
import dev.utils.app.ScreenUtils
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
class BoxBatchDialogModel(
|
||||
val bean: GjcWaybillBean,
|
||||
val callBack: () -> Unit
|
||||
) : BaseDialogModel<DialogGjcBoxBatchBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
// 剩余件数
|
||||
val remainingCount = MutableLiveData(bean.pc.noNull())
|
||||
|
||||
// 剩余重量
|
||||
val remainingWeight = MutableLiveData(bean.weight.noNull())
|
||||
|
||||
|
||||
// 件数
|
||||
val count = MutableLiveData("")
|
||||
|
||||
// 重量
|
||||
val weight = MutableLiveData("")
|
||||
|
||||
override fun onBuild(builder: XPopup.Builder) {
|
||||
builder.maxWidth((ScreenUtils.getScreenWidth() * 0.5).roundToInt())
|
||||
}
|
||||
|
||||
override fun layoutId() = R.layout.dialog_gjc_box_batch
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
|
||||
// 件数改变监听
|
||||
count.observe(context.getLifecycleOwner()) {
|
||||
tryCatch({ _ ->
|
||||
val old = bean.pc.noNull().toInt()
|
||||
val new = it.toInt()
|
||||
if (old < new) {
|
||||
count.value = bean.pc.noNull()
|
||||
remainingCount.postValue("0")
|
||||
} else {
|
||||
val c = (old - new).toString()
|
||||
remainingCount.postValue(c)
|
||||
}
|
||||
}) {
|
||||
remainingCount.postValue(bean.pc.noNull())
|
||||
}
|
||||
}
|
||||
|
||||
// 重量改变监听
|
||||
weight.observe(context.getLifecycleOwner()) {
|
||||
tryCatch({ _ ->
|
||||
val old = bean.weight.noNull().toDouble()
|
||||
val new = it.toDouble()
|
||||
if (old < new) {
|
||||
weight.value = bean.weight.noNull()
|
||||
remainingWeight.postValue("0")
|
||||
} else {
|
||||
val w =
|
||||
Arith.round((old - new), 2).toString()
|
||||
remainingWeight.postValue(w)
|
||||
}
|
||||
}) {
|
||||
remainingWeight.postValue(bean.weight.noNull())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
fun save(view: View) {
|
||||
launchCollect({
|
||||
NetApply.api.gjcBoxAssembleBatch(
|
||||
mapOf(
|
||||
"code" to bean.getWaybillCode(),
|
||||
"whid" to bean.whid,
|
||||
"pc" to count.value,
|
||||
"weight" to weight.value,
|
||||
).toRequestBody()
|
||||
)
|
||||
}) {
|
||||
onSuccess = {
|
||||
if (it.verifySuccess()) {
|
||||
callBack()
|
||||
} else {
|
||||
showToast(it.msg.noNull("分批保存失败"))
|
||||
}
|
||||
}
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.lukouguoji.gjc.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.databinding.DialogBoxAddSelectBinding
|
||||
import com.lukouguoji.gjc.holder.GjcUnLoadDialogViewHolder
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.bean.GjcWaybillBean
|
||||
import com.lukouguoji.module_base.interfaces.IOnItemClickListener
|
||||
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
||||
import com.lukouguoji.module_base.ktx.refresh
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.util.CheckUtil
|
||||
import com.lxj.xpopup.XPopup
|
||||
|
||||
class GjcBoxAddSelectDialogModel(
|
||||
val list: List<GjcWaybillBean>,
|
||||
private val callBack: (GjcWaybillBean) -> Unit
|
||||
) : BaseDialogModel<DialogBoxAddSelectBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
val itemId = R.layout.item_gjc_un_load_dialog
|
||||
val itemHolder = GjcUnLoadDialogViewHolder::class.java
|
||||
|
||||
override fun onBuild(builder: XPopup.Builder) {
|
||||
builder.dismissOnBackPressed(false)
|
||||
builder.dismissOnTouchOutside(false)
|
||||
}
|
||||
|
||||
override fun layoutId(): Int {
|
||||
return R.layout.dialog_box_add_select
|
||||
}
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
|
||||
binding.rv.refresh(list)
|
||||
|
||||
binding.rv.addOnItemClickListener(object : IOnItemClickListener {
|
||||
override fun onItemClick(position: Int, type: Int) {
|
||||
CheckUtil.handleSingleCheck(list, "checked", position, cancelAble = false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun onConfirmClick(view: View) {
|
||||
val find = list.find { it.checked.get() }
|
||||
if (find == null) {
|
||||
showToast("请选择一个运单")
|
||||
return
|
||||
}
|
||||
callBack.invoke(find)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.lukouguoji.gjc.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.databinding.DialogBoxAddSelectBinding
|
||||
import com.lukouguoji.gjc.databinding.DialogGjcUldSelectBinding
|
||||
import com.lukouguoji.gjc.holder.GjcUnLoadDialogViewHolder
|
||||
import com.lukouguoji.gjc.holder.UldViewHolder
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.bean.GjcWaybillBean
|
||||
import com.lukouguoji.module_base.bean.ULDBean
|
||||
import com.lukouguoji.module_base.interfaces.IOnItemClickListener
|
||||
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
||||
import com.lukouguoji.module_base.ktx.refresh
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.util.CheckUtil
|
||||
import com.lxj.xpopup.XPopup
|
||||
import dev.utils.app.ScreenUtils
|
||||
|
||||
class GjcUldSelectDialogModel(
|
||||
val list: List<ULDBean>,
|
||||
private val callBack: (ULDBean) -> Unit
|
||||
) : BaseDialogModel<DialogGjcUldSelectBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
val itemId = R.layout.item_uld
|
||||
val itemHolder = UldViewHolder::class.java
|
||||
|
||||
override fun onBuild(builder: XPopup.Builder) {
|
||||
builder.dismissOnBackPressed(false)
|
||||
.dismissOnTouchOutside(false)
|
||||
.maxHeight((ScreenUtils.getScreenHeight() * 0.7f).toInt())
|
||||
}
|
||||
|
||||
override fun layoutId(): Int {
|
||||
return R.layout.dialog_gjc_uld_select
|
||||
}
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
|
||||
binding.rv.refresh(list)
|
||||
|
||||
binding.rv.addOnItemClickListener(object : IOnItemClickListener {
|
||||
override fun onItemClick(position: Int, type: Int) {
|
||||
CheckUtil.handleSingleCheck(list, "checked", position, cancelAble = false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun onConfirmClick(view: View) {
|
||||
val find = list.find { it.checked.get() }
|
||||
if (find == null) {
|
||||
showToast("请选择一个ULD")
|
||||
return
|
||||
}
|
||||
callBack.invoke(find)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user