Sfoglia il codice sorgente

2024-04-29 修改

修改

1. 地接费用录入详情界面逻辑和适配器修改,减少界面卡顿

新增

1. 新增OP费用录入 款项类型(预付款 / 尾款)
zhaiy 11 mesi fa
parent
commit
704d780a8b

+ 14 - 1
.idea/deploymentTargetDropDown.xml

@@ -3,7 +3,20 @@
   <component name="deploymentTargetDropDown">
     <value>
       <entry key="app">
-        <State />
+        <State>
+          <runningDeviceTargetSelectedWithDropDown>
+            <Target>
+              <type value="RUNNING_DEVICE_TARGET" />
+              <deviceKey>
+                <Key>
+                  <type value="SERIAL_NUMBER" />
+                  <value value="3bb3c424" />
+                </Key>
+              </deviceKey>
+            </Target>
+          </runningDeviceTargetSelectedWithDropDown>
+          <timeTargetWasSelectedWithDropDown value="2024-04-29T02:58:46.043974100Z" />
+        </State>
       </entry>
     </value>
   </component>

+ 6 - 0
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyListAdapter.kt

@@ -28,6 +28,9 @@ class GroundConveyListAdapter(private val groundConveyList: ArrayList<GroundConv
 
         val deleteButton : ImageView = view.findViewById(R.id.delete)
         val viewPaymentDetail: TextView = view.findViewById(R.id.payment_detail)
+
+        //2024-04-29 新增OP费用录入款项类型
+        val priceType: TextView = view.findViewById(R.id.price_type)
     }
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
@@ -61,6 +64,9 @@ class GroundConveyListAdapter(private val groundConveyList: ArrayList<GroundConv
             holder.balancePayment.text = String.format("%.2f (%s)", remainingBalance, currencyStr)
             holder.serviceDuringTime.text = String.format("%s - %s", serviceStartTime, serviceEndTime)
 
+            //2024-04-29 新增OP费用录入款项类型
+            holder.priceType.text = priceTypeStr
+
             when(isAuditGM) {
                 0 -> {
                     holder.isVerify.apply {

+ 23 - 27
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyTableAdapter.kt

@@ -146,41 +146,37 @@ class GroundConveyTableAdapter(private val itemList: ArrayList<GroundConveyTable
 
         val item = itemList[holder.bindingAdapterPosition]
 
-        if (!item.isVisible) {
-            return
-        } else {
-            holder.listItem.visibility = View.VISIBLE
-            holder.paymentItemName.text = item.sidName
-            holder.price.setText(item.price.toString())
-            holder.priceUnit.text = item.currencyStr
-            holder.count.setText(item.count.toString())
-
-            for (checkedItem in OASystem.unitList) {
-                if (checkedItem.id == item.units) {
-                    holder.unit.text = checkedItem.name
-                }
+        holder.listItem.visibility = View.VISIBLE
+        holder.paymentItemName.text = item.sidName
+        holder.price.setText(item.price.toString())
+        holder.priceUnit.text = item.currencyStr
+        holder.count.setText(item.count.toString())
+
+        for (checkedItem in OASystem.unitList) {
+            if (checkedItem.id == item.units) {
+                holder.unit.text = checkedItem.name
             }
+        }
 
-            holder.listItem.visibility = View.VISIBLE
+        holder.listItem.visibility = View.VISIBLE
 
-            holder.date.text = item.datePrice.substring(0, 10)
-            holder.detail.setText(item.priceContent)
+        holder.date.text = item.datePrice.substring(0, 10)
+        holder.detail.setText(item.priceContent)
 
-            holder.price.filters = arrayOf(MoneyInputFilter())
+        holder.price.filters = arrayOf(MoneyInputFilter())
 
-            holder.price.onFocusChangeListener = View.OnFocusChangeListener { _, flag ->
-                if (!flag) {
-                    if (holder.price.text.isNullOrBlank()) {
-                        holder.price.setText(item.price.toString())
-                    }
+        holder.price.onFocusChangeListener = View.OnFocusChangeListener { _, flag ->
+            if (!flag) {
+                if (holder.price.text.isNullOrBlank()) {
+                    holder.price.setText(item.price.toString())
                 }
             }
+        }
 
-            holder.count.onFocusChangeListener = View.OnFocusChangeListener { _, flag ->
-                if (!flag) {
-                    if (holder.count.text.isNullOrBlank()) {
-                        holder.count.setText(item.count.toString())
-                    }
+        holder.count.onFocusChangeListener = View.OnFocusChangeListener { _, flag ->
+            if (!flag) {
+                if (holder.count.text.isNullOrBlank()) {
+                    holder.count.setText(item.count.toString())
                 }
             }
         }

+ 3 - 0
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/entity/GroundConveyListItem.kt

@@ -11,4 +11,7 @@ class GroundConveyListItem {
     var serviceEndTime = ""
     var isAuditGM = -1
     var currencyStr = ""
+
+    //2024-04-29 新增OP费用录入款项类型
+    var priceTypeStr = ""
 }

+ 1 - 1
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/entity/GroundConveyTableItem.kt

@@ -13,5 +13,5 @@ class GroundConveyTableItem {
     var count = 0
     var units = 0
 
-    var isVisible = true
+    var isNew = false
 }

+ 2 - 0
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/network/UpdateGroundConveyRequest.kt

@@ -21,4 +21,6 @@ class UpdateGroundConveyRequest {
     val createUserId = OASystem.userInfo.userId
     var remark = ""
 
+    //2024-04-29 新增OP费用录入 款项类型
+    var priceType = 0
 }

+ 0 - 2
app/src/main/java/com/pan_american/android/data/network/APIService.kt

@@ -2,13 +2,11 @@ package com.pan_american.android.data.network
 
 import com.pan_american.android.base.BaseRequest
 import com.pan_american.android.base.BaseResponse
-import com.pan_american.android.data.model.address_book.*
 import com.pan_american.android.data.model.address_book.network.CompanyListResponse
 import com.pan_american.android.data.model.address_book.network.DepartmentListRequest
 import com.pan_american.android.data.model.address_book.network.DepartmentListResponse
 import com.pan_american.android.data.model.address_book.network.MemberListRequest
 import com.pan_american.android.data.model.address_book.network.MemberListResponse
-import com.pan_american.android.data.model.common.*
 import com.pan_american.android.data.model.common.network.DeleteRequest
 import com.pan_american.android.data.model.common.network.GroupClientListRequest
 import com.pan_american.android.data.model.common.network.GroupClientListResponse

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

@@ -19,6 +19,7 @@ import com.pan_american.android.base.BaseActivity
 import com.pan_american.android.base.BaseResponse
 import com.pan_american.android.base.ListAdapter
 import com.pan_american.android.data.model.common.entity.Selector
+import com.pan_american.android.data.model.common.network.QuerySetDataRequest
 import com.pan_american.android.data.model.common.network.SelectorResponse
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyDetailRequest
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyDetailResponse
@@ -49,17 +50,18 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
 
     private var regex = Regex("^[\\u4e00-\\u9fa5]*\$")
 
-    private var areaSelected = false
-
     private var paymentMarkId = -1
 
-    private var paymentMarkSelect = false
-
     private var updateGroundConveyRequest = UpdateGroundConveyRequest()
 
     //2024-04-28 新增OP费用录入信息审核通过后无法再进行修改
     private var isAuditGM = -1
 
+    //2024-04-29 新增OP费用录入 款项类型(预付款 / 尾款)
+    private var priceTypeList = ArrayList<Selector>()
+
+    private var priceTypeId = -1
+
     override fun getViewBinding() = ActivityAddGroupOpPaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -210,8 +212,6 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
 
                                 areaId = id
 
-                                areaSelected = true
-
                                 popupWindow.dismiss()
                             }
                         }
@@ -265,6 +265,39 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
             }
         }
 
+        binding.priceType.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setData(priceTypeList)
+                    setLayoutId(R.layout.item_selector)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            text = data.name
+
+                            if (priceTypeId == data.id) {
+                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                            } else {
+                                setTextColor(ResourcesCompat.getColor(resources, R.color.text_color, null))
+                            }
+                        }
+                    }
+                }.create()
+
+                selector.adapter = adapter
+
+                adapter.onRecyclerViewItemClick = object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                    override fun onItemClick(position: Int) {
+                        priceTypeList[position].apply {
+                            priceTypeId = id
+                            binding.priceType.text = name
+                        }
+
+                        popupWindow.dismiss()
+                    }
+                }
+            }
+        }
+
         binding.serviceStartTime.setOnClickListener {
             showDatePicker(
                 resources.getString(R.string.consume_date_select_hint), binding.serviceStartTime
@@ -302,7 +335,6 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                         override fun onItemClick(position: Int) {
                             paymentMarkId = OASystem.paymentMark[position].id
                             binding.paymentMark.text = OASystem.paymentMark[position].name
-                            paymentMarkSelect = true
 
                             popupWindow.dismiss()
                         }
@@ -320,13 +352,20 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
             updateGroundConveyRequest.id = paymentId
             updateGroundConveyRequest.diId = groupId
 
-            if (!areaSelected) {
+            if (areaId == -1) {
                 showMessage(resources.getString(R.string.area_select_hint))
                 return@setOnClickListener
             } else {
                 updateGroundConveyRequest.area = areaId.toString()
             }
 
+            if (priceTypeId == -1) {
+                showMessage(resources.getString(R.string.price_type_hint))
+                return@setOnClickListener
+            } else {
+                updateGroundConveyRequest.priceType = priceTypeId
+            }
+
             if (binding.serviceStartTime.text.isNullOrBlank()) {
                 showMessage(resources.getString(R.string.start_time_select_hint))
                 return@setOnClickListener
@@ -377,7 +416,7 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                 updateGroundConveyRequest.busTel = binding.serviceCarTel.text.toString()
             }
 
-            if (!paymentMarkSelect) {
+            if (paymentMarkId == -1) {
                 showMessage(resources.getString(R.string.payment_mark_hint))
                 return@setOnClickListener
             } else {
@@ -420,9 +459,7 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                             areaList.add(item)
                         }
 
-                        initViews()
-
-                        initEvents()
+                        getPriceType()
 
                     } else {
                         showMessage(listResponse.msg)
@@ -470,8 +507,14 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                                             areaId = selectedAreaId
                                         }
                                     }
+                                }
 
-                                    areaSelected = true
+                                //2024-04-29 新增OP费用录入款项类型
+                                for (item in priceTypeList) {
+                                    if (priceType == item.id) {
+                                        priceTypeId = item.id
+                                        binding.priceType.text = item.name
+                                    }
                                 }
 
                                 binding.serviceStartTime.text = serviceStartTime
@@ -485,7 +528,6 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                                     OASystem.paymentMark[orbitalPrivateTransfer].name
 
                                 paymentMarkId = orbitalPrivateTransfer
-                                paymentMarkSelect = true
 
                                 if (busDescription.isNotBlank()) {
                                     binding.carDescription.setText(busDescription)
@@ -561,4 +603,36 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
     private fun canBeEdit(): Boolean {
         return OASystem.authorization(OASystem.GROUND_CONVEY_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
     }
+
+    //2024-04-29 同步web修改,添加费用标识(尾款 / 预付款)
+    private fun getPriceType() {
+        apiService.querySetData(QuerySetDataRequest(83)).enqueue(object : Callback<SelectorResponse> {
+            override fun onResponse(
+                call: Call<SelectorResponse>,
+                response: Response<SelectorResponse>
+            ) {
+                val dataSetResponse = response.body()
+
+                if (dataSetResponse != null) {
+                    if (dataSetResponse.code == 200) {
+
+                        for (item in dataSetResponse.data) {
+                            priceTypeList.add(item)
+                        }
+
+                        initViews()
+
+                        initEvents()
+
+                    } else {
+                        showMessage(dataSetResponse.msg)
+                    }
+                }
+            }
+
+            override fun onFailure(call: Call<SelectorResponse>, t: Throwable) {
+                showMessage(resources.getString(R.string.network_error))
+            }
+        })
+    }
 }

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

@@ -7,6 +7,7 @@ import android.view.ViewGroup
 import android.widget.CheckedTextView
 import android.widget.PopupWindow
 import android.widget.TextView
+import androidx.core.content.res.ResourcesCompat
 import androidx.recyclerview.widget.ConcatAdapter
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.StaggeredGridLayoutManager
@@ -81,6 +82,11 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
     //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
     private var isAuditGM = -1
 
+    //2024-04-29 优化地接费用录入存在的卡顿问题
+    private var showItemList = ArrayList<GroundConveyTableItem>()
+
+    private var itemMaxId = 0
+
     override fun getViewBinding() = ActivityGroundConveyPaymentDetailBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -173,16 +179,6 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                 updateGroundConveyDetailRequest.payDId = paymentWayId
             }
 
-            updateGroundConveyDetailRequest.opContentList = carTouristGuides
-
-            val selectCheck = ArrayList<String>()
-
-            for (item in checkedItemId) {
-                selectCheck.add(item.toString())
-            }
-
-            updateGroundConveyDetailRequest.selectCheck = selectCheck
-
             updateGroundConveyDetail()
 
         }
@@ -209,6 +205,9 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                             }
 
                             for (item in resourceResponse.data.carTouristGuides) {
+                                if (itemMaxId < item.id) {
+                                    itemMaxId = item.id
+                                }
                                 carTouristGuides.add(item)
                             }
 
