Browse Source

2024-11-11 修改

修改:
1. 部分UI逻辑修改

2. 签证费用录入 新增字段 修改 添加 / 查询 / 修改 方法
zhaiy 5 months ago
parent
commit
03ceb507bf
33 changed files with 573 additions and 145 deletions
  1. 1 1
      app/src/main/java/com/pan_american/android/base/BaseActivity.kt
  2. 1 1
      app/src/main/java/com/pan_american/android/base/BaseFragment.kt
  3. 2 0
      app/src/main/java/com/pan_american/android/data/model/common/entity/Selector.kt
  4. 1 3
      app/src/main/java/com/pan_american/android/data/model/financial_module/payment_refund/entity/PaymentRefundDetail.kt
  5. 3 0
      app/src/main/java/com/pan_american/android/data/model/group_visa/visa_payment_insert/network/UpdateVisaPaymentRequest.kt
  6. 17 3
      app/src/main/java/com/pan_american/android/data/model/group_visa/visa_payment_insert/network/VisaPaymentDetailResponse.kt
  7. 3 1
      app/src/main/java/com/pan_american/android/data/model/group_visa/visa_payment_insert/network/VisaPaymentSelectorResourceResponse.kt
  8. 1 1
      app/src/main/java/com/pan_american/android/ui/customer_resource/company_customer/AddNewCustomerActivity.kt
  9. 1 1
      app/src/main/java/com/pan_american/android/ui/customer_resource/company_customer/MarketCustomerActivity.kt
  10. 4 4
      app/src/main/java/com/pan_american/android/ui/customer_resource/related_invitee/RelatedInviteeSearchFragment.kt
  11. 1 1
      app/src/main/java/com/pan_american/android/ui/efficiency_tools/exchange_tool/ExchangeToolActivity.kt
  12. 5 4
      app/src/main/java/com/pan_american/android/ui/financial_module/payment_refund/AddPaymentRefundActivity.kt
  13. 1 1
      app/src/main/java/com/pan_american/android/ui/group_common/bill_management/BillManagementActivity.kt
  14. 1 1
      app/src/main/java/com/pan_american/android/ui/group_common/commission_confirm/CommissionConfirmActivity.kt
  15. 1 1
      app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_data/AddInviteDataActivity.kt
  16. 5 5
      app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_data/InviteDataSearchFragment.kt
  17. 2 2
      app/src/main/java/com/pan_american/android/ui/group_invite_official/official_visits/AddOfficialVisitsActivity.kt
  18. 1 1
      app/src/main/java/com/pan_american/android/ui/group_invite_official/official_visits/InviteVisitsActivity.kt
  19. 1 1
      app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/AddGroundConveyInfoActivity.kt
  20. 1 1
      app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/GroundConveyPaymentDetailActivity.kt
  21. 375 106
      app/src/main/java/com/pan_american/android/ui/group_visa/visa_payment_insert/AddVisaPaymentActivity.kt
  22. 1 1
      app/src/main/java/com/pan_american/android/ui/personnel_module/materials_operate/MaterialApplicationActivity.kt
  23. 1 1
      app/src/main/java/com/pan_american/android/ui/personnel_module/materials_operate/MaterialHistorySearchFragment.kt
  24. 1 1
      app/src/main/java/com/pan_american/android/ui/resource_management/airplane_three_code/AirplaneThreeCodeSearchFragment.kt
  25. 1 1
      app/src/main/java/com/pan_american/android/ui/resource_management/car_resource/CarResourceSearchFragment.kt
  26. 1 1
      app/src/main/java/com/pan_american/android/ui/resource_management/guide_resource/GuideResourceSearchFragment.kt
  27. 1 1
      app/src/main/java/com/pan_american/android/ui/resource_management/hotel_resource/HotelResourceSearchFragment.kt
  28. 72 0
      app/src/main/res/layout/activity_add_visa_payment.xml
  29. 0 0
      app/src/main/res/layout/popup_list_selector.xml
  30. 65 0
      app/src/main/res/layout/popup_list_selector_with_search.xml
  31. 0 0
      app/src/main/res/layout/popup_multi_item_selector.xml
  32. 0 0
      app/src/main/res/layout/popup_smart_refresh_selector.xml
  33. 2 0
      app/src/main/res/values/strings.xml

+ 1 - 1
app/src/main/java/com/pan_american/android/base/BaseActivity.kt

