diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_customer_detail.xml b/app/src/main/res/layout/activity_customer_detail.xml index 77d9ef6..bb65bcd 100644 --- a/app/src/main/res/layout/activity_customer_detail.xml +++ b/app/src/main/res/layout/activity_customer_detail.xml @@ -1,6 +1,32 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_customer_detail.xml b/app/src/main/res/layout/activity_customer_detail.xml index 77d9ef6..bb65bcd 100644 --- a/app/src/main/res/layout/activity_customer_detail.xml +++ b/app/src/main/res/layout/activity_customer_detail.xml @@ -1,6 +1,32 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_basic_information.xml b/app/src/main/res/layout/fragment_customer_basic_information.xml new file mode 100644 index 0000000..a4cf952 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_basic_information.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_customer_detail.xml b/app/src/main/res/layout/activity_customer_detail.xml index 77d9ef6..bb65bcd 100644 --- a/app/src/main/res/layout/activity_customer_detail.xml +++ b/app/src/main/res/layout/activity_customer_detail.xml @@ -1,6 +1,32 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_basic_information.xml b/app/src/main/res/layout/fragment_customer_basic_information.xml new file mode 100644 index 0000000..a4cf952 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_basic_information.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_certificate.xml b/app/src/main/res/layout/fragment_customer_certificate.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_certificate.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_customer_detail.xml b/app/src/main/res/layout/activity_customer_detail.xml index 77d9ef6..bb65bcd 100644 --- a/app/src/main/res/layout/activity_customer_detail.xml +++ b/app/src/main/res/layout/activity_customer_detail.xml @@ -1,6 +1,32 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_basic_information.xml b/app/src/main/res/layout/fragment_customer_basic_information.xml new file mode 100644 index 0000000..a4cf952 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_basic_information.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_certificate.xml b/app/src/main/res/layout/fragment_customer_certificate.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_certificate.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_contract_record.xml b/app/src/main/res/layout/fragment_customer_contract_record.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_contract_record.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_customer_detail.xml b/app/src/main/res/layout/activity_customer_detail.xml index 77d9ef6..bb65bcd 100644 --- a/app/src/main/res/layout/activity_customer_detail.xml +++ b/app/src/main/res/layout/activity_customer_detail.xml @@ -1,6 +1,32 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_basic_information.xml b/app/src/main/res/layout/fragment_customer_basic_information.xml new file mode 100644 index 0000000..a4cf952 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_basic_information.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_certificate.xml b/app/src/main/res/layout/fragment_customer_certificate.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_certificate.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_contract_record.xml b/app/src/main/res/layout/fragment_customer_contract_record.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_contract_record.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_personnel.xml b/app/src/main/res/layout/fragment_customer_personnel.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_personnel.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt new file mode 100644 index 0000000..7079414 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/BasicInformationFragment.kt @@ -0,0 +1,112 @@ +package com.casic.xz.meterage.fragment.customer + +import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineImagePath +import com.casic.xz.meterage.extensions.toChineseGrade +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.BigImageActivity +import com.casic.xz.meterage.view.notice.PreviewDocumentActivity +import com.casic.xz.meterage.view.notice.PreviewPdfActivity +import com.casic.xz.meterage.view.notice.PreviewTextActivity +import com.casic.xz.meterage.vm.CustomerViewModel +import com.pengxh.kt.lite.base.KotlinBaseFragment +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.vm.LoadState +import kotlinx.android.synthetic.main.fragment_customer_basic_information.* + +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var customerViewModel: CustomerViewModel + + override fun initData() { + customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] + customerViewModel.getCustomerDetail(id) + customerViewModel.customerDetailResult.observe(this) { + if (it.code == 200) { + val data = it.data!! + + customerCodeView.text = data.customerNo + customerNameView.text = data.customerName + briefNameView.text = data.briefName + businessContentView.text = data.businessContent + companySizeView.text = data.companySize + gradeView.text = data.grade.toChineseGrade() + evaluationView.text = data.evaluation + taxNumberView.text = data.taxNumber + bankAccountView.text = data.bankAccount + bankNameView.text = data.bankName + bankAccountNumberView.text = data.bankAccountNumber + postalCodeView.text = data.postalCode + directorView.text = data.director + phoneView.text = data.phone + faxView.text = data.fax + mobileView.text = data.mobile + emailView.text = data.email + websiteView.text = data.website + addressAreaView.text = data.addressArea + invoiceAreaView.text = data.invoiceArea + businessScopeView.text = data.businessScope + remarkView.text = data.remark + + if (data.minioFileName.isNullOrBlank()) { + minioFileView.text = "暂无附件" + } else { + val minioFileName = data.minioFileName + + minioFileView.text = minioFileName + val textPaint = minioFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + minioFileView.setTextColor(R.color.themeColor.convertColor(requireContext())) + + minioFileView.setOnClickListener { + //查看附件 + if (minioFileName.endsWith("pdf")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("doc") || + minioFileName.endsWith("docx") + ) { + requireContext().navigatePageTo(minioFileName) + } else if (minioFileName.endsWith("txt")) { + requireContext().navigatePageTo(minioFileName) + } else if ( + minioFileName.endsWith("png") || + minioFileName.endsWith("jpeg") || + minioFileName.endsWith("jpg") + ) { + val urls = ArrayList() + urls.add(minioFileName.combineImagePath()) + requireContext().navigatePageTo(0, urls) + } else { + "文件类型未知,无法打开附件".show(requireContext()) + } + } + } + } + } + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_basic_information + + override fun observeRequestState() { + customerViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt new file mode 100644 index 0000000..5b7d635 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class CertificateFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_certificate + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt new file mode 100644 index 0000000..8df0f70 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class ContractRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_contract_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt new file mode 100644 index 0000000..a9e9f86 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/PersonnelFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class PersonnelFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_personnel + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt new file mode 100644 index 0000000..69caae0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.fragment.customer + +import com.casic.xz.meterage.R +import com.pengxh.kt.lite.base.KotlinBaseFragment + +class SampleRecordFragment : KotlinBaseFragment() { + + override fun initData() { + + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.fragment_customer_sample_record + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt index 94d57c6..0650a70 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt @@ -72,12 +72,12 @@ override fun initLayoutView(): Int = R.layout.fragment_device_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt index f7f845f..c4f82a7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt @@ -89,12 +89,12 @@ override fun initLayoutView(): Int = R.layout.fragment_equipment_basic_information override fun observeRequestState() { - equipmentViewModel.loadState.observe(this, { + equipmentViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt index b8776f1..b0f5ff1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/train/BasicInformationFragment.kt @@ -42,12 +42,12 @@ override fun initLayoutView(): Int = R.layout.fragment_train_basic_information override fun observeRequestState() { - meterageTrainViewModel.loadState.observe(this, { + meterageTrainViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java new file mode 100644 index 0000000..c687582 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CustomerDetailModel.java @@ -0,0 +1,580 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class CustomerDetailModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String addressArea; + private String addressAreaName; + private String addressCity; + private String addressCityName; + private String addressCountry; + private String addressCountryName; + private String addressProvince; + private String addressProvinceName; + private String bankAccount; + private String bankAccountNumber; + private String bankName; + private String briefName; + private String businessContent; + private String businessScope; + private String businessSize; + private String businessSizeName; + private String companySize; + private String companySizeName; + private String createTime; + private String createUser; + private String customerName; + private String customerNo; + private List customerUserList; + private String director; + private String email; + private String evaluation; + private String evaluationName; + private String fax; + private String fullAddress; + private String grade; + private String id; + private String invoiceArea; + private String invoiceAreaName; + private String invoiceCity; + private String invoiceCityName; + private String invoiceCountry; + private String invoiceCountryName; + private String invoiceFullAddress; + private String invoiceProvince; + private String invoiceProvinceName; + private int isDel; + private String minioFileName; + private String mobile; + private String phone; + private String postalCode; + private String remark; + private String taxNumber; + private String updateTime; + private String updateUser; + private String website; + + public String getAddressArea() { + return addressArea; + } + + public void setAddressArea(String addressArea) { + this.addressArea = addressArea; + } + + public String getAddressAreaName() { + return addressAreaName; + } + + public void setAddressAreaName(String addressAreaName) { + this.addressAreaName = addressAreaName; + } + + public String getAddressCity() { + return addressCity; + } + + public void setAddressCity(String addressCity) { + this.addressCity = addressCity; + } + + public String getAddressCityName() { + return addressCityName; + } + + public void setAddressCityName(String addressCityName) { + this.addressCityName = addressCityName; + } + + public String getAddressCountry() { + return addressCountry; + } + + public void setAddressCountry(String addressCountry) { + this.addressCountry = addressCountry; + } + + public String getAddressCountryName() { + return addressCountryName; + } + + public void setAddressCountryName(String addressCountryName) { + this.addressCountryName = addressCountryName; + } + + public String getAddressProvince() { + return addressProvince; + } + + public void setAddressProvince(String addressProvince) { + this.addressProvince = addressProvince; + } + + public String getAddressProvinceName() { + return addressProvinceName; + } + + public void setAddressProvinceName(String addressProvinceName) { + this.addressProvinceName = addressProvinceName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankAccountNumber() { + return bankAccountNumber; + } + + public void setBankAccountNumber(String bankAccountNumber) { + this.bankAccountNumber = bankAccountNumber; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBriefName() { + return briefName; + } + + public void setBriefName(String briefName) { + this.briefName = briefName; + } + + public String getBusinessContent() { + return businessContent; + } + + public void setBusinessContent(String businessContent) { + this.businessContent = businessContent; + } + + public String getBusinessScope() { + return businessScope; + } + + public void setBusinessScope(String businessScope) { + this.businessScope = businessScope; + } + + public String getBusinessSize() { + return businessSize; + } + + public void setBusinessSize(String businessSize) { + this.businessSize = businessSize; + } + + public String getBusinessSizeName() { + return businessSizeName; + } + + public void setBusinessSizeName(String businessSizeName) { + this.businessSizeName = businessSizeName; + } + + public String getCompanySize() { + return companySize; + } + + public void setCompanySize(String companySize) { + this.companySize = companySize; + } + + public String getCompanySizeName() { + return companySizeName; + } + + public void setCompanySizeName(String companySizeName) { + this.companySizeName = companySizeName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCustomerNo() { + return customerNo; + } + + public void setCustomerNo(String customerNo) { + this.customerNo = customerNo; + } + + public List getCustomerUserList() { + return customerUserList; + } + + public void setCustomerUserList(List customerUserList) { + this.customerUserList = customerUserList; + } + + public String getDirector() { + return director; + } + + public void setDirector(String director) { + this.director = director; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEvaluation() { + return evaluation; + } + + public void setEvaluation(String evaluation) { + this.evaluation = evaluation; + } + + public String getEvaluationName() { + return evaluationName; + } + + public void setEvaluationName(String evaluationName) { + this.evaluationName = evaluationName; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getFullAddress() { + return fullAddress; + } + + public void setFullAddress(String fullAddress) { + this.fullAddress = fullAddress; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInvoiceArea() { + return invoiceArea; + } + + public void setInvoiceArea(String invoiceArea) { + this.invoiceArea = invoiceArea; + } + + public String getInvoiceAreaName() { + return invoiceAreaName; + } + + public void setInvoiceAreaName(String invoiceAreaName) { + this.invoiceAreaName = invoiceAreaName; + } + + public String getInvoiceCity() { + return invoiceCity; + } + + public void setInvoiceCity(String invoiceCity) { + this.invoiceCity = invoiceCity; + } + + public String getInvoiceCityName() { + return invoiceCityName; + } + + public void setInvoiceCityName(String invoiceCityName) { + this.invoiceCityName = invoiceCityName; + } + + public String getInvoiceCountry() { + return invoiceCountry; + } + + public void setInvoiceCountry(String invoiceCountry) { + this.invoiceCountry = invoiceCountry; + } + + public String getInvoiceCountryName() { + return invoiceCountryName; + } + + public void setInvoiceCountryName(String invoiceCountryName) { + this.invoiceCountryName = invoiceCountryName; + } + + public String getInvoiceFullAddress() { + return invoiceFullAddress; + } + + public void setInvoiceFullAddress(String invoiceFullAddress) { + this.invoiceFullAddress = invoiceFullAddress; + } + + public String getInvoiceProvince() { + return invoiceProvince; + } + + public void setInvoiceProvince(String invoiceProvince) { + this.invoiceProvince = invoiceProvince; + } + + public String getInvoiceProvinceName() { + return invoiceProvinceName; + } + + public void setInvoiceProvinceName(String invoiceProvinceName) { + this.invoiceProvinceName = invoiceProvinceName; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public static class CustomerUserListModel { + private String createTime; + private String customerId; + private String department; + private String id; + private String isDel; + private String job; + private String name; + private String phone; + private String updateTime; + private String userNo; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsDel() { + return isDel; + } + + public void setIsDel(String isDel) { + this.isDel = isDel; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUserNo() { + return userNo; + } + + public void setUserNo(String userNo) { + this.userNo = userNo; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 4451020..cfe4255 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -126,4 +126,13 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取客户详情 + */ + @POST("/customer/detail") + suspend fun getCustomerDetail( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 9cb70be..6031e19 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -317,4 +317,16 @@ offsetMap["offset"] = offset return api.getCustomerList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) } + + /** + * 获取客户详情 + */ + suspend fun getCustomerDetail(id: String): String { + val paramObject = JSONObject() + paramObject.put("id", id) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getCustomerDetail(AuthenticationHelper.token!!, requestBody) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5f2cefe..0dbca83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -1,16 +1,41 @@ package com.casic.xz.meterage.view.home +import androidx.fragment.app.Fragment import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.SubViewPagerAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.fragment.customer.* +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_customer_detail.* +import kotlinx.android.synthetic.main.include_base_title.* class CustomerDetailActivity : KotlinBaseActivity() { - override fun initData() { + private var fragmentPages: ArrayList = ArrayList() + override fun initData() { + val customerId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + fragmentPages.add(BasicInformationFragment(customerId)) + fragmentPages.add(PersonnelFragment()) + fragmentPages.add(SampleRecordFragment()) + fragmentPages.add(ContractRecordFragment()) + fragmentPages.add(CertificateFragment()) + + val equipmentPageTitles = arrayOf("基础信息", "客户人员", "样品记录", "合同记录", "证书记录") + + customerViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, equipmentPageTitles + ) + customerViewPager.offscreenPageLimit = fragmentPages.size + //绑定 + topTabLayout.setupWithViewPager(customerViewPager) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_customer_detail @@ -20,6 +45,8 @@ } override fun setupTopBarLayout() { - + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "客户列表" } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt index 3c6cbed..c043328 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CustomerViewModel.kt @@ -4,6 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage +import com.casic.xz.meterage.model.CustomerDetailModel import com.casic.xz.meterage.model.CustomerListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,6 +18,7 @@ private val gson by lazy { Gson() } val customerResult = MutableLiveData() + val customerDetailResult = MutableLiveData() fun getCustomerList( bussinessSize: String, customerName: String, customerNo: String, grade: String, offset: Int @@ -39,4 +41,22 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getCustomerDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCustomerDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + customerDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_customer_detail.xml b/app/src/main/res/layout/activity_customer_detail.xml index 77d9ef6..bb65bcd 100644 --- a/app/src/main/res/layout/activity_customer_detail.xml +++ b/app/src/main/res/layout/activity_customer_detail.xml @@ -1,6 +1,32 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_basic_information.xml b/app/src/main/res/layout/fragment_customer_basic_information.xml new file mode 100644 index 0000000..a4cf952 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_basic_information.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_certificate.xml b/app/src/main/res/layout/fragment_customer_certificate.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_certificate.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_contract_record.xml b/app/src/main/res/layout/fragment_customer_contract_record.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_contract_record.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_personnel.xml b/app/src/main/res/layout/fragment_customer_personnel.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_personnel.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_sample_record.xml b/app/src/main/res/layout/fragment_customer_sample_record.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_customer_sample_record.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file