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,408 @@
package com.lukouguoji.gjc.fragment
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.alibaba.fastjson.JSONArray
import com.alibaba.fastjson.JSONObject
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.activity.GjcYiKuListActivity
import com.lukouguoji.gjc.adapt.GjcYiKu2ListAdapter
import com.lukouguoji.gjc.model.GjcYiKu2ListModel
import com.lukouguoji.gjc.viewModel.GjcYiKu2ListViewModel
import com.lukouguoji.module_base.ActivityCollector
import com.lukouguoji.module_base.common.Constant
import com.lukouguoji.module_base.util.Common
import com.scwang.smart.refresh.footer.ClassicsFooter
import com.scwang.smart.refresh.header.ClassicsHeader
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.yanzhenjie.permission.AndPermission
import com.yanzhenjie.permission.runtime.Permission
import com.yzq.zxinglibrary.android.CaptureActivity
import com.yzq.zxinglibrary.bean.ZxingConfig
import java.text.SimpleDateFormat
import java.util.*
class GjcYiKu2Fragment : Fragment(), View.OnClickListener {
private lateinit var yiKuActivity: GjcYiKuListActivity
private val currentTitleName = "国际出港查询完成移库"
private lateinit var viewModel: GjcYiKu2ListViewModel
private lateinit var adapter: GjcYiKu2ListAdapter
private val collectList = ArrayList<GjcYiKu2ListModel>()
private var currentPage = 1
private var pageSize = 10
private var totalPage = 0
private lateinit var refreshLayout: RefreshLayout
//标题
private lateinit var toolBack: LinearLayout
private lateinit var titleName: TextView
//搜索条件
private lateinit var searchListFragment: LinearLayout
private lateinit var filtrateLayout: LinearLayout
private lateinit var startDate: TextView
private lateinit var endDate: TextView
private lateinit var awbType: TextView
private var awbTypeValue = ""
private lateinit var id: EditText
private lateinit var idScanIcon: ImageView
private lateinit var searchLayout: LinearLayout
//筛选页
private lateinit var filtrateFragment: LinearLayout
private lateinit var wbNo: EditText
private lateinit var wbNoScanIcon: ImageView
private lateinit var submit: TextView
private lateinit var reset: TextView
// 、、特码、代理人、品名、运单类型、业务类型查询
private val ymdSdf = SimpleDateFormat("yyyy-MM-dd")//年月日
private val ymdHmsSdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")//年月日 时分秒
private val calendar = Calendar.getInstance()
private fun initView() {
yiKuActivity = activity!! as GjcYiKuListActivity
viewModel = ViewModelProvider(this).get(GjcYiKu2ListViewModel::class.java)
val layoutManager = LinearLayoutManager(yiKuActivity)
adapter = GjcYiKu2ListAdapter(yiKuActivity, collectList)
var recyclerView: RecyclerView = yiKuActivity.findViewById(R.id.recyclerList)
recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
//标题
toolBack = yiKuActivity.findViewById(R.id.tool_back)
titleName = yiKuActivity.findViewById(R.id.title_name)
//搜索列表页
searchListFragment = yiKuActivity.findViewById(R.id.searchListFragment)
startDate = yiKuActivity.findViewById(R.id.startDate)
endDate = yiKuActivity.findViewById(R.id.endDate)
awbType = yiKuActivity.findViewById(R.id.awbType)
id = yiKuActivity.findViewById(R.id.id)
idScanIcon = yiKuActivity.findViewById(R.id.idScanIcon)
searchLayout = yiKuActivity.findViewById(R.id.searchLayout)
filtrateLayout = yiKuActivity.findViewById(R.id.filtrateLayout)
//筛选页
filtrateFragment = yiKuActivity.findViewById(R.id.filtrateFragment)
wbNo = yiKuActivity.findViewById(R.id.wbNo)
wbNoScanIcon = yiKuActivity.findViewById(R.id.wbNoScanIcon)
submit = yiKuActivity.findViewById(R.id.submit)
reset = yiKuActivity.findViewById(R.id.reset)
toolBack.setOnClickListener(this)
searchLayout.setOnClickListener(this)
startDate.setOnClickListener(this)
endDate.setOnClickListener(this)
awbType.setOnClickListener(this)
idScanIcon.setOnClickListener(this)
wbNoScanIcon.setOnClickListener(this)
filtrateLayout.setOnClickListener(this)
submit.setOnClickListener(this)
reset.setOnClickListener(this)
wbNo.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (s != null && s.toString().length > 11) {
Common.alertDialog(ActivityCollector.getLastActivity()!!, "运单号不能超过11位") { dialog ->
wbNo.setText(s.toString().substring(0, 11))
dialog.dismiss()
}
}
}
override fun afterTextChanged(s: Editable?) {
}
})
val format = ymdSdf.format(Date())
startDate.text = "$format 00:00:00"
endDate.text = "$format 23:59:59"
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_gjc_yi_ku2, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
initView()
//初始化查询
searchFun()
yiKuActivity.loading()
//查询返回结果
viewModel.searchParamLive.observe(yiKuActivity) {
yiKuActivity.loadingCancel()
//1.获取数据
var listArr: JSONArray = it["list"] as JSONArray
totalPage = it["pages"] as Int
// var listArr :JSONArray =it["list"] as JSONArray
if (listArr.size > 0) {
collectList.clear()
//2.循环遍历塞入collectList
listArr.forEach {
val itemObj = it as JSONObject
val id = itemObj.getString("moveId")
val no = itemObj.getString("wbNo") ?: ""
val fno = itemObj.getString("fno") ?: ""
val pc = itemObj.getIntValue("pc")
val weight = itemObj.getDoubleValue("weight")//实到重量
val goods = itemObj.getString("goods") ?: ""
val agentCode = itemObj.getString("agentCode") ?: ""
val spCode = itemObj.getString("spCode") ?: ""
val pickDate = itemObj.getString("chargeTime") ?: ""
val origin = itemObj.getString("origin") ?: ""
val dest = itemObj.getString("dest") ?: ""
val by1 = itemObj.getString("by1") ?: ""
val awbType = itemObj.getString("awbType") ?: ""
//列表赋值
collectList.add(
GjcYiKu2ListModel(
id,
no,
fno,
pc,
weight,
goods,
agentCode,
spCode,
pickDate, origin, dest, by1, awbType, false
)
)
}
//3.调adpter展示
if (currentPage == 1) {
adapter.notifyDataSetChanged()
} else {
adapter.notifyItemRangeInserted((currentPage - 1) * 10, collectList.size)
}
refreshLayout.finishRefresh()
refreshLayout.finishLoadMore()
}
}
/////////////// 下拉框 start
viewModel.awb(Constant.businessType.IO)
viewModel.awbObserver.observe(yiKuActivity) { vd ->
val noneObj = JSONObject()
noneObj["name"] = "请选择运单类型"
noneObj["code"] = ""
viewModel.awbList.add(noneObj)
viewModel.awbList.addAll(vd.getJSONArray("data"))
}
/////////////// 下拉框 end
/////////////////////////////// 加载刷新的布局
refreshLayout = yiKuActivity.findViewById<View>(R.id.refreshLayout) as RefreshLayout
refreshLayout.setRefreshHeader(ClassicsHeader(yiKuActivity))
refreshLayout.setRefreshFooter(ClassicsFooter(yiKuActivity))
/////////////////////////////// 下拉刷新
refreshLayout.setOnRefreshListener {
resetSearch()
}
/////////////////////////////// 上拉加载
refreshLayout.setOnLoadMoreListener {
if (currentPage < totalPage) {
currentPage++
//初始化查询
searchFun()
} else {
refreshLayout.finishLoadMoreWithNoMoreData()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (data != null) {
val content = data.getStringExtra(com.yzq.zxinglibrary.common.Constant.CODED_CONTENT)
// 扫描二维码/条码回传
when (requestCode) {
Constant.RequestCode.gjc_yiku2_id_scan -> {
id.setText(content)
resetSearch()
}
Constant.RequestCode.gjc_yiku2_wb_no_scan -> {
wbNo.setText(content)
resetSearch()
}
}
}
}
override fun onClick(v: View?) {
v?.let {
when (it.id) {
R.id.tool_back -> {
if (searchListFragment.visibility == View.GONE && filtrateFragment.visibility == View.VISIBLE) {
searchListFragment.visibility = View.VISIBLE
filtrateFragment.visibility = View.GONE
titleName.text = currentTitleName
} else {
yiKuActivity.finish()
}
}
R.id.searchLayout -> {
resetSearch()
}
R.id.filtrateLayout -> {
if (searchListFragment.visibility == View.VISIBLE && filtrateFragment.visibility == View.GONE) {
searchListFragment.visibility = View.GONE
filtrateFragment.visibility = View.VISIBLE
titleName.text = "搜索"
} else {
searchListFragment.visibility = View.VISIBLE
filtrateFragment.visibility = View.GONE
titleName.text = currentTitleName
}
// Common.showToast(this,"筛选")
}
R.id.startDate -> {
Common.onYearMonthDayTime(yiKuActivity, startDate.text.toString()) { year, month, day, hour, min, second ->
calendar.set(year, month - 1, day, hour, min, second)
startDate.text = ymdHmsSdf.format(calendar.time)
}
}
R.id.endDate -> {
Common.onYearMonthDayTime(yiKuActivity, endDate.text.toString()) { year, month, day, hour, min, second ->
calendar.set(year, month - 1, day, hour, min, second)
endDate.text = ymdHmsSdf.format(calendar.time)
}
}
R.id.awbType -> {
Common.singleSelect(yiKuActivity, "运单类型", viewModel.awbList, awbTypeValue) { _, item ->
val jsonObject = item as JSONObject
val name = jsonObject.getString("name")
val code = jsonObject.getString("code")
awbType.text = name
awbTypeValue = code
}
}
R.id.idScanIcon -> {
scanCode(Constant.RequestCode.gjc_yiku2_id_scan)
}
R.id.wbNoScanIcon -> {
scanCode(Constant.RequestCode.gjc_yiku2_wb_no_scan)
}
R.id.submit -> {
titleName.text = currentTitleName
//搜索
resetSearch()
}
R.id.reset -> {
resetFun()
}
else -> {
Toast.makeText(yiKuActivity, "未找到对应操作", Toast.LENGTH_SHORT).show()
}
}
}
}
/**
* 搜索
*/
private fun searchFun() {
//筛选页隐藏
searchListFragment.visibility = View.VISIBLE
filtrateFragment.visibility = View.GONE
yiKuActivity.loading()
viewModel.search(
pageSize,
currentPage,
startDate.text.toString(),
endDate.text.toString(),
awbTypeValue,
id.text.toString(),
wbNo.text.toString()
)
}
/**
* 重置数据,搜索
*/
private fun resetSearch() {
//recyclerView 清除所有数据数据
refreshLayout.setNoMoreData(false)
adapter.notifyItemRangeRemoved(0, collectList.size)
collectList.clear()
currentPage = 1
searchFun()
}
/**
* 重置筛选条件
*/
private fun resetFun() {
currentPage = 1
val format = ymdSdf.format(Date())
startDate.text = "$format 00:00:00"
endDate.text = "$format 23:59:59"
wbNo.setText("")
id.setText("")
awbType.text = ""
awbTypeValue = ""
}
/**
* 扫码功能
*/
fun scanCode(requestCode: Int) {
AndPermission.with(this)
.runtime()
.permission(Permission.CAMERA, Permission.READ_EXTERNAL_STORAGE)
.onGranted { data: List<String?>? ->
val intent = Intent(yiKuActivity, CaptureActivity::class.java)
val config = ZxingConfig()
config.isFullScreenScan = false //是否全屏扫描 默认为true 设为false则只会在扫描框中扫描
intent.putExtra(com.yzq.zxinglibrary.common.Constant.INTENT_ZXING_CONFIG, config)
startActivityForResult(intent, requestCode)
}
.onDenied { data: List<String?>? ->
val packageURI = Uri.parse("package:${yiKuActivity.packageName}")
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
Toast.makeText(yiKuActivity, "没有权限无法扫描呦", Toast.LENGTH_LONG).show()
}
.start()
}
}