@@ -228,15 +227,21 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                                 }
                             }
 
-                            for (item in carTouristGuides) {
+                            for ((i, item) in carTouristGuides.withIndex()) {
+
+                                if (item.id == 0) {
+                                    carTouristGuides[i].id = itemMaxId + i
+                                    carTouristGuides[i].isNew = true
+                                }
+
                                 for (checkedItem in checkedItemId) {
                                     if (item.sId == checkedItem) {
                                         totalPrice += item.price * item.count
                                     }
                                 }
 
-                                if (!checkedItemId.contains(item.sId)) {
-                                    item.isVisible = false
+                                if (checkedItemId.contains(item.sId)) {
+                                    showItemList.add(item)
                                 }
                             }
 
@@ -343,12 +348,18 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                         setData(currencyList)
                         setLayoutId(R.layout.item_selector)
                         addBindView { itemView, data ->
-                            itemView.findViewById<TextView>(R.id.selector_item_name).text =
-                                String.format(
-                                    resources.getString(R.string.currency_name_code_format),
-                                    data.currencyName,
-                                    data.currencyCode
-                                )
+                            itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                                text =
+                                    String.format(
+                                        resources.getString(R.string.currency_name_code_format),
+                                        data.currencyName,
+                                        data.currencyCode
+                                    )
+
+                                if (currencyId == data.currencyId) {
+                                    setTextColor(ResourcesCompat.getColor(resources, R.color.text_color_blue, null))
+                                }
+                            }
                         }
                     }.create()
 
