WayBillFragment.kt 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. package com.quansu.heifengwuliu.fragment
  2. import android.app.Activity
  3. import android.content.Intent
  4. import android.os.Build
  5. import android.os.Bundle
  6. import android.view.LayoutInflater
  7. import android.view.View
  8. import android.view.ViewGroup
  9. import androidx.fragment.app.Fragment
  10. import com.hwangjr.rxbus.RxBus
  11. import com.qmuiteam.qmui.kotlin.onClick
  12. import com.qmuiteam.qmui.widget.tab.QMUITab
  13. import com.qmuiteam.qmui.widget.tab.QMUITabBuilder
  14. import com.quansu.heifengwuliu.R
  15. import com.quansu.heifengwuliu.activity.AreaSelectActivity
  16. import com.quansu.heifengwuliu.base.MBTabFragment
  17. import com.quansu.heifengwuliu.config.ConfigRx
  18. import com.quansu.heifengwuliu.config.MIntentAction
  19. import com.quansu.heifengwuliu.databinding.FragmentWaybillBinding
  20. import com.quansu.heifengwuliu.inte.ChoiceData
  21. import com.quansu.heifengwuliu.inte.ChoiceListData
  22. import com.quansu.heifengwuliu.model.SelectData
  23. import com.quansu.heifengwuliu.model.bean.SearchBean
  24. import com.quansu.heifengwuliu.utils.PopuListUtils
  25. import com.quansu.heifengwuliu.vmodel.DriverWayBillVModel
  26. import com.ysnows.base.utils.B
  27. import com.ysnows.base.utils.UiSwitch
  28. import com.ysnows.base.utils.UiUtils
  29. import java.util.ArrayList
  30. /**
  31. *Created by shihuiyun
  32. *on 2020/9/9
  33. */
  34. class WayBillFragment : MBTabFragment<DriverWayBillVModel, FragmentWaybillBinding>() {
  35. override fun init(savedInstanceState: Bundle?) {
  36. super.init(savedInstanceState)
  37. setShow()
  38. }
  39. private fun setShow(){
  40. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { //不支持沉浸式状态栏
  41. } else {
  42. //获取状态栏的高度
  43. val statusBarHeight: Int = UiUtils.getStatusBarHeight()
  44. //动态设置高度 tv
  45. val params = binding.tv.getLayoutParams()
  46. //获取当前控件的布局对象
  47. //params.height=UiUtils.dp2dip(getContext(), statusBarHeight);//设置当前控件布局的高度
  48. params.height = statusBarHeight
  49. binding.tv.layoutParams = params //将设置好的布局参数应用到控件中
  50. binding.tv.visibility = View.VISIBLE
  51. }
  52. }
  53. override fun initView(view: View?) {
  54. super.initView(view)
  55. binding.tvTitle.text=getString(R.string.order_information)
  56. }
  57. override fun vmClass(): Class<DriverWayBillVModel> {
  58. return DriverWayBillVModel::class.java
  59. }
  60. override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentWaybillBinding {
  61. return FragmentWaybillBinding.inflate(layoutInflater)
  62. }
  63. override fun title(): String? {
  64. return null
  65. }
  66. override fun backable(): Boolean {
  67. return false
  68. }
  69. override fun getPageItem(position: Int): Fragment {
  70. var ownerFragment = OrderListFragment()
  71. when (position) {
  72. 0 -> {
  73. ownerFragment.arguments = B().putString("info_state", "0").ok()
  74. return ownerFragment
  75. }
  76. 1 -> {
  77. ownerFragment.arguments = B().putString("info_state", "10").ok()
  78. return ownerFragment
  79. }
  80. 2 -> {
  81. ownerFragment.arguments = B().putString("info_state", "20").ok()
  82. return ownerFragment
  83. }
  84. 3 -> {
  85. ownerFragment.arguments = B().putString("info_state", "30").ok()
  86. return ownerFragment
  87. }
  88. 4 -> {
  89. ownerFragment.arguments = B().putString("info_state", "100").ok()
  90. return ownerFragment
  91. }
  92. 5 -> {
  93. ownerFragment.arguments = B().putString("info_state", "40").ok()
  94. return ownerFragment
  95. }
  96. else->{
  97. ownerFragment.arguments = B().putString("info_state", "0").ok()
  98. return ownerFragment
  99. }
  100. }
  101. return OrderListFragment()
  102. }
  103. override fun getPageCount(): Int {
  104. return 6
  105. }
  106. override fun createTabs(tabBuilder: QMUITabBuilder): Array<QMUITab> {
  107. val component = tabBuilder
  108. .setText(getString(R.string.all))
  109. .build(context())
  110. val pay = tabBuilder
  111. .setText(getText(R.string.to_order_pay))
  112. .build(context())
  113. val util = tabBuilder
  114. .setText(getText(R.string.to_order_receive))
  115. .build(context())
  116. val ongoing = tabBuilder
  117. .setText(getText(R.string.on_going))
  118. .build(context())
  119. val canceled = tabBuilder
  120. .setText(getText(R.string.canceled))
  121. .build(context())
  122. val completed = tabBuilder
  123. .setText(getText(R.string.completed))
  124. .build(context())
  125. return arrayOf(component, pay,util, ongoing, canceled, completed)
  126. }
  127. var type = 1
  128. override fun listeners() {
  129. super.listeners()
  130. binding.flClear.onClick {
  131. vm.clearSearch()
  132. }
  133. binding.tvScreen.onClick {
  134. binding.drawerLayout.openDrawer(binding.menuLayoutRight)
  135. vm.butCarType=binding.butCarType
  136. }
  137. binding.flToSearch.onClick {
  138. var bean= SearchBean(vm.province_out,vm.city_out,vm.area_out,vm.province_in,vm.city_in,vm.area_in,vm.k!!,
  139. vm.carCode, vm.timeOutStart.value!!, vm.timeOutEnd.value!!, vm.timeInStart.value!!,
  140. vm.timeInEnd.value!!, vm.priceStart!!, vm.priceEnd!!,vm.sortCode,vm.sortChose.value.toString())
  141. RxBus.get().post(ConfigRx.SEARCH_REFRESH, bean)
  142. binding.drawerLayout.closeDrawers()
  143. }
  144. binding.tvSearch.onClick {
  145. var bean= SearchBean(vm.province_out,vm.city_out,vm.area_out,vm.province_in,vm.city_in,vm.area_in,vm.k!!,
  146. vm.carCode, vm.timeOutStart.value!!, vm.timeOutEnd.value!!, vm.timeInStart.value!!,
  147. vm.timeInEnd.value!!, vm.priceStart!!, vm.priceEnd!!,vm.sortCode,vm.sortChose.value.toString())
  148. RxBus.get().post(ConfigRx.SEARCH_REFRESH, bean)
  149. binding.drawerLayout.closeDrawers()
  150. }
  151. binding.butSearchOut.onClick {
  152. type = 1//出发地
  153. UiSwitch.bundleRes(this, AreaSelectActivity::class.java,
  154. Bundle().apply {
  155. putInt("chose", 1)
  156. },
  157. MIntentAction.REQUEST_CODE_TWO)
  158. }
  159. binding.butSearchIn.onClick {
  160. type = 2//目的地
  161. UiSwitch.bundleRes(this, AreaSelectActivity::class.java,
  162. Bundle().apply {
  163. putInt("chose", 1)
  164. },
  165. MIntentAction.REQUEST_CODE_TWO)
  166. }
  167. binding.butOutTimeStart.onClick {
  168. PopuListUtils.setChoseTime(context(),object : ChoiceData {
  169. override fun onRestuse(id: String?) {
  170. vm.timeOutStart.value = id
  171. vm.butColor.value=true
  172. }
  173. })
  174. }
  175. binding.butOutTimeEnd.onClick {
  176. PopuListUtils.setChoseTime(context(),object : ChoiceData {
  177. override fun onRestuse(id: String?) {
  178. vm.timeOutEnd.value = id
  179. vm.butColor.value=true
  180. }
  181. })
  182. }
  183. binding.butInTimeStart.onClick {
  184. PopuListUtils.setChoseTime(context(),object : ChoiceData {
  185. override fun onRestuse(id: String?) {
  186. vm.timeInStart.value = id
  187. vm.butColor.value=true
  188. }
  189. })
  190. }
  191. binding.butInTimeEnd.onClick {
  192. PopuListUtils.setChoseTime(context(),object : ChoiceData {
  193. override fun onRestuse(id: String?) {
  194. vm.timeInEnd.value = id
  195. vm.butColor.value=true
  196. }
  197. })
  198. }
  199. // binding.butCarType.onClick {
  200. //
  201. // if(null==vm.list!!.value|| vm.list!!.value!!.isEmpty()){
  202. // toast("点击了")
  203. // vm.getInfo()
  204. // }else {
  205. //
  206. // var list = ArrayList<SelectData>()
  207. // for (item in vm.list!!.value!!) {
  208. // var bean = SelectData(item.type_id, item.type_name)
  209. // list.add(bean)
  210. // }
  211. //
  212. // PopuListUtils.showQMUIPopup(context(), binding.butCarType, list, object : ChoiceListData {
  213. // override fun onRestuse(code: String?, name: String?) {
  214. // vm.carCode = code.toString()
  215. // vm.carName.value = name
  216. //
  217. // }
  218. // })
  219. // }
  220. //
  221. //
  222. // }
  223. binding.butChoseSort.onClick {
  224. //选择排序类型
  225. var list= ArrayList<SelectData>()
  226. list.add(SelectData("create_time","发布时间"))
  227. list.add(SelectData("total","单价"))
  228. list.add(SelectData("all_total","总价"))
  229. PopuListUtils.showQMUIPopup(context(), binding.butChoseSort, list, object : ChoiceListData {
  230. override fun onRestuse(code: String?,name: String?) {
  231. vm.sortName.value = name
  232. vm.sortCode=code.toString()
  233. vm.butColor.value=true
  234. }
  235. })
  236. }
  237. }
  238. override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
  239. super.onActivityResult(requestCode, resultCode, data)
  240. if (MIntentAction.REQUEST_CODE_TWO == requestCode && resultCode == Activity.RESULT_OK) {
  241. val bundle = data!!.extras
  242. if (null != bundle) {
  243. var name = bundle.getString("name")
  244. if (type == 1) {
  245. vm.area_out = bundle.getString("area_code")!!
  246. vm.province_out = bundle.getString("province_code")!!
  247. vm.city_out = bundle.getString("city_code")!!
  248. vm.name_out.value = name
  249. } else {
  250. vm.area_in = bundle.getString("area_code")!!
  251. vm.province_in = bundle.getString("province_code")!!
  252. vm.city_in = bundle.getString("city_code")!!
  253. vm.name_in.value = name
  254. }
  255. vm.butColor.value=true
  256. }
  257. return
  258. }
  259. }
  260. override val isRxbus: Boolean
  261. get() = true
  262. }