View File

@@ -0,0 +1,460 @@
package com.lukouguoji.gjc.fragment
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.alibaba.fastjson.JSONArray
import com.alibaba.fastjson.JSONObject
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.activity.GjcYiKuListActivity
import com.lukouguoji.gjc.adapt.GjcYiKuListAdapter
import com.lukouguoji.gjc.model.GjcYiKuListModel
import com.lukouguoji.gjc.viewModel.GjcYiKuListViewModel
import com.lukouguoji.module_base.ActivityCollector
import com.lukouguoji.module_base.MyApplication
import com.lukouguoji.module_base.common.Constant
import com.lukouguoji.module_base.util.Common
import com.scwang.smart.refresh.footer.ClassicsFooter
import com.scwang.smart.refresh.header.ClassicsHeader
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.yanzhenjie.permission.AndPermission
import com.yanzhenjie.permission.runtime.Permission
import com.yzq.zxinglibrary.android.CaptureActivity
import com.yzq.zxinglibrary.bean.ZxingConfig
import java.util.*
import kotlin.collections.ArrayList
class GjcYiKuFragment : Fragment(), View.OnClickListener {
private lateinit var viewModel: GjcYiKuListViewModel
private lateinit var yiKuActivity: GjcYiKuListActivity
private lateinit var adapter: GjcYiKuListAdapter
private val collectList = ArrayList<GjcYiKuListModel>()
private var collectListFromNet = ArrayList<GjcYiKuListModel>()
private lateinit var refreshLayout: RefreshLayout
private var currentPage = 1
private var pageSize = 10
private var totalPage = 0
private var totalCount = 0 //总条数
//搜索
private lateinit var wbNo: EditText
private lateinit var wbNoScanIcon: ImageView
private lateinit var carrier: EditText
private lateinit var dest: EditText
private lateinit var searchLayout: LinearLayout
private lateinit var checkIcon: ImageView
private lateinit var quickSearch: EditText
private var isAllCheck = false
//列表
private lateinit var listLayout: LinearLayout
private lateinit var totalLayout: LinearLayout
//底部
private lateinit var totalPc: TextView
private lateinit var selPc: TextView
private lateinit var send: TextView
private fun initView() {
yiKuActivity = activity!! as GjcYiKuListActivity
viewModel = ViewModelProvider(this).get(GjcYiKuListViewModel::class.java)
val layoutManager = LinearLayoutManager(activity)
adapter = GjcYiKuListAdapter(yiKuActivity, viewModel, collectList)
var recyclerView: RecyclerView = yiKuActivity.findViewById(R.id.collectList)
recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
refreshLayout = yiKuActivity.findViewById(R.id.refreshLayout)
wbNo = yiKuActivity.findViewById(R.id.wbNo)
wbNoScanIcon = yiKuActivity.findViewById(R.id.wbNoScanIcon)
carrier = yiKuActivity.findViewById(R.id.carrier)
dest = yiKuActivity.findViewById(R.id.dest)
searchLayout = yiKuActivity.findViewById(R.id.searchLayout)
checkIcon = yiKuActivity.findViewById(R.id.checkIcon)
quickSearch = yiKuActivity.findViewById(R.id.quickSearch)
//列表
listLayout = yiKuActivity.findViewById(R.id.listLayout)
totalLayout = yiKuActivity.findViewById(R.id.totalLayout)
//底部
totalPc = yiKuActivity.findViewById(R.id.totalPc)
selPc = yiKuActivity.findViewById(R.id.selPc)
send = yiKuActivity.findViewById(R.id.send)
searchLayout.setOnClickListener(this)
wbNoScanIcon.setOnClickListener(this)
checkIcon.setOnClickListener(this)
send.setOnClickListener(this)
quickSearch.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (s != null && s.toString() != "") {
val filterCollectionList = collectList.filter { c -> c.wbNo.contains(s.toString()) }
collectList.clear()
collectList.addAll(filterCollectionList)
recyclerView.adapter = GjcYiKuListAdapter(
ActivityCollector.getLastActivity()!!,
viewModel,
collectList
)
} else {
collectList.clear()
collectList.addAll(collectListFromNet)
recyclerView.adapter = GjcYiKuListAdapter(
ActivityCollector.getLastActivity()!!,
viewModel,
collectList
)
}
val checkList = collectList.filter { c -> c.isCheck }
viewModel.setCheckCount(checkList.size)
adapter.notifyDataSetChanged()
}
override fun afterTextChanged(s: Editable?) {
}
})
wbNo.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (s != null && s.toString().length > 11) {
Common.alertDialog(ActivityCollector.getLastActivity()!!, "运单号不能超过11位") { dialog ->
wbNo.setText(s.toString().substring(0, 11))
dialog.dismiss()
}
}
}
override fun afterTextChanged(s: Editable?) {
}
})
carrier.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(editable: Editable?) {
val originText = editable.toString()
if (originText != null && originText != "") {
val regularExpression = "(^([A-Z]+)$)"
val matches = originText.matches(regularExpression.toRegex())
if(!matches){
val regularExpression2 = "([^A-Za-z]+)"
val replaceStr = originText.replace(regularExpression2.toRegex(),"")
val replaceStrToUpper = replaceStr.uppercase(Locale.ROOT)//小写转大写
carrier.setText(replaceStrToUpper)
carrier.setSelection(replaceStrToUpper.length)
}
}
}
})
dest.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(editable: Editable?) {
val originText = editable.toString()
if (originText != null && originText != "") {
val regularExpression = "(^([A-Z]+)$)"
val matches = originText.matches(regularExpression.toRegex())
if(!matches){
val regularExpression2 = "([^A-Za-z]+)"
val replaceStr = originText.replace(regularExpression2.toRegex(),"")
val replaceStrToUpper = replaceStr.uppercase(Locale.ROOT)//小写转大写
dest.setText(replaceStrToUpper)
dest.setSelection(replaceStrToUpper.length)
}
}
}
})
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_gjc_yi_ku, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
initView()
yiKuActivity.setBackArrow("国际出港移库")
//查询返回结果
viewModel.searchParamLive.observe(yiKuActivity) {
yiKuActivity.loadingCancel()
//1.获取数据
var listArr: JSONArray = it["list"] as JSONArray
totalCount = it.getIntValue("total")
totalPage = it["pages"] as Int
// var listArr :JSONArray =it["list"] as JSONArray
if (listArr.size > 0) {
collectList.clear()
listLayout.visibility = View.VISIBLE
totalLayout.visibility = View.VISIBLE
//2.循环遍历塞入collectList
listArr.forEach {
val itemObj = it as JSONObject
val id = itemObj.getIntValue("maWbId")
val pkId = itemObj.getString("pkId") ?: ""
val no = itemObj.getString("wbNo") ?: ""
val fno = itemObj.getString("fno") ?: ""
val pc = itemObj.getIntValue("pc")
val weight = itemObj.getDoubleValue("weight")//实到重量
val goods = itemObj.getString("goods") ?: ""
val agentCode = itemObj.getString("agentCode") ?: ""
val spCode = itemObj.getString("spCode") ?: ""
val pickDate = itemObj.getString("chargeTime") ?: ""
val origin = itemObj.getString("origin") ?: ""
val dest = itemObj.getString("dest") ?: ""
val by1 = itemObj.getString("by1") ?: ""
val awbType = itemObj.getString("awbType") ?: ""
//列表赋值
collectList.add(
GjcYiKuListModel(
id,
no,
pkId,
fno,
pc,
weight,
goods,
agentCode,
spCode,
pickDate, origin, dest, by1, awbType, false
)
)
}
collectListFromNet.clear()
collectListFromNet = collectList.clone() as ArrayList<GjcYiKuListModel>
//3.调adpter展示
if (currentPage == 1) {
adapter.notifyDataSetChanged()
} else {
adapter.notifyItemRangeInserted((currentPage - 1) * 10, collectList.size)
}
refreshLayout.finishRefresh()
refreshLayout.finishLoadMore()
}
totalPc.text = totalCount.toString()
resetSelCount(false, totalCount)
}
//确认移库 返回结果
viewModel.moveGnjYiKuObserver.observe(yiKuActivity) {
yiKuActivity.loadingCancel()
val status = it.getString("status")
val msg = it.getString("msg")
if (Constant.Result.succ == status) {
var dataStatus = it.getString("data")
if (Constant.Result.succ == dataStatus) {
if (msg != null && msg != "") {
Common.showToast(yiKuActivity, msg)
} else {
Common.showToast(yiKuActivity, "移库成功!")
}
//重新搜索
resetSearch()
} else {
if (msg != null && msg != "") {
Common.showToast(yiKuActivity, msg)
} else {
Common.showToast(yiKuActivity, "移库失败!")
}
}
} else {
if (msg != null && msg != "") {
Common.showToast(yiKuActivity, msg)
} else {
Common.showToast(yiKuActivity, "移库失败!")
}
}
}
//监听 复选框选中
viewModel.checkCount.observe(yiKuActivity) {
selPc.text = it.toString()
}
//搜索
resetSearch()
/////////////////////////////// 加载刷新的布局
refreshLayout.setRefreshHeader(ClassicsHeader(yiKuActivity))
refreshLayout.setRefreshFooter(ClassicsFooter(yiKuActivity))
/////////////////////////////// 下拉刷新
refreshLayout.setOnRefreshListener {
resetSearch()
}
/////////////////////////////// 上拉加载
refreshLayout.setOnLoadMoreListener {
if (currentPage < totalPage) {
currentPage++
//初始化查询
searchFun()
} else {
refreshLayout.finishLoadMoreWithNoMoreData()
}
}
}
override fun onClick(v: View?) {
v?.let {
when (it.id) {
R.id.searchLayout -> {
// viewModel.queryPickByIdGnjChuKu("M000995643")
resetSearch()
}
R.id.wbNoScanIcon -> {
scanCode(Constant.RequestCode.gjc_yiku_wb_no_scan)
}
R.id.checkIcon -> {
//重置 isAllCheck
isAllCheck = !isAllCheck
resetSelCount(isAllCheck, totalCount)
}
R.id.send -> {
val ids = collectList.filter { c -> c.isCheck }.map { c -> c.id }
viewModel.moveGnjYiKu(ids)
}
else -> {
Toast.makeText(yiKuActivity, "未找到对应操作", Toast.LENGTH_SHORT).show()
}
}
}
}
/**
* 扫码返回的结果
*/
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// 扫描二维码/条码回传
if (requestCode == Constant.RequestCode.gjc_yiku_wb_no_scan) {
if (data != null) {
val content = data.getStringExtra(com.yzq.zxinglibrary.common.Constant.CODED_CONTENT)
wbNo.setText("$content")
resetSearch()
}
}
}
/**
* 搜索
*/
private fun searchFun() {
yiKuActivity.loading()
listLayout.visibility = View.GONE
totalLayout.visibility = View.GONE
viewModel.search(
pageSize,
currentPage,
wbNo.text.toString(),
dest.text.toString(),
carrier.text.toString()
)
}
/**
* 重置数据,搜索
*/
private fun resetSearch() {
//recyclerView 清除所有数据数据
viewModel.setCheckCount(0)
refreshLayout.setNoMoreData(false)
adapter.notifyItemRangeRemoved(0, collectList.size)
collectList.clear()
currentPage = 1
searchFun()
}
/**
* 重新计算选中数量
* isAllCheckParam true全选 false:全部全效选择
*/
private fun resetSelCount(isAllCheckParam: Boolean, totalCount: Int) {
collectList.forEach { c ->
c.isCheck = isAllCheckParam
}
if (isAllCheckParam) {
viewModel.setCheckCount(totalCount)
} else {
viewModel.setCheckCount(0)
}
adapter.notifyDataSetChanged()
}
/**
* 扫码功能
*/
fun scanCode(requestCode: Int) {
AndPermission.with(this)
.runtime()
.permission(Permission.CAMERA, Permission.READ_EXTERNAL_STORAGE)
.onGranted { data: List<String?>? ->
val intent = Intent(yiKuActivity, CaptureActivity::class.java)
val config = ZxingConfig()
config.isFullScreenScan = false //是否全屏扫描 默认为true 设为false则只会在扫描框中扫描
intent.putExtra(com.yzq.zxinglibrary.common.Constant.INTENT_ZXING_CONFIG, config)
startActivityForResult(intent, requestCode)
}
.onDenied { data: List<String?>? ->
val packageURI = Uri.parse("package:${yiKuActivity.packageName}")
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
Toast.makeText(yiKuActivity, "没有权限无法扫描呦", Toast.LENGTH_LONG).show()
}
.start()
}
}