init: init proj

This commit is contained in:
2025-11-10 18:21:19 +08:00
commit b65b28ec9e
1796 changed files with 187617 additions and 0 deletions

View File

@@ -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()
}
}

View File

@@ -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()
}
}

View File

@@ -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()
}
}