@@ -367,12 +378,12 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                                 currencyId = currencyList[position].currencyId
                                 currencySelect = true
 
-                                popupWindow.dismiss()
-
                                 for ((i, item) in carTouristGuides.withIndex()) {
                                     item.currencyStr = headerAdapter.getCurrencyCode()
                                     binding.paymentList.adapter!!.notifyItemChanged(i)
                                 }
+
+                                popupWindow.dismiss()
                             }
                         }
                 }
@@ -417,23 +428,38 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
                                         for ((i, item) in carTouristGuides.withIndex()) {
                                             if (item.sId == id) {
-                                                carTouristGuides[i].isVisible = false
                                                 totalPrice -= carTouristGuides[i].price * carTouristGuides[i].count
-                                                adapter.notifyItemChanged(i)
                                             }
                                         }
 
+                                        for ((i, item) in showItemList.withIndex()) {
+                                            if (item.sId == id) {
+                                                adapter.notifyItemRemoved(i)
+                                                adapter.notifyItemRangeChanged(i, showItemList.size)
+                                            }
+                                        }
+
+                                        showItemList.removeIf { item ->
+                                            item.sId == id
+                                        }
+
                                     } else {
                                         isChecked = true
                                         checkedItemId.add(id)
 
+                                        showItemList.clear()
+
                                         for ((i, item) in carTouristGuides.withIndex()) {
                                             if (item.sId == id) {
-                                                carTouristGuides[i].isVisible = true
                                                 totalPrice += carTouristGuides[i].price * carTouristGuides[i].count
-                                                adapter.notifyItemChanged(i)
+                                            }
+
+                                            if (checkedItemId.contains(id)) {
+                                                showItemList.add(item)
                                             }
                                         }
+
+                                        adapter.notifyItemRangeChanged(0, showItemList.size)
                                     }
 
                                     binding.paymentTotal.text = String.format(
@@ -456,7 +482,7 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
             }
         }
 
