feat: opt printer

This commit is contained in:
2026-02-05 15:15:42 +08:00
parent 120b2eb995
commit fd20585741
4 changed files with 88 additions and 37 deletions

View File

@@ -1,6 +1,7 @@
package com.lukouguoji.gjc.holder
import android.view.View
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.activity.GjcBoxWeighingDetailsActivity
import com.lukouguoji.gjc.databinding.ItemGjcBoxWeighingBinding
import com.lukouguoji.module_base.base.BaseViewHolder
@@ -16,9 +17,24 @@ class GjcBoxWeighingViewHolder(view: View) :
val bean = getItemBean(item)!!
binding.bean = bean
// 更新图标状态
updateIcon(bean)
// 图标点击切换选中状态
binding.ivIcon.setOnClickListener {
bean.checked.set(!bean.checked.get())
updateIcon(bean)
}
// 整行点击跳转到详情页
binding.ll.setOnClickListener {
GjcBoxWeighingDetailsActivity.start(it.context, bean.useId)
}
}
private fun updateIcon(bean: GjcUldUseBean) {
binding.ivIcon.setImageResource(
if (bean.checked.get()) R.drawable.img_plane_s else R.drawable.img_plane
)
}
}

View File

@@ -6,12 +6,17 @@ import androidx.lifecycle.MutableLiveData
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.holder.GjcBoxWeighingViewHolder
import com.lukouguoji.module_base.base.BasePageViewModel
import com.lukouguoji.module_base.bean.GjcUldUseBean
import com.lukouguoji.module_base.common.Constant
import com.lukouguoji.module_base.http.net.NetApply
import com.lukouguoji.module_base.ktx.commonAdapter
import com.lukouguoji.module_base.ktx.launchCollect
import com.lukouguoji.module_base.ktx.launchLoadingCollect
import com.lukouguoji.module_base.ktx.showToast
import com.lukouguoji.module_base.ktx.toRequestBody
import com.lukouguoji.module_base.model.BluetoothDialogModel
import com.lukouguoji.module_base.model.ScanModel
import com.lukouguoji.module_base.util.PrinterUtils
import dev.utils.common.DateUtils
import com.lukouguoji.module_base.ktx.formatDate
@@ -73,7 +78,27 @@ class GjcBoxWeighingViewModel : BasePageViewModel() {
* 挂签打印按钮点击
*/
fun printClick() {
// TODO: 实现挂签打印功能
// 获取列表中选中的记录
val list = pageModel.rv?.commonAdapter()?.items as? List<GjcUldUseBean> ?: return
val selectedItems = list.filter { it.isSelected }
// 校验未选择
if (selectedItems.isEmpty()) {
showToast("请选择要打印的数据")
return
}
// 校验多选
if (selectedItems.size > 1) {
showToast("只能选择一条记录进行打印")
return
}
// 执行打印
val bean = selectedItems.first()
BluetoothDialogModel().showCallBack {
PrinterUtils.printGjcBoxWeighing(bean)
}
}
/**