diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index a87498f..88e9ce7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.search +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.MeterageTrainDetailActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +31,11 @@ class SearchMeterageTrainResultActivity : KotlinBaseActivity() { + private var context: Context = this@SearchMeterageTrainResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -133,13 +142,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index a87498f..88e9ce7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.search +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.MeterageTrainDetailActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +31,11 @@ class SearchMeterageTrainResultActivity : KotlinBaseActivity() { + private var context: Context = this@SearchMeterageTrainResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -133,13 +142,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index fcda071..c59a147 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.StandardDeviceDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -131,16 +132,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index a87498f..88e9ce7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.search +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.MeterageTrainDetailActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +31,11 @@ class SearchMeterageTrainResultActivity : KotlinBaseActivity() { + private var context: Context = this@SearchMeterageTrainResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -133,13 +142,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index fcda071..c59a147 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.StandardDeviceDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -131,16 +132,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/res/drawable/bg_customer_selector.xml b/app/src/main/res/drawable/bg_customer_selector.xml deleted file mode 100644 index e7292d5..0000000 --- a/app/src/main/res/drawable/bg_customer_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index a87498f..88e9ce7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.search +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.MeterageTrainDetailActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +31,11 @@ class SearchMeterageTrainResultActivity : KotlinBaseActivity() { + private var context: Context = this@SearchMeterageTrainResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -133,13 +142,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index fcda071..c59a147 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.StandardDeviceDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -131,16 +132,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/res/drawable/bg_customer_selector.xml b/app/src/main/res/drawable/bg_customer_selector.xml deleted file mode 100644 index e7292d5..0000000 --- a/app/src/main/res/drawable/bg_customer_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_sample_selector.xml b/app/src/main/res/drawable/bg_sample_selector.xml deleted file mode 100644 index 6b5d5e7..0000000 --- a/app/src/main/res/drawable/bg_sample_selector.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 687b02b..3105f3f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { //基础依赖库 - implementation files('libs/lite-release.aar') + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.3.2' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-ktx:1.9.0' //Google官方授权框架 diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar deleted file mode 100644 index 45da4df..0000000 --- a/app/libs/lite-release.aar +++ /dev/null Binary files differ diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt deleted file mode 100644 index 749fb91..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CapabilityAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.CapabilityListModel - -class CapabilityAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index a87498f..88e9ce7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.search +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.MeterageTrainDetailActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +31,11 @@ class SearchMeterageTrainResultActivity : KotlinBaseActivity() { + private var context: Context = this@SearchMeterageTrainResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -133,13 +142,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index fcda071..c59a147 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.StandardDeviceDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -131,16 +132,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/res/drawable/bg_customer_selector.xml b/app/src/main/res/drawable/bg_customer_selector.xml deleted file mode 100644 index e7292d5..0000000 --- a/app/src/main/res/drawable/bg_customer_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_sample_selector.xml b/app/src/main/res/drawable/bg_sample_selector.xml deleted file mode 100644 index 6b5d5e7..0000000 --- a/app/src/main/res/drawable/bg_sample_selector.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_select_customer_lv.xml b/app/src/main/res/layout/item_select_customer_lv.xml index 4da19fe..e552239 100644 --- a/app/src/main/res/layout/item_select_customer_lv.xml +++ b/app/src/main/res/layout/item_select_customer_lv.xml @@ -3,30 +3,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/bg_customer_selector" android:orientation="horizontal" android:padding="@dimen/dp_15"> - - - - - @@ -49,7 +31,7 @@ android:id="@+id/scaleView" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:layout_marginStart="@dimen/dp_5" + android:layout_marginHorizontal="@dimen/dp_5" android:paddingHorizontal="@dimen/dp_5" android:text="小微企业" android:textColor="@color/white" @@ -57,16 +39,40 @@ app:qmui_backgroundColor="@color/themeColor" app:qmui_borderWidth="0dp" app:qmui_radius="@dimen/dp_3" /> + + - + + + + + + -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.capabilityNameView.text = rowsBean.priceName - holder.categoryView.text = rowsBean.categoryName - holder.projectView.text = rowsBean.priceItem - holder.priceView.text = rowsBean.price.toString() - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) - var categoryView: TextView = view.findViewById(R.id.categoryView) - var projectView: TextView = view.findViewById(R.id.projectView) - var priceView: TextView = view.findViewById(R.id.priceView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt deleted file mode 100644 index 3f9036c..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerAdapter.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class CustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt deleted file mode 100644 index 7fdd069..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EntrustListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class EntrustAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.customerNameView.text = rowsBean.customerName - - holder.entrustStateView.text = rowsBean.statusName - //未接收:1;已接收:2;已取消:3;检测完成:4 - val color = when (rowsBean.status) { - "1" -> R.color.red.convertColor(context) - "2" -> R.color.blue.convertColor(context) - "3" -> R.color.gray.convertColor(context) - else -> R.color.green.convertColor(context) - } - holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) - - holder.delivererView.text = rowsBean.deliverer - holder.customerPhoneView.text = rowsBean.customerPhone - - holder.sampleCountView.text = rowsBean.sampleCount - if (rowsBean.isUrgent == "0") { - holder.urgentView.text = "否" - holder.urgentView.setTextColor(R.color.gray.convertColor(context)) - } else { - holder.urgentView.text = "是" - holder.urgentView.setTextColor(R.color.red.convertColor(context)) - } - - holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { - "客户没添加任何备注信息" - } else { - "【备注】${rowsBean.remark}" - } - holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" - holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var evaluationView: TextView = view.findViewById(R.id.evaluationView) - var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) - var delivererView: TextView = view.findViewById(R.id.delivererView) - var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) - var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) - var urgentView: TextView = view.findViewById(R.id.urgentView) - var remarkView: TextView = view.findViewById(R.id.remarkView) - var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) - var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt deleted file mode 100644 index bb47a69..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/EquipmentAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.EquipmentListModel - -class EquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.equipmentNameView.text = rowsBean.equipmentName - holder.equipmentCodeView.text = rowsBean.equipmentNo - holder.equipmentDateView.text = rowsBean.enableDate - holder.equipmentLibView.text = rowsBean.useDeptName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) - var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) - var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) - var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt deleted file mode 100644 index 5b890af..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/HomeGridAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.utils.LocaleConstant - -/** - * 主页功能,九宫格Adapter - * */ -class HomeGridAdapter(context: Context, private val dataRows: Array) : - RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) - holder.homeFunctionView.text = dataRows[position] - holder.itemView.setOnClickListener { - clickListener?.onItemClick(position) - } - } - - override fun getItemCount(): Int = dataRows.size - - private var clickListener: OnGridItemClickListener? = null - - interface OnGridItemClickListener { - fun onItemClick(position: Int) - } - - fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { - this.clickListener = clickListener - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) - val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt deleted file mode 100644 index 8347582..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/MeterageTrainAdapter.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.content.res.ColorStateList -import android.graphics.Color -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import cn.bertsir.zbar.utils.QRUtils -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.isEarlier -import com.casic.xz.meterage.extensions.isLater -import com.casic.xz.meterage.model.MeterageTrainListModel -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.dp2px -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class MeterageTrainAdapter( - private val context: Context, - private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.trainTitleView.text = rowsBean.planName - //根据创建时间和计划培训时间判断培训状态 - when { - rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { - holder.trainStateView.text = "未进行" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) - } - rowsBean.trainTime.isLater() -> { - holder.trainStateView.text = "已结束" - holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) - } - else -> { - holder.trainStateView.text = "培训中" - holder.trainStateView.backgroundTintList = - ColorStateList.valueOf(R.color.green.convertColor(context)) - } - } - holder.trainDescView.text = rowsBean.trainContent - holder.trainHourView.text = "${rowsBean.trainHour}课时" - - val codeBitmap = QRUtils.getInstance().createQRCode( - rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) - ) - holder.qrCodeView.setImageBitmap(codeBitmap) - holder.trainTimeView.text = rowsBean.trainTime - holder.speakerNameView.text = rowsBean.director - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) - var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) - var trainDescView: TextView = view.findViewById(R.id.trainDescView) - var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) - var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) - var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) - var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt deleted file mode 100644 index ab4b8db..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/NoticeAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.NoticeListModel - -class NoticeAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] -// holder.noticeTypeIconView.setImageResource() - holder.noticeTitleView.text = rowsBean.noticeTitle - holder.noticeDateView.text = rowsBean.noticeTime - holder.noticeContentView.text = rowsBean.noticeSketch - val state = if (rowsBean.isDel == 0) { - View.VISIBLE - } else { - View.INVISIBLE - } - holder.readStateView.visibility = state - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) - var readStateView: View = view.findViewById(R.id.readStateView) - var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) - var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) - var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt deleted file mode 100644 index 21a71d8..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectCustomerAdapter.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.extensions.toChineseGrade -import com.casic.xz.meterage.model.CustomerListModel - -class SelectCustomerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - - //选择的位置 - private var selectedPosition = 0 - - //临时记录上次选择的位置 - private var temp = -1 - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() - holder.customerNameView.text = rowsBean.customerName - holder.scaleView.text = rowsBean.companySizeName - holder.overallView.text = "公司规模:${rowsBean.evaluationName}" - holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" - - holder.itemView.isSelected = holder.layoutPosition == selectedPosition - holder.itemView.setOnClickListener { - itemCheckedListener?.onItemChecked(rowsBean) - - holder.itemView.isSelected = true - temp = selectedPosition - //设置新的位置 - selectedPosition = holder.layoutPosition - //更新旧位置 - notifyItemChanged(temp) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) - var customerNameView: TextView = view.findViewById(R.id.customerNameView) - var scaleView: TextView = view.findViewById(R.id.scaleView) - var overallView: TextView = view.findViewById(R.id.overallView) - var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt deleted file mode 100644 index c29461e..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SelectSampleAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SampleListModel - -class SelectSampleAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater = LayoutInflater.from(context) - private var multipleSelected = mutableSetOf() - private var sampleModes = ArrayList() - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" - holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" - holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" - holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" - - holder.checkImageView.isSelected = multipleSelected.contains(position) - holder.itemView.setOnClickListener { - if (multipleSelected.contains(position)) { - multipleSelected.remove(position) - sampleModes.remove(dataRows[position]) - holder.checkImageView.isSelected = false - } else { - multipleSelected.add(position) - sampleModes.add(dataRows[position]) - holder.checkImageView.isSelected = true - } - - itemCheckedListener?.onItemChecked(sampleModes) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) - var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) - var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) - var validDateView: TextView = view.findViewById(R.id.validDateView) - var checkImageView: ImageView = view.findViewById(R.id.checkImageView) - } - - private var itemCheckedListener: OnItemCheckedListener? = null - - interface OnItemCheckedListener { - fun onItemChecked(items: ArrayList) - } - - fun setOnCheckedListener(listener: OnItemCheckedListener?) { - itemCheckedListener = listener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt deleted file mode 100644 index fa032fb..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StaffAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StaffListModel - -class StaffAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.name.last().toString() - holder.userNameView.text = - rowsBean.name + "【" + rowsBean.deptId + "】" + rowsBean.staffNo - holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var userNameView: TextView = view.findViewById(R.id.userNameView) - var certificateView: TextView = view.findViewById(R.id.certificateView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt deleted file mode 100644 index 86da08b..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/StandardDeviceAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.StandardDeviceListModel - -class StandardDeviceAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.deviceNameView.text = rowsBean.standardName - holder.deviceCodeView.text = rowsBean.standardNo - holder.deviceDateView.text = rowsBean.preparationDate - holder.deviceLibView.text = rowsBean.standardLaboratoryName - - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onItemClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) - var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onItemClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt deleted file mode 100644 index ffdc9c6..0000000 --- a/app/src/main/java/com/casic/xz/meterage/adapter/SupportEquipmentAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.casic.xz.meterage.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.xz.meterage.R -import com.casic.xz.meterage.model.SupportEquipmentListModel - -class SupportEquipmentAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun getItemCount(): Int = dataRows.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) - ) - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.nameTagView.text = rowsBean.equipmentName.last().toString() - holder.deviceNameView.text = - rowsBean.equipmentName + "【" + rowsBean.useDeptName + "】" + rowsBean.modelNo - holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" - holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var nameTagView: TextView = view.findViewById(R.id.nameTagView) - var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) - var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) - var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt new file mode 100644 index 0000000..92b06dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CapabilityAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.CapabilityListModel + +class CapabilityAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_capability_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.capabilityNameView.text = rowsBean.priceName + holder.categoryView.text = rowsBean.categoryName + holder.projectView.text = rowsBean.priceItem + holder.priceView.text = rowsBean.price.toString() + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var capabilityNameView: TextView = view.findViewById(R.id.capabilityNameView) + var categoryView: TextView = view.findViewById(R.id.categoryView) + var projectView: TextView = view.findViewById(R.id.projectView) + var priceView: TextView = view.findViewById(R.id.priceView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt new file mode 100644 index 0000000..9f5e040 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/CustomerAdapter.kt @@ -0,0 +1,57 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class CustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_customer_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt new file mode 100644 index 0000000..d2e2533 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EntrustAdapter.kt @@ -0,0 +1,91 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EntrustListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class EntrustAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_entrust_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.customerNameView.text = rowsBean.customerName + + holder.entrustStateView.text = rowsBean.statusName + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (rowsBean.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + holder.entrustStateView.backgroundTintList = ColorStateList.valueOf(color) + + holder.delivererView.text = rowsBean.deliverer + holder.customerPhoneView.text = rowsBean.customerPhone + + holder.sampleCountView.text = rowsBean.sampleCount + if (rowsBean.isUrgent == "0") { + holder.urgentView.text = "否" + holder.urgentView.setTextColor(R.color.gray.convertColor(context)) + } else { + holder.urgentView.text = "是" + holder.urgentView.setTextColor(R.color.red.convertColor(context)) + } + + holder.remarkView.text = if (rowsBean.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${rowsBean.remark}" + } + holder.entrustDateView.text = "委托时间:${rowsBean.orderTime}" + holder.entrustCodeView.text = "委托编号:${rowsBean.orderCode}" + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var evaluationView: TextView = view.findViewById(R.id.evaluationView) + var entrustStateView: QMUIRoundButton = view.findViewById(R.id.entrustStateView) + var delivererView: TextView = view.findViewById(R.id.delivererView) + var customerPhoneView: TextView = view.findViewById(R.id.customerPhoneView) + var sampleCountView: TextView = view.findViewById(R.id.sampleCountView) + var urgentView: TextView = view.findViewById(R.id.urgentView) + var remarkView: TextView = view.findViewById(R.id.remarkView) + var entrustDateView: TextView = view.findViewById(R.id.entrustDateView) + var entrustCodeView: TextView = view.findViewById(R.id.entrustCodeView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt new file mode 100644 index 0000000..37dbfeb --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/EquipmentAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.EquipmentListModel + +class EquipmentAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_equipment_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.equipmentNameView.text = rowsBean.equipmentName + holder.equipmentCodeView.text = rowsBean.equipmentNo + holder.equipmentDateView.text = rowsBean.enableDate + holder.equipmentLibView.text = rowsBean.useDeptName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var equipmentNameView: TextView = view.findViewById(R.id.equipmentNameView) + var equipmentCodeView: TextView = view.findViewById(R.id.equipmentCodeView) + var equipmentDateView: TextView = view.findViewById(R.id.equipmentDateView) + var equipmentLibView: TextView = view.findViewById(R.id.equipmentLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt new file mode 100644 index 0000000..81898ab --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/HomeGridAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant + +/** + * 主页功能,九宫格Adapter + * */ +class HomeGridAdapter(context: Context, private val dataRows: Array) : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_home_rv_g, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.functionImageView.setImageResource(LocaleConstant.HOME_FUNC_IMAGE[position]) + holder.homeFunctionView.text = dataRows[position] + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnGridItemClickListener? = null + + interface OnGridItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val functionImageView: ImageView = itemView.findViewById(R.id.functionImageView) + val homeFunctionView: TextView = itemView.findViewById(R.id.homeFunctionView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt new file mode 100644 index 0000000..f6d466f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/MeterageTrainAdapter.kt @@ -0,0 +1,89 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import cn.bertsir.zbar.utils.QRUtils +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater +import com.casic.xz.meterage.model.MeterageTrainListModel +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class MeterageTrainAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_meterage_train_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.trainTitleView.text = rowsBean.planName + //根据创建时间和计划培训时间判断培训状态 + when { + rowsBean.createTime.isEarlier(rowsBean.trainTime) -> { + holder.trainStateView.text = "未进行" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.BLUE) + } + rowsBean.trainTime.isLater() -> { + holder.trainStateView.text = "已结束" + holder.trainStateView.backgroundTintList = ColorStateList.valueOf(Color.GRAY) + } + else -> { + holder.trainStateView.text = "培训中" + holder.trainStateView.backgroundTintList = + ColorStateList.valueOf(R.color.green.convertColor(context)) + } + } + holder.trainDescView.text = rowsBean.trainContent + holder.trainHourView.text = "${rowsBean.trainHour}课时" + + val codeBitmap = QRUtils.getInstance().createQRCode( + rowsBean.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + holder.qrCodeView.setImageBitmap(codeBitmap) + holder.trainTimeView.text = rowsBean.trainTime + holder.speakerNameView.text = rowsBean.director + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var trainTitleView: TextView = view.findViewById(R.id.trainTitleView) + var trainStateView: QMUIRoundButton = view.findViewById(R.id.trainStateView) + var trainDescView: TextView = view.findViewById(R.id.trainDescView) + var trainHourView: QMUIRoundButton = view.findViewById(R.id.trainHourView) + var qrCodeView: ImageView = view.findViewById(R.id.qrCodeView) + var trainTimeView: TextView = view.findViewById(R.id.trainTimeView) + var speakerNameView: TextView = view.findViewById(R.id.speakerNameView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt new file mode 100644 index 0000000..8df69b2 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/NoticeAdapter.kt @@ -0,0 +1,62 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.NoticeListModel + +class NoticeAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_notice_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] +// holder.noticeTypeIconView.setImageResource() + holder.noticeTitleView.text = rowsBean.noticeTitle + holder.noticeDateView.text = rowsBean.noticeTime + holder.noticeContentView.text = rowsBean.noticeSketch + val state = if (rowsBean.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + holder.readStateView.visibility = state + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var noticeTypeIconView: ImageView = view.findViewById(R.id.noticeTypeIconView) + var readStateView: View = view.findViewById(R.id.readStateView) + var noticeTitleView: TextView = view.findViewById(R.id.noticeTitleView) + var noticeDateView: TextView = view.findViewById(R.id.noticeDateView) + var noticeContentView: TextView = view.findViewById(R.id.noticeContentView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt new file mode 100644 index 0000000..a4c0a43 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectCustomerAdapter.kt @@ -0,0 +1,70 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.model.CustomerListModel + +class SelectCustomerAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + + //选择的位置 + private var selectedPosition = 0 + + //临时记录上次选择的位置 + private var temp = -1 + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_customer_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.agreementLevelView.text = rowsBean.grade.toChineseGrade() + holder.customerNameView.text = rowsBean.customerName + holder.scaleView.text = rowsBean.companySizeName + holder.overallView.text = "公司规模:${rowsBean.evaluationName}" + holder.fullAddressView.text = "公司地址:${rowsBean.fullAddress}" + + holder.itemView.isSelected = holder.layoutPosition == selectedPosition + holder.itemView.setOnClickListener { + itemCheckedListener?.onItemChecked(rowsBean) + + holder.itemView.isSelected = true + temp = selectedPosition + //设置新的位置 + selectedPosition = holder.layoutPosition + //更新旧位置 + notifyItemChanged(temp) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var agreementLevelView: TextView = view.findViewById(R.id.agreementLevelView) + var customerNameView: TextView = view.findViewById(R.id.customerNameView) + var scaleView: TextView = view.findViewById(R.id.scaleView) + var overallView: TextView = view.findViewById(R.id.overallView) + var fullAddressView: TextView = view.findViewById(R.id.fullAddressView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt new file mode 100644 index 0000000..cbe8e8a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SelectSampleAdapter.kt @@ -0,0 +1,68 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SampleListModel + +class SelectSampleAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater = LayoutInflater.from(context) + private var multipleSelected = mutableSetOf() + private var sampleModes = ArrayList() + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_select_sample_lv, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.sampleNameView.text = "${rowsBean.sampleName}【${rowsBean.sampleModel}】" + holder.manufacturingCodeView.text = "出厂编号:${rowsBean.manufacturingNo}" + holder.sampleCodeView.text = "样品编号:${rowsBean.sampleNo}" + holder.validDateView.text = "有效期至:${rowsBean.validDeadline}" + + holder.checkImageView.isSelected = multipleSelected.contains(position) + holder.itemView.setOnClickListener { + if (multipleSelected.contains(position)) { + multipleSelected.remove(position) + sampleModes.remove(dataRows[position]) + holder.checkImageView.isSelected = false + } else { + multipleSelected.add(position) + sampleModes.add(dataRows[position]) + holder.checkImageView.isSelected = true + } + + itemCheckedListener?.onItemChecked(sampleModes) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var sampleNameView: TextView = view.findViewById(R.id.sampleNameView) + var manufacturingCodeView: TextView = view.findViewById(R.id.manufacturingCodeView) + var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView) + var validDateView: TextView = view.findViewById(R.id.validDateView) + var checkImageView: ImageView = view.findViewById(R.id.checkImageView) + } + + private var itemCheckedListener: OnItemCheckedListener? = null + + interface OnItemCheckedListener { + fun onItemChecked(items: ArrayList) + } + + fun setOnCheckedListener(listener: OnItemCheckedListener?) { + itemCheckedListener = listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt new file mode 100644 index 0000000..1d29b6e --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StaffAdapter.kt @@ -0,0 +1,40 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StaffListModel + +class StaffAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_staff_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.name.last().toString() + holder.userNameView.text = + rowsBean.name + "【${rowsBean.deptName}】" + rowsBean.staffNo + holder.certificateView.text = "证书编号:${rowsBean.verifierCertificateNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.certificateDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var userNameView: TextView = view.findViewById(R.id.userNameView) + var certificateView: TextView = view.findViewById(R.id.certificateView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt new file mode 100644 index 0000000..20f8754 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/StandardDeviceAdapter.kt @@ -0,0 +1,54 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.StandardDeviceListModel + +class StandardDeviceAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_standard_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.deviceNameView.text = rowsBean.standardName + holder.deviceCodeView.text = rowsBean.standardNo + holder.deviceDateView.text = rowsBean.preparationDate + holder.deviceLibView.text = rowsBean.standardLaboratoryName + + //绑定事件 + holder.itemView.setOnClickListener { + listener?.onItemClicked(position) + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var deviceDateView: TextView = view.findViewById(R.id.deviceDateView) + var deviceLibView: TextView = view.findViewById(R.id.deviceLibView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt new file mode 100644 index 0000000..d4aaffc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/adapter/unuse/SupportEquipmentAdapter.kt @@ -0,0 +1,41 @@ +package com.casic.xz.meterage.adapter.unuse + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.SupportEquipmentListModel + +class SupportEquipmentAdapter( + context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun getItemCount(): Int = dataRows.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_device_support_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = dataRows[position] + holder.nameTagView.text = rowsBean.equipmentName.last().toString() + holder.deviceNameView.text = + rowsBean.equipmentName + "【${rowsBean.useDeptName}】" + rowsBean.modelNo + holder.deviceCodeView.text = "设备编号:${rowsBean.equipmentNo}" + holder.expirationDateView.text = "有效期至:${rowsBean.validDate}" + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var nameTagView: TextView = view.findViewById(R.id.nameTagView) + var deviceNameView: TextView = view.findViewById(R.id.deviceNameView) + var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) + var expirationDateView: TextView = view.findViewById(R.id.expirationDateView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index 92e50a2..c05ab95 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -4,11 +4,12 @@ import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.view.home.* import com.casic.xz.meterage.view.notice.NoticeListActivity import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.qmuiteam.qmui.util.QMUIDisplayHelper @@ -35,11 +36,20 @@ } } - val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) + val homeAdapter = object : NormalRecyclerAdapter( + R.layout.item_home_rv_g, LocaleConstant.HOME_FUNC_OPERATE.toList() + ) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource( + R.id.functionImageView, LocaleConstant.HOME_FUNC_IMAGE[position] + ).setText(R.id.homeFunctionView, item) + } + } homeFuncRecyclerView.adapter = homeAdapter - homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { - override fun onItemClick(position: Int) { - when (LocaleConstant.HOME_FUNC_OPERATE[position]) { + homeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: String) { + when (t) { "仪器设备" -> requireContext().navigatePageTo() "标准装置" -> requireContext().navigatePageTo() // "证书报告" -> requireContext().navigatePageTo() diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index e6f654d..7bc05c5 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -3,22 +3,39 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StaffAdapter +import com.casic.xz.meterage.model.StaffListModel import com.casic.xz.meterage.vm.MeterageStaffViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: StaffAdapter + private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = StaffAdapter(requireContext(), it.data.rows) + staffAdapter = object : NormalRecyclerAdapter( + R.layout.item_staff_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StaffListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.nameTagView, item.name.last().toString()) + .setText( + R.id.userNameView, item.name + "【${item.deptName}】" + item.staffNo + ) + .setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}") + .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}") + } + } staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index d16888c..fb5f36c 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -3,26 +3,45 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SupportEquipmentAdapter +import com.casic.xz.meterage.model.SupportEquipmentListModel import com.casic.xz.meterage.vm.EquipmentViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_device_support_equipment.* +import kotlinx.android.synthetic.main.fragment_device_measurement_staff.* class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportEquipmentAdapter: SupportEquipmentAdapter + private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportEquipmentAdapter = SupportEquipmentAdapter(requireContext(), it.data.rows) - supportRecyclerView.addItemDecoration( + supportAdapter = + object : NormalRecyclerAdapter( + R.layout.item_device_support_rv_l, it.data.rows + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SupportEquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.nameTagView, item.equipmentName.last().toString() + ).setText( + R.id.deviceNameView, + item.equipmentName + "【${item.useDeptName}】" + item.modelNo + ).setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}") + .setText(R.id.expirationDateView, "有效期至:${item.validDate}") + } + } + staffRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - supportRecyclerView.adapter = supportEquipmentAdapter + staffRecyclerView.adapter = supportAdapter } } } diff --git a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java index 63bb058..f5a7a9f 100644 --- a/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java +++ b/app/src/main/java/com/casic/xz/meterage/model/StaffListModel.java @@ -57,6 +57,7 @@ private String createTime; private String createUser; private String deptId; + private String deptName; private String id; private String isDel; private String major; @@ -100,6 +101,14 @@ this.deptId = deptId; } + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index e084ac9..aca77b4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchCapabilityActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -122,16 +123,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 04c3a46..924a1b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchCustomerActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +28,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -128,16 +130,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index e06cec4..9bbbc6d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -21,9 +24,10 @@ class EntrustActivity : KotlinBaseActivity() { + private val context: Context = this@EntrustActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -134,13 +138,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 1e573be..bbb8b4e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchEquipmentActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -138,16 +139,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index f42fc1e..711c3a3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.home +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.search.SearchMeterageTrainActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -22,9 +30,10 @@ class MeterageTrainActivity : KotlinBaseActivity() { + private var context: Context = this@MeterageTrainActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -125,13 +134,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index 9bf6a1a..14581b6 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -1,19 +1,23 @@ package com.casic.xz.meterage.view.home +import android.content.Context import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectCustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.SingleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -23,9 +27,10 @@ class SelectCustomerActivity : KotlinBaseActivity() { + private val context: Context = this@SelectCustomerActivity private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var selectCustomerAdapter: SelectCustomerAdapter + private lateinit var selectCustomerAdapter: SingleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -136,17 +141,43 @@ } } else { emptyView!!.hide() - selectCustomerAdapter = SelectCustomerAdapter(this, dataBeans) + selectCustomerAdapter = object : + SingleChoiceAdapter( + R.layout.item_select_customer_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + val color = when (item.grade) { + "0" -> R.color.green.convertColor(context) + "1" -> R.color.blue.convertColor(context) + "2" -> R.color.gray.convertColor(context) + else -> R.color.red.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.agreementLevelView, color) + + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (customerRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false customerRecyclerView.adapter = selectCustomerAdapter - selectCustomerAdapter.setOnCheckedListener(object : - SelectCustomerAdapter.OnItemCheckedListener { - override fun onItemChecked(item: CustomerListModel.DataModel.RowsModel) { - customerModel = item + selectCustomerAdapter.setOnItemCheckedListener(object : + SingleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + customerModel = t } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index f85cb44..7067f00 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -6,12 +6,13 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.SelectSampleAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.SampleListModel import com.casic.xz.meterage.vm.SampleViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -24,7 +25,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var sampleViewModel: SampleViewModel - private lateinit var selectSampleAdapter: SelectSampleAdapter + private lateinit var selectSampleAdapter: MultipleChoiceAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -130,16 +131,34 @@ } } else { emptyView!!.hide() - selectSampleAdapter = SelectSampleAdapter(this, dataBeans) + selectSampleAdapter = object : + MultipleChoiceAdapter( + R.layout.item_select_sample_lv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: SampleListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.sampleNameView, "${item.sampleName}【${item.sampleModel}】" + ).setText( + R.id.manufacturingCodeView, "出厂编号:${item.manufacturingNo}" + ).setText(R.id.sampleCodeView, "样品编号:${item.sampleNo}") + .setText(R.id.validDateView, "有效期至:${item.validDeadline}") + } + } sampleRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) (sampleRecyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false sampleRecyclerView.adapter = selectSampleAdapter - selectSampleAdapter.setOnCheckedListener(object : - SelectSampleAdapter.OnItemCheckedListener { - override fun onItemChecked(items: ArrayList) { + selectSampleAdapter.setOnItemCheckedListener(object : + MultipleChoiceAdapter.OnItemCheckedListener { + override fun onItemChecked( + position: Int, items: ArrayList + ) { sampleModels = items } }) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index b22304f..0be3a76 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.search.SearchStandardDeviceActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -25,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 4c67d7a..68222e5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.NoticeAdapter import com.casic.xz.meterage.extensions.addAll import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initLayoutImmersionBar @@ -14,6 +13,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.vm.NoticeViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +27,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var noticeViewModel: NoticeViewModel - private lateinit var noticeAdapter: NoticeAdapter + private lateinit var noticeAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -135,25 +136,42 @@ } } else { emptyView!!.hide() - noticeAdapter = NoticeAdapter(this, dataBeans) + noticeAdapter = + object : NormalRecyclerAdapter( + R.layout.item_notice_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: NoticeListModel.DataModel.RowsModel + ) { + // holder.noticeTypeIconView.setImageResource() + val state = if (item.isDel == 0) { + View.VISIBLE + } else { + View.INVISIBLE + } + viewHolder.setVisibility(R.id.readStateView, state) + viewHolder.setText(R.id.noticeTitleView, item.noticeTitle) + .setText(R.id.noticeDateView, item.noticeTime) + .setText(R.id.noticeContentView, item.noticeSketch) + } + } noticeRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) noticeRecyclerView.adapter = noticeAdapter - noticeAdapter.setOnItemClickListener(object : - NoticeAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] + noticeAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: NoticeListModel.DataModel.RowsModel + ) { val allArgs = addAll( - rowsModel.noticeNo, - rowsModel.noticeTitle, - rowsModel.noticePublisher, - "", - "" + t.noticeNo, t.noticeTitle, t.noticePublisher, "", "" ) Log.d( "Casic", - "NoticeListActivity => onItemClicked: ${rowsModel.minioFileName.combineFilePath()}" + "NoticeListActivity => onItemClicked: ${t.minioFileName.combineFilePath()}" ) navigatePageTo(allArgs) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index 8961e4a..ac1caa8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CapabilityAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.CapabilityListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.CapabilityDetailActivity import com.casic.xz.meterage.vm.CapabilityViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -28,7 +29,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var capabilityViewModel: CapabilityViewModel - private lateinit var capabilityAdapter: CapabilityAdapter + private lateinit var capabilityAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -124,16 +125,31 @@ } } else { emptyView!!.hide() - capabilityAdapter = CapabilityAdapter(this, dataBeans) + capabilityAdapter = object : + NormalRecyclerAdapter( + R.layout.item_capability_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CapabilityListModel.DataModel.RecordsModel + ) { + viewHolder.setText(R.id.capabilityNameView, item.priceName) + .setText(R.id.categoryView, item.categoryName) + .setText(R.id.projectView, item.priceItem) + .setText(R.id.priceView, item.price.toString()) + } + } capabilityRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) capabilityRecyclerView.adapter = capabilityAdapter - capabilityAdapter.setOnItemClickListener(object : - CapabilityAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + capabilityAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CapabilityListModel.DataModel.RecordsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index a314da9..10cc69e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -4,14 +4,16 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.CustomerAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.extensions.toChineseGrade import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.CustomerDetailActivity import com.casic.xz.meterage.vm.CustomerViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +29,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var customerViewModel: CustomerViewModel - private lateinit var customerAdapter: CustomerAdapter + private lateinit var customerAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -129,16 +131,33 @@ } } else { emptyView!!.hide() - customerAdapter = CustomerAdapter(this, dataBeans) + customerAdapter = object : + NormalRecyclerAdapter( + R.layout.item_customer_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: CustomerListModel.DataModel.RowsModel + ) { + viewHolder.setText( + R.id.agreementLevelView, item.grade.toChineseGrade() + ).setText(R.id.customerNameView, item.customerName) + .setText(R.id.scaleView, item.companySizeName) + .setText(R.id.overallView, "公司规模:${item.evaluationName}") + .setText(R.id.fullAddressView, "公司地址:${item.fullAddress}") + } + } customerRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) customerRecyclerView.adapter = customerAdapter - customerAdapter.setOnItemClickListener(object : - CustomerAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + customerAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: CustomerListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index cf8e0c3..d2ca6f8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -1,9 +1,9 @@ package com.casic.xz.meterage.view.search +import android.content.Context import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EntrustAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel @@ -11,7 +11,10 @@ import com.casic.xz.meterage.view.home.EntrustDetailActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +26,11 @@ class SearchEntrustResultActivity : KotlinBaseActivity() { + private val context: Context = this@SearchEntrustResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var entrustViewModel: EntrustViewModel - private lateinit var entrustAdapter: EntrustAdapter + private lateinit var entrustAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -132,13 +136,59 @@ } } else { emptyView!!.hide() - entrustAdapter = EntrustAdapter(this, dataBeans) + entrustAdapter = object : + NormalRecyclerAdapter( + R.layout.item_entrust_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EntrustListModel.DataModel.RowsModel + ) { + //未接收:1;已接收:2;已取消:3;检测完成:4 + val color = when (item.status) { + "1" -> R.color.red.convertColor(context) + "2" -> R.color.blue.convertColor(context) + "3" -> R.color.gray.convertColor(context) + else -> R.color.green.convertColor(context) + } + viewHolder.setBackgroundColor(R.id.entrustStateView, color) + + val remark = if (item.remark.isNullOrBlank()) { + "客户没添加任何备注信息" + } else { + "【备注】${item.remark}" + } + + viewHolder.setText(R.id.customerNameView, item.customerName) + .setText(R.id.entrustStateView, item.statusName) + .setText(R.id.delivererView, item.deliverer) + .setText(R.id.customerPhoneView, item.customerPhone) + .setText(R.id.sampleCountView, item.sampleCount) + .setText(R.id.remarkView, remark) + .setText(R.id.entrustDateView, "委托时间:${item.orderTime}") + .setText(R.id.entrustCodeView, "委托编号:${item.orderCode}") + + if (item.isUrgent == "0") { + viewHolder.setText(R.id.urgentView, "否") + .setTextColor( + R.id.urgentView, R.color.gray.convertColor(context) + ) + } else { + viewHolder.setText(R.id.urgentView, "是") + .setTextColor( + R.id.urgentView, R.color.red.convertColor(context) + ) + } + } + } entrustRecyclerView.adapter = entrustAdapter - entrustAdapter.setOnItemClickListener(object : - EntrustAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + entrustAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EntrustListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 0f9f0b9..6e93861 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.EquipmentAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EquipmentListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.EquipmentDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var equipmentAdapter: EquipmentAdapter + private lateinit var equipmentAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -140,16 +141,31 @@ } } else { emptyView!!.hide() - equipmentAdapter = EquipmentAdapter(this, dataBeans) + equipmentAdapter = object : + NormalRecyclerAdapter( + R.layout.item_equipment_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: EquipmentListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.equipmentNameView, item.equipmentName) + .setText(R.id.equipmentCodeView, item.equipmentNo) + .setText(R.id.equipmentDateView, item.enableDate) + .setText(R.id.equipmentLibView, item.useDeptName) + } + } equipmentRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) equipmentRecyclerView.adapter = equipmentAdapter - equipmentAdapter.setOnItemClickListener(object : - EquipmentAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + equipmentAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: EquipmentListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index a87498f..88e9ce7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -1,17 +1,25 @@ package com.casic.xz.meterage.view.search +import android.content.Context +import android.graphics.Color import android.os.Handler import androidx.lifecycle.ViewModelProvider +import cn.bertsir.zbar.utils.QRUtils import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.MeterageTrainAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.isEarlier +import com.casic.xz.meterage.extensions.isLater import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.MeterageTrainListModel import com.casic.xz.meterage.utils.LoadingDialogHub import com.casic.xz.meterage.view.home.MeterageTrainDetailActivity import com.casic.xz.meterage.vm.MeterageTrainViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -23,10 +31,11 @@ class SearchMeterageTrainResultActivity : KotlinBaseActivity() { + private var context: Context = this@SearchMeterageTrainResultActivity private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var meterageTrainViewModel: MeterageTrainViewModel - private lateinit var meterageTrainAdapter: MeterageTrainAdapter + private lateinit var meterageTrainAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -133,13 +142,55 @@ } } else { emptyView!!.hide() - meterageTrainAdapter = MeterageTrainAdapter(this, dataBeans) + meterageTrainAdapter = object : + NormalRecyclerAdapter( + R.layout.item_meterage_train_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: MeterageTrainListModel.DataModel.RowsModel + ) { + //根据创建时间和计划培训时间判断培训状态 + when { + item.createTime.isEarlier(item.trainTime) -> { + viewHolder.setText(R.id.trainStateView, "未进行") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.BLUE + ) + } + item.trainTime.isLater() -> { + viewHolder.setText(R.id.trainStateView, "已结束") + viewHolder.setBackgroundColor( + R.id.trainStateView, Color.GRAY + ) + } + else -> { + viewHolder.setText(R.id.trainStateView, "培训中") + viewHolder.setBackgroundColor( + R.id.trainStateView, R.color.green.convertColor(context) + ) + } + } + viewHolder.setText(R.id.trainTitleView, item.planName) + .setText(R.id.trainDescView, item.trainContent) + .setText(R.id.trainHourView, "${item.trainHour}课时") + .setText(R.id.trainTimeView, item.trainTime) + .setText(R.id.speakerNameView, item.director) + + val codeBitmap = QRUtils.getInstance().createQRCode( + item.planNo, 100f.dp2px(context), 100f.dp2px(context) + ) + viewHolder.setImageResource(R.id.qrCodeView, codeBitmap) + } + } trainRecyclerView.adapter = meterageTrainAdapter - meterageTrainAdapter.setOnItemClickListener(object : - MeterageTrainAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + meterageTrainAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: MeterageTrainListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index fcda071..c59a147 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R -import com.casic.xz.meterage.adapter.StandardDeviceAdapter import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.StandardDeviceListModel @@ -12,6 +11,8 @@ import com.casic.xz.meterage.view.home.StandardDeviceDetailActivity import com.casic.xz.meterage.vm.EquipmentViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -27,7 +28,7 @@ private lateinit var param: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var deviceAdapter: StandardDeviceAdapter + private lateinit var deviceAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -131,16 +132,31 @@ } } else { emptyView!!.hide() - deviceAdapter = StandardDeviceAdapter(this, dataBeans) + deviceAdapter = object : + NormalRecyclerAdapter( + R.layout.item_standard_device_rv_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: StandardDeviceListModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.deviceNameView, item.standardName) + .setText(R.id.deviceCodeView, item.standardNo) + .setText(R.id.deviceDateView, item.preparationDate) + .setText(R.id.deviceLibView, item.standardLaboratoryName) + } + } standardDeviceRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) ) standardDeviceRecyclerView.adapter = deviceAdapter - deviceAdapter.setOnItemClickListener(object : - StandardDeviceAdapter.OnItemClickListener { - override fun onItemClicked(position: Int) { - val rowsModel = dataBeans[position] - navigatePageTo(rowsModel.id) + deviceAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: StandardDeviceListModel.DataModel.RowsModel + ) { + navigatePageTo(t.id) } }) } diff --git a/app/src/main/res/drawable/bg_customer_selector.xml b/app/src/main/res/drawable/bg_customer_selector.xml deleted file mode 100644 index e7292d5..0000000 --- a/app/src/main/res/drawable/bg_customer_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_sample_selector.xml b/app/src/main/res/drawable/bg_sample_selector.xml deleted file mode 100644 index 6b5d5e7..0000000 --- a/app/src/main/res/drawable/bg_sample_selector.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_select_customer_lv.xml b/app/src/main/res/layout/item_select_customer_lv.xml index 4da19fe..e552239 100644 --- a/app/src/main/res/layout/item_select_customer_lv.xml +++ b/app/src/main/res/layout/item_select_customer_lv.xml @@ -3,30 +3,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/bg_customer_selector" android:orientation="horizontal" android:padding="@dimen/dp_15"> - - - - - @@ -49,7 +31,7 @@ android:id="@+id/scaleView" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:layout_marginStart="@dimen/dp_5" + android:layout_marginHorizontal="@dimen/dp_5" android:paddingHorizontal="@dimen/dp_5" android:text="小微企业" android:textColor="@color/white" @@ -57,16 +39,40 @@ app:qmui_backgroundColor="@color/themeColor" app:qmui_borderWidth="0dp" app:qmui_radius="@dimen/dp_3" /> + + - + + + + + + + android:src="@drawable/tag_iv_selector" /> \ No newline at end of file