-        adapter = GroundConveyTableAdapter(carTouristGuides)
+        adapter = GroundConveyTableAdapter(showItemList)
         adapter.setCanBeEdit(canBeEdit())
         adapter.setHasStableIds(true)
 
@@ -464,39 +490,53 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
             object : GroundConveyTableAdapter.OnItemTextChanged {
                 override fun onPriceTextChanged(position: Int) {
 
-                    carTouristGuides[position].apply {
-                        prePrice = price * count
-                        price = adapter.price
-                    }
+                    for (item in carTouristGuides) {
+                        if (showItemList[position].id == item.id) {
+                            item.apply {
+                                prePrice = price * count
+                                price = adapter.price
+                            }
 
-                    totalPrice =
-                        totalPrice - carTouristGuides[position].prePrice + carTouristGuides[position].price * carTouristGuides[position].count
+                            totalPrice =
+                                totalPrice - item.prePrice + item.price * item.count
 
-                    binding.paymentTotal.text = String.format(
-                        resources.getString(R.string.price_and_currency_format),
-                        totalPrice,
-                        headerAdapter.getCurrencyCode()
-                    )
+                            binding.paymentTotal.text = String.format(
+                                resources.getString(R.string.price_and_currency_format),
+                                totalPrice,
+                                headerAdapter.getCurrencyCode()
+                            )
+                        }
+                    }
                 }
 
                 override fun onPriceContentChanged(position: Int) {
-                    carTouristGuides[position].priceContent = adapter.priceContentText
+
+                    for (item in carTouristGuides) {
+                        if (showItemList[position].id == item.id) {
+                            item.priceContent = adapter.priceContentText
+                        }
+                    }
                 }
 
                 override fun onCountChanged(position: Int) {
-                    carTouristGuides[position].apply {
-                        prePrice = price * count
-                        count = adapter.count.toInt()
-                    }
 
-                    totalPrice =
-                        totalPrice - carTouristGuides[position].prePrice + carTouristGuides[position].price * carTouristGuides[position].count
+                    for (item in carTouristGuides) {
+                        if (showItemList[position].id == item.id) {
+                            item.apply {
+                                prePrice = price * count
+                                count = adapter.count.toInt()
+                            }
+
+                            totalPrice =
+                                totalPrice - item.prePrice + item.price * item.count
 
-                    binding.paymentTotal.text = String.format(
-                        resources.getString(R.string.price_and_currency_format),
-                        totalPrice,
-                        headerAdapter.getCurrencyCode()
-                    )
+                            binding.paymentTotal.text = String.format(
+                                resources.getString(R.string.price_and_currency_format),
+                                totalPrice,
+                                headerAdapter.getCurrencyCode()
+                            )
+                        }
+                    }
                 }
             }
 