@@ -163,7 +163,7 @@ abstract class BaseActivity<T: ViewBinding>: AppCompatActivity() {
      * 弹出底部selector
      */
     fun showSelector(block: () -> Unit) {
-        selectorPopView = View.inflate(this, R.layout.popup_selector, null)
+        selectorPopView = View.inflate(this, R.layout.popup_smart_refresh_selector, null)
         popupWindow = PopupWindow(selectorPopView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 
         showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/base/BaseFragment.kt

@@ -132,7 +132,7 @@ abstract class BaseFragment<T: ViewBinding>: Fragment() {
      * 弹出底部selector
      */
     fun showSelector(block: () -> Unit) {
-        selectorPopView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+        selectorPopView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
         popupWindow = PopupWindow(selectorPopView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 
         showPopupWindow {

+ 2 - 0
app/src/main/java/com/pan_american/android/data/model/common/entity/Selector.kt

@@ -35,4 +35,6 @@ class Selector {
     var groupName = ""
 
     var companyId = 0
+
+    var text = ""
 }

+ 1 - 3
app/src/main/java/com/pan_american/android/data/model/financial_module/payment_refund/entity/PaymentRefundDetail.kt

@@ -1,10 +1,8 @@
 package com.pan_american.android.data.model.financial_module.payment_refund.entity
 
-import com.pan_american.android.OASystem
-
 open class PaymentRefundDetail(
     var id: Int = 0,
-    val ccpId: Int = OASystem.C_TABLE_PAYMENT_REFUND,
+    var ccpId: Int = 0,
     var diId: Int = 0,
     var priceName: String = "",
     var price: Double = 0.0,

+ 3 - 0
app/src/main/java/com/pan_american/android/data/model/group_visa/visa_payment_insert/network/UpdateVisaPaymentRequest.kt

@@ -30,4 +30,7 @@ class UpdateVisaPaymentRequest {
     var payee = ""
     var orbitalPrivateTransfer = 0
     var cRemark = ""
+
+    var agencyFeeType = 0
+    var area = ""
 }

+ 17 - 3
app/src/main/java/com/pan_american/android/data/model/group_visa/visa_payment_insert/network/VisaPaymentDetailResponse.kt

@@ -3,10 +3,24 @@ package com.pan_american.android.data.model.group_visa.visa_payment_insert.netwo
 import com.pan_american.android.base.BaseResponse
 import com.pan_american.android.data.model.common.entity.CardPaymentResource
 
-class VisaPaymentDetailResponse(val data: Data): BaseResponse() {
+class VisaPaymentDetailResponse(val data: Data) : BaseResponse() {
 
     inner class Data(val visaInfo: VisaInfo, val creditCardPayment: CardPaymentResource)
 
-    inner class VisaInfo(val diId: Int, val visaDescription: String, val visaClient: String, val visaPrice: Double, val visaCurrency: Int, val isThird: Int,
-                         val passengerType: Int, val visaNumber: Int, val visaFreeNumber: Int, val id: Int, val createUserId: Int, val remark: String)
+    inner class VisaInfo(
+        val diId: Int,
+        val visaDescription: String,
+        val visaClient: String,
+        val visaPrice: Double,
+        val visaCurrency: Int,
+        val isThird: Int,
+        val passengerType: Int,
+        val visaNumber: Int,
+        val visaFreeNumber: Int,
+        val id: Int,
+        val createUserId: Int,
+        val remark: String,
+        val area: String,
+        val agencyFeeType: Int
+    )
 }

+ 3 - 1
app/src/main/java/com/pan_american/android/data/model/group_visa/visa_payment_insert/network/VisaPaymentSelectorResourceResponse.kt

@@ -8,7 +8,9 @@ class VisaPaymentSelectorResourceResponse(val data: Data): BaseResponse() {
     inner class Data(
         val payment: ArrayList<Selector>,
         val passengerType: ArrayList<Selector>,
-        val bankCard: ArrayList<Selector>
+        val bankCard: ArrayList<Selector>,
+        val agencyFeeType: ArrayList<Selector>,
+        val countryFeeData: ArrayList<Selector>
     )
 
 }

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/customer_resource/company_customer/AddNewCustomerActivity.kt

@@ -514,7 +514,7 @@ class AddNewCustomerActivity : BaseActivity<ActivityAddNewCustomerBinding>() {
     }
 
     private fun initSiftListPopupWindow(block: () -> Unit) {
-        popView = View.inflate(this, R.layout.popup_sift_list, null)
+        popView = View.inflate(this, R.layout.popup_multi_item_selector, null)
         popupWindow = PopupWindow(
             popView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
         )

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/customer_resource/company_customer/MarketCustomerActivity.kt

@@ -435,7 +435,7 @@ class MarketCustomerActivity : BaseActivity<ActivityMarketCustomerBinding>() {
             customerManager.add(item)
         }
 
-        popView = View.inflate(this, R.layout.popup_sift_list, null)
+        popView = View.inflate(this, R.layout.popup_multi_item_selector, null)
         popupWindow = PopupWindow(
             popView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
         )

+ 4 - 4
app/src/main/java/com/pan_american/android/ui/customer_resource/related_invitee/RelatedInviteeSearchFragment.kt

@@ -173,7 +173,7 @@ class RelatedInviteeSearchFragment : BaseFragment<FragmentRelatedInviteeSearchBi
                         when(type) {
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {
@@ -314,7 +314,7 @@ class RelatedInviteeSearchFragment : BaseFragment<FragmentRelatedInviteeSearchBi
                         when(type) {
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {
@@ -451,7 +451,7 @@ class RelatedInviteeSearchFragment : BaseFragment<FragmentRelatedInviteeSearchBi
                         when(type) {
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {
@@ -588,7 +588,7 @@ class RelatedInviteeSearchFragment : BaseFragment<FragmentRelatedInviteeSearchBi
                         when(type) {
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/efficiency_tools/exchange_tool/ExchangeToolActivity.kt

@@ -153,7 +153,7 @@ class ExchangeToolActivity : BaseActivity<ActivityExchangeToolBinding>() {
 
     private fun initPopupWindow(type: Int) {
 
-        val popView = View.inflate(this, R.layout.popup_selector, null)
+        val popView = View.inflate(this, R.layout.popup_smart_refresh_selector, null)
         popupWindow = PopupWindow(
             popView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
         )

+ 5 - 4
app/src/main/java/com/pan_american/android/ui/financial_module/payment_refund/AddPaymentRefundActivity.kt

@@ -338,9 +338,10 @@ class AddPaymentRefundActivity : BaseActivity<ActivityAddPaymentRefundBinding>()
                         detailResponse.data.apply {
                             updatePaymentRefundRequest.id = id
                             updatePaymentRefundRequest.diId = diId
+                            updatePaymentRefundRequest.ccpId = ccpId
                             paymentWayId = payDId
                             paymentMarkId = orbitalPrivateTransfer
-                            paymentTypeId = ccpId
+                            paymentTypeId = payType
 
                             binding.paymentName.setText(priceName)
                             binding.price.setText(price.toString())
@@ -349,13 +350,13 @@ class AddPaymentRefundActivity : BaseActivity<ActivityAddPaymentRefundBinding>()
                             binding.otherSideNo.setText(otherSideNo)
 
                             for (item in paymentWayList) {
-                                if (item.id == payDId) {
+                                if (item.id == paymentWayId) {
                                     binding.paymentWay.text = item.name
                                 }
                             }
 
                             for (item in paymentMarkList) {
-                                if (item.id == orbitalPrivateTransfer) {
+                                if (item.id == paymentMarkId) {
                                     binding.paymentMark.text = item.name
                                 }
                             }
@@ -363,7 +364,7 @@ class AddPaymentRefundActivity : BaseActivity<ActivityAddPaymentRefundBinding>()
                             binding.consumeWay.setText(consumptionPatterns)
 
                             for (item in paymentTypeList) {
-                                if (item.id == payType) {
+                                if (item.id == paymentTypeId) {
                                     binding.paymentType.text = item.name
                                 }
                             }

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/group_common/bill_management/BillManagementActivity.kt

@@ -216,7 +216,7 @@ class BillManagementActivity : BaseActivity<ActivityBillManagementBinding>() {
 
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/group_common/commission_confirm/CommissionConfirmActivity.kt

@@ -203,7 +203,7 @@ class CommissionConfirmActivity : BaseActivity<ActivityCommissionConfirmBinding>
         adapter.onItemClick = object : CommissionConfirmListAdapter.OnItemClick {
             override fun itemDetailClick(position: Int) {
 
-                val picturePreViewPopView = View.inflate(OASystem.context, R.layout.popup_recycler_view, null)
+                val picturePreViewPopView = View.inflate(OASystem.context, R.layout.popup_list_selector, null)
                 popupWindow = PopupWindow(picturePreViewPopView, ViewGroup.LayoutParams.MATCH_PARENT, binding.root.height * 3 / 4)
 
                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_data/AddInviteDataActivity.kt

@@ -231,7 +231,7 @@ class AddInviteDataActivity : BaseActivity<ActivityAddInviteDataBinding>() {
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {

+ 5 - 5
app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_data/InviteDataSearchFragment.kt

@@ -71,7 +71,7 @@ class InviteDataSearchFragment : BaseFragment<FragmentInviteDataSearchBinding>()
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {
@@ -171,7 +171,7 @@ class InviteDataSearchFragment : BaseFragment<FragmentInviteDataSearchBinding>()
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {
@@ -271,7 +271,7 @@ class InviteDataSearchFragment : BaseFragment<FragmentInviteDataSearchBinding>()
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {
@@ -371,7 +371,7 @@ class InviteDataSearchFragment : BaseFragment<FragmentInviteDataSearchBinding>()
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {
@@ -506,7 +506,7 @@ class InviteDataSearchFragment : BaseFragment<FragmentInviteDataSearchBinding>()
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {

+ 2 - 2
app/src/main/java/com/pan_american/android/ui/group_invite_official/official_visits/AddOfficialVisitsActivity.kt

@@ -749,7 +749,7 @@ class AddOfficialVisitsActivity : BaseActivity<ActivityAddOfficialVisitsBinding>
 
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {
@@ -920,7 +920,7 @@ class AddOfficialVisitsActivity : BaseActivity<ActivityAddOfficialVisitsBinding>
 //
 //                startActivity(intent)
 
-                val picturePreViewPopView = View.inflate(OASystem.context, R.layout.popup_recycler_view, null)
+                val picturePreViewPopView = View.inflate(OASystem.context, R.layout.popup_list_selector, null)
                 popupWindow = PopupWindow(picturePreViewPopView, ViewGroup.LayoutParams.MATCH_PARENT, binding.root.height * 3 / 4)
 
                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/group_invite_official/official_visits/InviteVisitsActivity.kt

@@ -200,7 +200,7 @@ class InviteVisitsActivity : BaseActivity<ActivityInviteVisitsBinding>() {
 
                             1 -> {
 
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/AddGroundConveyInfoActivity.kt

@@ -161,7 +161,7 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/GroundConveyPaymentDetailActivity.kt

@@ -547,7 +547,7 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
             }
 
             override fun onPaymentTypeClick() {
-                val popView = View.inflate(OASystem.context, R.layout.popup_sift_list, null)
+                val popView = View.inflate(OASystem.context, R.layout.popup_multi_item_selector, null)
                 popupWindow = PopupWindow(
                     popView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
                 )

+ 375 - 106
app/src/main/java/com/pan_american/android/ui/group_visa/visa_payment_insert/AddVisaPaymentActivity.kt

@@ -3,10 +3,15 @@ package com.pan_american.android.ui.group_visa.visa_payment_insert
 import android.os.Bundle
 import android.text.Editable
 import android.text.TextWatcher
+import android.view.Gravity
 import android.view.View
+import android.view.ViewGroup
+import android.widget.EditText
+import android.widget.PopupWindow
 import android.widget.TextView
 import androidx.core.content.res.ResourcesCompat
 import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
 import com.pan_american.android.OASystem
 import com.pan_american.android.R
 import com.pan_american.android.base.BaseActivity
@@ -80,6 +85,12 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
 
     private var isAuditGM = -1
 
+    private var agencyFeeTypeId = -1
+
+    private val agencyFeeTypeList = ArrayList<Selector>()
+
+    private val countryFeeList = ArrayList<Selector>()
+
     override fun getViewBinding() = ActivityAddVisaPaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -138,6 +149,9 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
             if (!canBeEdit()) {
                 binding.apply {
 
+                    visaDescription.isEnabled(false)
+                    area.isEnabled = false
+                    agencyFeeType.isEnabled = false
                     addCustomer.visibility = View.GONE
                     visaPrice.isEnabled = false
                     priceUnit.isEnabled = false
@@ -179,6 +193,7 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
             for (item in priceUnitList) {
                 if (item.currencyCode == "CNY") {
                     binding.priceUnit.text = item.currencyCode
+                    binding.sumUnit.text = item.currencyCode
                     priceUnit = item.currencyId
                 }
             }
@@ -187,6 +202,155 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
 
     override fun initEvents() {
 
+        binding.area.setOnClickListener {
+
+            val selectDataSource = ArrayList<Selector>()
+
+            for (item in countryFeeList) {
+                selectDataSource.add(item)
+            }
+
+            val searchSelectorView =
+                View.inflate(OASystem.context, R.layout.popup_list_selector_with_search, null)
+            popupWindow = PopupWindow(
+                searchSelectorView,
+                ViewGroup.LayoutParams.MATCH_PARENT,
+                binding.root.height * 3 / 4
+            )
+
+            showPopupWindow {
+
+                val searchTextView = searchSelectorView.findViewById<EditText>(R.id.search_text)
+                val selectorView = searchSelectorView.findViewById<RecyclerView>(R.id.recycler_view)
+
+                val layoutManager = LinearLayoutManager(OASystem.context)
+                selectorView.layoutManager = layoutManager
+
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setData(selectDataSource)
+                    setLayoutId(R.layout.item_selector)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            if (binding.area.text == data.country) {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
+                            } else {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
+                            }
+
+                            text = data.country
+                        }
+                    }
+                }.create()
+
+                selectorView.adapter = adapter
+
+                adapter.onRecyclerViewItemClick =
+                    object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                        override fun onItemClick(position: Int) {
+
+                            binding.area.text = selectDataSource[position].country
+
+                            popupWindow.dismiss()
+                        }
+                    }
+
+                searchTextView.addTextChangedListener(object : TextWatcher {
+                    override fun beforeTextChanged(
+                        s: CharSequence?,
+                        start: Int,
+                        count: Int,
+                        after: Int
+                    ) {
+
+                    }
+
+                    override fun onTextChanged(
+                        s: CharSequence?,
+                        start: Int,
+                        before: Int,
+                        count: Int
+                    ) {
+
+                    }
+
+                    override fun afterTextChanged(s: Editable?) {
+                        adapter.notifyItemRangeRemoved(0, selectDataSource.size)
+
+                        selectDataSource.clear()
+
+                        for (item in countryFeeList) {
+                            if (item.country.contains(s.toString())) {
+                                selectDataSource.add(item)
+                            }
+                        }
+
+                        adapter.notifyItemRangeInserted(0, selectDataSource.size)
+                    }
+                })
+
+                popupWindow.showAtLocation(binding.root, Gravity.BOTTOM, 0, 0)
+            }
+        }
+
+        binding.agencyFeeType.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setData(agencyFeeTypeList)
+                    setLayoutId(R.layout.item_selector)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            if (data.id == agencyFeeTypeId) {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
+                            } else {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
+                            }
+
+                            text = data.text
+                        }
+                    }
+                }.create()
+
+                selector.adapter = adapter
+
+                adapter.onRecyclerViewItemClick =
+                    object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                        override fun onItemClick(position: Int) {
+                            agencyFeeTypeList[position].apply {
+                                agencyFeeTypeId = id
+
+                                binding.agencyFeeType.text = text
+
+                                popupWindow.dismiss()
+                            }
+                        }
+                    }
+            }
+        }
+
         binding.addCustomer.setOnClickListener {
             showSelector {
                 val adapter = ListAdapter.Builder<Selector>().apply {
@@ -270,9 +434,21 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                                 )
 
                             if (priceUnit == data.id) {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
                             } else {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
                             }
                         }
                     }
@@ -303,9 +479,21 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                             text = data.name
 
                             if (updateVisaPaymentRequest.passengerType == data.id) {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
                             } else {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
                             }
                         }
                     }
@@ -336,9 +524,21 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                             text = data.name
 
                             if (paymentWayId == data.id) {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
                             } else {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
                             }
                         }
                     }
@@ -388,7 +588,10 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
         }
 
         binding.consumeDate.setOnClickListener {
-            showDatePicker(resources.getString(R.string.consume_date_select_hint), binding.consumeDate)
+            showDatePicker(
+                resources.getString(R.string.consume_date_select_hint),
+                binding.consumeDate
+            )
         }
 
         binding.cardType.setOnClickListener {
@@ -401,9 +604,21 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                             text = data.name
 
                             if (cardTypeId == data.id) {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
                             } else {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
                             }
                         }
                     }
@@ -436,9 +651,21 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                             text = data.name
 
                             if (paymentMarkId == data.id) {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color_blue,
+                                        null
+                                    )
+                                )
                             } else {
-                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color, null))
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.text_color,
+                                        null
+                                    )
+                                )
                             }
                         }
                     }
@@ -471,6 +698,20 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                 updateVisaPaymentRequest.visaDescription = binding.visaDescription.getText()
             }
 
+            if (agencyFeeTypeId == -1) {
+                showMessage(resources.getString(R.string.agency_fee_type_select_hint))
+                return@setOnClickListener
+            } else {
+                updateVisaPaymentRequest.agencyFeeType = agencyFeeTypeId
+            }
+
+            if (binding.area.text.isNullOrBlank()) {
+                showMessage(resources.getString(R.string.area_select_hint))
+                return@setOnClickListener
+            } else {
+                updateVisaPaymentRequest.area = binding.area.text.toString()
+            }
+
             if (customerSelectList.size == 0) {
                 showMessage(resources.getString(R.string.customer_select_hint))
                 return@setOnClickListener
@@ -542,7 +783,10 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                     binding.visaExemptionNumber.text.toString().toInt()
             }
 
-            if (binding.visaHandleNumber.text.toString().toInt() + binding.visaExemptionNumber.text.toString().toInt() != customerSelectList.size) {
+            if (binding.visaHandleNumber.text.toString()
+                    .toInt() + binding.visaExemptionNumber.text.toString()
+                    .toInt() != customerSelectList.size
+            ) {
                 showMessage(resources.getString(R.string.customer_number_input_hint))
                 return@setOnClickListener
             }
@@ -695,6 +939,14 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                                 cardTypeList.add(item)
                             }
 
+                            for (item in selectorResponse.data.agencyFeeType) {
+                                agencyFeeTypeList.add(item)
+                            }
+
+                            for (item in selectorResponse.data.countryFeeData) {
+                                countryFeeList.add(item)
+                            }
+
                             getCustomerList()
 
                         } else {
@@ -801,7 +1053,10 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
 
                 customerSelectList.removeAt(position)
                 binding.customerList.adapter!!.notifyItemRemoved(position)
-                binding.customerList.adapter!!.notifyItemRangeChanged(position, customerSelectList.size - position)
+                binding.customerList.adapter!!.notifyItemRangeChanged(
+                    position,
+                    customerSelectList.size - position
+                )
 
             }
         }
@@ -819,136 +1074,147 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                     if (visaPaymentDetailResponse != null) {
                         if (visaPaymentDetailResponse.code == 200) {
 
-                            binding.visaDescription.setText(visaPaymentDetailResponse.data.visaInfo.visaDescription)
+                            visaPaymentDetailResponse.data.visaInfo.apply {
+                                binding.visaDescription.setText(visaDescription)
+
+                                binding.area.text = area
+
+                                for (item in agencyFeeTypeList) {
+                                    if (item.id == agencyFeeType) {
+                                        binding.agencyFeeType.text = item.text
+
+                                        agencyFeeTypeId = item.id
+                                    }
+                                }
 
-                            val customer =
-                                visaPaymentDetailResponse.data.visaInfo.visaClient.split(",")
+                                val customer = visaClient.split(",")
 
-                            for (selectedItem in customer) {
-                                for (item in customerList) {
-                                    if (selectedItem.matches(Regex("[0-9]*\$"))) {
-                                        if (selectedItem.toInt() == item.id) {
-                                            customerSelectList.add(item)
+                                for (selectedItem in customer) {
+                                    for (item in customerList) {
+                                        if (selectedItem.matches(Regex("[0-9]*\$"))) {
+                                            if (selectedItem.toInt() == item.id) {
+                                                customerSelectList.add(item)
+                                            }
                                         }
                                     }
                                 }
-                            }
 
-                            initCustomerList()
+                                initCustomerList()
 
-                            binding.visaPrice.setText(visaPaymentDetailResponse.data.visaInfo.visaPrice.toString())
+                                binding.visaPrice.setText(visaPrice.toString())
 
-                            priceUnit = visaPaymentDetailResponse.data.visaInfo.visaCurrency
+                                priceUnit = visaCurrency
 
-                            when (visaPaymentDetailResponse.data.visaInfo.isThird) {
-                                0 -> {
-                                    binding.isAgentNo.isChecked = true
-                                }
+                                when (isThird) {
+                                    0 -> {
+                                        binding.isAgentNo.isChecked = true
+                                    }
 
-                                1 -> {
-                                    binding.isAgentYes.isChecked = true
+                                    1 -> {
+                                        binding.isAgentYes.isChecked = true
+                                    }
                                 }
-                            }
 
-                            run {
-                                for (item in customerTypeList) {
-                                    if (item.id == visaPaymentDetailResponse.data.visaInfo.passengerType) {
-                                        binding.customerType.text = item.name
-                                        updateVisaPaymentRequest.passengerType = item.id
-                                        customerTypeSelect = true
-                                        return@run
+                                run {
+                                    for (item in customerTypeList) {
+                                        if (item.id == passengerType) {
+                                            binding.customerType.text = item.name
+                                            updateVisaPaymentRequest.passengerType = item.id
+                                            customerTypeSelect = true
+                                            return@run
+                                        }
                                     }
                                 }
-                            }
 
-                            binding.visaHandleNumber.setText(visaPaymentDetailResponse.data.visaInfo.visaNumber.toString())
-                            binding.visaExemptionNumber.setText(visaPaymentDetailResponse.data.visaInfo.visaFreeNumber.toString())
+                                binding.visaHandleNumber.setText(visaNumber.toString())
+                                binding.visaExemptionNumber.setText(visaFreeNumber.toString())
 
-                            binding.notes.setText(visaPaymentDetailResponse.data.visaInfo.remark)
+                                binding.notes.setText(remark)
+                            }
 
-                            run {
-                                for (item in paymentWayList) {
-                                    if (item.id == visaPaymentDetailResponse.data.creditCardPayment.payDId) {
-                                        binding.paymentWay.text = item.name
-                                        paymentWayId = item.id
-                                        paymentWaySelect = true
+                            visaPaymentDetailResponse.data.creditCardPayment.apply {
+                                run {
+                                    for (item in paymentWayList) {
+                                        if (item.id == payDId) {
+                                            binding.paymentWay.text = item.name
+                                            paymentWayId = item.id
+                                            paymentWaySelect = true
 
-                                        return@run
+                                            return@run
+                                        }
                                     }
                                 }
-                            }
-
-                            binding.consumeWay.setText(visaPaymentDetailResponse.data.creditCardPayment.consumptionPatterns)
-                            binding.consumeDate.text =
-                                visaPaymentDetailResponse.data.creditCardPayment.consumptionDate
-
-                            when (paymentWayId) {
-                                //刷卡
-                                72 -> {
-                                    binding.swipe.visibility = View.VISIBLE
-                                    binding.transfer.visibility = View.GONE
-                                    binding.remit.visibility = View.GONE
-
-                                    run {
-                                        for (item in cardTypeList) {
-                                            if (item.id == visaPaymentDetailResponse.data.creditCardPayment.ctdId) {
-                                                binding.cardType.text = item.name
-                                                binding.bankCardNumber.text = item.remark
-                                                cardTypeId = item.id
-                                                bankNo = item.remark
-                                                cardTypeSelect = true
 
-                                                return@run
+                                binding.consumeWay.setText(consumptionPatterns)
+                                binding.consumeDate.text = consumptionDate
+
+                                when (paymentWayId) {
+                                    //刷卡
+                                    72 -> {
+                                        binding.swipe.visibility = View.VISIBLE
+                                        binding.transfer.visibility = View.GONE
+                                        binding.remit.visibility = View.GONE
+
+                                        run {
+                                            for (item in cardTypeList) {
+                                                if (item.id == ctdId) {
+                                                    binding.cardType.text = item.name
+                                                    binding.bankCardNumber.text = item.remark
+                                                    cardTypeId = item.id
+                                                    bankNo = item.remark
+                                                    cardTypeSelect = true
+
+                                                    return@run
+                                                }
                                             }
                                         }
                                     }
-                                }
 
-                                //转账
-                                73 -> {
-                                    binding.swipe.visibility = View.GONE
-                                    binding.transfer.visibility = View.VISIBLE
-                                    binding.remit.visibility = View.GONE
+                                    //转账
+                                    73 -> {
+                                        binding.swipe.visibility = View.GONE
+                                        binding.transfer.visibility = View.VISIBLE
+                                        binding.remit.visibility = View.GONE
 
-                                    binding.companyBankNo.setText(visaPaymentDetailResponse.data.creditCardPayment.companyBankNo)
+                                        binding.companyBankNo.setText(companyBankNo)
 
-                                    binding.transferOtherBankName.setText(visaPaymentDetailResponse.data.creditCardPayment.otherBankName)
+                                        binding.transferOtherBankName.setText(otherBankName)
 
-                                    binding.transferOtherSideNo.setText(visaPaymentDetailResponse.data.creditCardPayment.otherSideNo)
+                                        binding.transferOtherSideNo.setText(otherSideNo)
 
-                                    binding.transferOtherSideName.setText(visaPaymentDetailResponse.data.creditCardPayment.otherSideName)
-                                }
+                                        binding.transferOtherSideName.setText(otherSideName)
+                                    }
 
-                                //汇款
-                                83 -> {
-                                    binding.swipe.visibility = View.GONE
-                                    binding.transfer.visibility = View.GONE
-                                    binding.remit.visibility = View.VISIBLE
+                                    //汇款
+                                    83 -> {
+                                        binding.swipe.visibility = View.GONE
+                                        binding.transfer.visibility = View.GONE
+                                        binding.remit.visibility = View.VISIBLE
 
-                                    binding.otherBankName.setText(visaPaymentDetailResponse.data.creditCardPayment.otherBankName)
+                                        binding.otherBankName.setText(otherBankName)
 
-                                    binding.otherSideNo.setText(visaPaymentDetailResponse.data.creditCardPayment.otherSideNo)
+                                        binding.otherSideNo.setText(otherSideNo)
 
-                                    binding.otherSideName.setText(visaPaymentDetailResponse.data.creditCardPayment.otherSideName)
-                                }
+                                        binding.otherSideName.setText(otherSideName)
+                                    }
 
-                                else -> {
-                                    binding.swipe.visibility = View.GONE
-                                    binding.transfer.visibility = View.GONE
-                                    binding.remit.visibility = View.GONE
+                                    else -> {
+                                        binding.swipe.visibility = View.GONE
+                                        binding.transfer.visibility = View.GONE
+                                        binding.remit.visibility = View.GONE
+                                    }
                                 }
-                            }
 
-                            binding.payee.setText(visaPaymentDetailResponse.data.creditCardPayment.payee)
+                                binding.payee.setText(payee)
 
-                            binding.paymentMark.text =
-                                OASystem.paymentMark[visaPaymentDetailResponse.data.creditCardPayment.orbitalPrivateTransfer].name
-                            paymentMarkId =
-                                visaPaymentDetailResponse.data.creditCardPayment.orbitalPrivateTransfer
-                            paymentMarkSelect = true
+                                binding.paymentMark.text =
+                                    OASystem.paymentMark[orbitalPrivateTransfer].name
+                                paymentMarkId = orbitalPrivateTransfer
+                                paymentMarkSelect = true
 
-                            if (visaPaymentDetailResponse.data.creditCardPayment.remark.isNotBlank()) {
-                                binding.paymentApplyNotes.setText(visaPaymentDetailResponse.data.creditCardPayment.remark)
+                                if (visaPaymentDetailResponse.data.creditCardPayment.remark.isNotBlank()) {
+                                    binding.paymentApplyNotes.setText(remark)
+                                }
                             }
 
                         } else {
@@ -1006,6 +1272,9 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
     }
 
     private fun canBeEdit(): Boolean {
-        return OASystem.authorization(OASystem.VISA_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
+        return OASystem.authorization(
+            OASystem.VISA_PAYMENT_INSERT,
+            OASystem.EDIT
+        ) and (isAuditGM == 0)
     }
 }

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/personnel_module/materials_operate/MaterialApplicationActivity.kt

@@ -151,7 +151,7 @@ class MaterialApplicationActivity : BaseActivity<ActivityMaterialApplicationBind
 
                         when(type) {
                             1 -> {
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/personnel_module/materials_operate/MaterialHistorySearchFragment.kt

@@ -430,7 +430,7 @@ class MaterialHistorySearchFragment : BaseFragment<FragmentMaterialHistorySearch
 
                         when(type) {
                             1 -> {
-                                val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+                                val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
                                 popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
                                 showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/resource_management/airplane_three_code/AirplaneThreeCodeSearchFragment.kt

@@ -85,7 +85,7 @@ class AirplaneThreeCodeSearchFragment : BaseFragment<FragmentAirplaneThreeCodeSe
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/resource_management/car_resource/CarResourceSearchFragment.kt

@@ -62,7 +62,7 @@ class CarResourceSearchFragment : BaseFragment<FragmentCarResourceSearchBinding>
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/resource_management/guide_resource/GuideResourceSearchFragment.kt

@@ -62,7 +62,7 @@ class GuideResourceSearchFragment : BaseFragment<FragmentGuideResourceSearchBind
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(popView, RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)
 
             showPopupWindow {

+ 1 - 1
app/src/main/java/com/pan_american/android/ui/resource_management/hotel_resource/HotelResourceSearchFragment.kt

@@ -62,7 +62,7 @@ class HotelResourceSearchFragment : BaseFragment<FragmentHotelResourceSearchBind
                 selectorList.add(item)
             }
 
-            val popView = View.inflate(OASystem.context, R.layout.popup_selector, null)
+            val popView = View.inflate(OASystem.context, R.layout.popup_smart_refresh_selector, null)
             popupWindow = PopupWindow(
                 popView,
                 RecyclerView.LayoutParams.MATCH_PARENT,

+ 72 - 0
app/src/main/res/layout/activity_add_visa_payment.xml

@@ -184,6 +184,78 @@
 
             </LinearLayout>
 
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/area"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/area"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:hint="@string/please_select"
+                    android:singleLine="true"
+                    android:textColor="@color/text_color"
+                    android:textColorHint="@color/hint_text_color"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/agency_fee_type"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/agency_fee_type"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:hint="@string/please_select"
+                    android:singleLine="true"
+                    android:textColor="@color/text_color"
+                    android:textColorHint="@color/hint_text_color"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
             <View
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/line"

app/src/main/res/layout/popup_recycler_view.xml → app/src/main/res/layout/popup_list_selector.xml


+ 65 - 0
app/src/main/res/layout/popup_list_selector_with_search.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/shape_corner_white"
+    android:orientation="vertical"
+    tools:viewBindingIgnore="true">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/recycler_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/please_select"
+            android:textColor="@color/text_color"
+            android:textSize="@dimen/text_size_large" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_margin="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:id="@+id/search_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/common_padding"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginEnd="@dimen/common_padding"
+        android:background="@drawable/shape_large_edit_text_background"
+        android:orientation="horizontal"
+        android:visibility="visible">
+
+        <EditText
+            android:id="@+id/search_text"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/common_padding"
+            android:layout_weight="4"
+            android:background="@color/white"
+            android:hint="@string/please_input"
+            android:importantForAutofill="no"
+            android:inputType="text"
+            android:textColorHint="@color/hint_text_color"
+            android:textSize="@dimen/text_size_medium" />
+
+    </LinearLayout>
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="@dimen/common_padding"/>
+
+</LinearLayout>

app/src/main/res/layout/popup_sift_list.xml → app/src/main/res/layout/popup_multi_item_selector.xml


app/src/main/res/layout/popup_selector.xml → app/src/main/res/layout/popup_smart_refresh_selector.xml


+ 2 - 0
app/src/main/res/values/strings.xml

@@ -776,6 +776,7 @@
     <string name="add_new_visa_payment">新增签证费用</string>
     <string name="update_visa_payment">签证费用修改</string>
     <string name="visa_description">签证描述</string>
+    <string name="agency_fee_type">代办费类型</string>
     <string name="visa_customer">签证客户</string>
     <string name="visa_price">签证总费用</string>
     <string name="is_agent">是否第三方代办</string>
@@ -784,6 +785,7 @@
     <string name="visa_exemption_number">签证免签人数</string>
 
     <string name="visa_description_hint">请输入签证描述</string>
+    <string name="agency_fee_type_select_hint">请选择代办费类型</string>
     <string name="is_agent_select_hint">请选择是否第三方代办</string>
     <string name="customer_type_select_hint">请选择客户类型</string>
     <string name="visa_handle_number_input_hint">请输入正确的签证办理人数</string>