@@ -518,9 +558,12 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                             override fun onItemClick(position: Int) {
                                 OASystem.unitList[position].apply {
 
-                                    carTouristGuides[itemPosition].units = id
-                                    adapter.notifyItemChanged(itemPosition)
-
+                                    for (item in carTouristGuides) {
+                                        if (showItemList[position].id == item.id) {
+                                            item.units = id
+                                            adapter.notifyItemChanged(itemPosition)
+                                        }
+                                    }
                                     popupWindow.dismiss()
                                 }
                             }
@@ -596,6 +639,22 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
         binding.updateLoading.visibility = View.VISIBLE
 
+        for (item in carTouristGuides) {
+            if (item.isNew) {
+                item.id = 0
+            }
+        }
+
+        updateGroundConveyDetailRequest.opContentList = carTouristGuides
+
+        val selectCheck = ArrayList<String>()
+
+        for (item in checkedItemId) {
+            selectCheck.add(item.toString())
+        }
+
+        updateGroundConveyDetailRequest.selectCheck = selectCheck
+
 //        val file = File(filesDir, "data.txt")
 //        if (file.exists()) {
 //            file.delete()

+ 36 - 0
app/src/main/res/layout/activity_add_group_op_payment.xml

@@ -186,6 +186,42 @@
                     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/price_type"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/price_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"

+ 35 - 1
app/src/main/res/layout/item_ground_convey_info.xml

@@ -38,7 +38,8 @@
                 android:layout_width="@dimen/common_padding_heavy"
                 android:layout_height="@dimen/common_padding_heavy"
                 android:layout_marginEnd="@dimen/common_padding"
-                android:src="@mipmap/icon_delete" />
+                android:src="@mipmap/icon_delete"
+                tools:ignore="ContentDescription"/>
 
         </LinearLayout>
 
@@ -75,6 +76,39 @@
 
         </LinearLayout>
 
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding_huge"
+            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:baselineAligned="false"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/price_type"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/price_type"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:singleLine="true"
+                android:textSize="@dimen/text_size_medium" />
+
+        </LinearLayout>
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"

+ 1 - 0
app/src/main/res/layout/item_ground_convey_table.xml

@@ -211,6 +211,7 @@
                 android:gravity="end"
                 android:selectAllOnFocus="true"
                 android:singleLine="true"
+                android:text="@string/no_info"
                 android:textColorHint="@color/hint_text_color"
                 android:textSize="@dimen/text_size_medium" />
 

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

@@ -586,6 +586,7 @@
 
     <string name="ground_convey_payment_list">地接费用列表</string>
     <string name="area">地区</string>
+    <string name="price_type">款项类型</string>
     <string name="service_during_time">服务时段</string>
     <string name="service_time_start">服务时间起</string>
     <string name="service_time_end">服务时间止</string>
@@ -604,6 +605,7 @@
     <string name="payment_detail">详细费用</string>
 
     <string name="area_select_hint">请选择地区</string>
+    <string name="price_type_hint">请选择款项类型</string>
     <string name="start_time_select_hint">请选择起始时间</string>
     <string name="end_time_select_hint">请选择结束时间</string>
     <string name="service_company_input_hint">请输入服务公司</string>