From a141213b3234d2d83ffb6a5d2d42ede0e722d949 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期二, 13 六月 2023 11:57:21 +0800 Subject: [PATCH] 公务出行开发完成 --- app/src/main/java/com/kuanzhai/user/ui/charter/CharterActivity.kt | 141 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 137 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/kuanzhai/user/ui/charter/CharterActivity.kt b/app/src/main/java/com/kuanzhai/user/ui/charter/CharterActivity.kt index bf3968c..26c8721 100644 --- a/app/src/main/java/com/kuanzhai/user/ui/charter/CharterActivity.kt +++ b/app/src/main/java/com/kuanzhai/user/ui/charter/CharterActivity.kt @@ -1,33 +1,149 @@ package com.kuanzhai.user.ui.charter +import android.app.Activity +import android.content.Intent +import androidx.core.os.bundleOf +import androidx.recyclerview.widget.LinearLayoutManager import cn.sinata.xldutils.callPhone +import cn.sinata.xldutils.clickDelay +import cn.sinata.xldutils.utils.myToast import cn.sinata.xldutils.utils.optString -import com.kuanzhai.user.OkApplication +import cn.sinata.xldutils.utils.parserTime +import com.google.gson.Gson +import com.kuanzhai.user.KuanzhaiApplication import com.kuanzhai.user.R +import com.kuanzhai.user.dialog.OfficialCharterTimeDialog import com.kuanzhai.user.network.HttpManager +import com.kuanzhai.user.network.entity.Passenger import com.kuanzhai.user.network.request -import com.kuanzhai.user.network.requestByF import com.kuanzhai.user.ui.H5Activity import com.kuanzhai.user.ui.TransparentStatusBarActivity +import com.kuanzhai.user.ui.official.adapter.CharterPassengerAdapter +import com.kuanzhai.user.ui.trip.ChoosePositionActivity import kotlinx.android.synthetic.main.fragment_charter.* import org.jetbrains.anko.sdk27.coroutines.onClick import org.jetbrains.anko.startActivity -import org.jetbrains.anko.support.v4.startActivity +import org.jetbrains.anko.startActivityForResult class CharterActivity:TransparentStatusBarActivity() { override fun setContentView() = R.layout.fragment_charter + private var start = "" + private var startLat = 0.0 + private var startLon = 0.0 + private var end = "" + private var endLat = 0.0 + private var endLon = 0.0 + + private val passenger = arrayListOf<Passenger>() + private val adapter by lazy { CharterPassengerAdapter(passenger,tv_count) } + override fun initClick() { + tv_start_time.clickDelay { + val chooseReserveTimeDialog = OfficialCharterTimeDialog() + chooseReserveTimeDialog.setCallback(object : OfficialCharterTimeDialog.Callback { + override fun onOk(formatS: String) { + tv_start_time.text = formatS + tv_end_time.text = "" + tv_duration.text = "0天" + } + }) + chooseReserveTimeDialog.show(supportFragmentManager, "time") + } + tv_end_time.clickDelay { + if (tv_start_time.text.isEmpty()){ + myToast("请选择开始时间") + return@clickDelay + } + val chooseReserveTimeDialog = OfficialCharterTimeDialog() + chooseReserveTimeDialog.arguments = bundleOf("startTime" to tv_start_time.text.toString()) + chooseReserveTimeDialog.setCallback(object : OfficialCharterTimeDialog.Callback { + override fun onOk(formatS: String) { + tv_end_time.text = formatS + tv_duration.text = "%.1f天".format((formatS.parserTime("yyyy-MM-dd HH:mm") - tv_start_time.text.toString().parserTime("yyyy-MM-dd HH:mm")).toDouble()/(24L*60*60*1000)) + } + }) + chooseReserveTimeDialog.show(supportFragmentManager, "time") + } + tv_start.setOnClickListener { + startActivityForResult<ChoosePositionActivity>(1) + } + tv_end.setOnClickListener { + startActivityForResult<ChoosePositionActivity>(2,"isStart" to false) + } + tv_add.setOnClickListener { + if (passenger.size == 4) + myToast("最多可添加4人") + else{ + passenger.add(Passenger()) + tv_count.text = "${passenger.size}" + adapter.notifyDataSetChanged() + } + } + tv_action.setOnClickListener { + val startTime = tv_start_time.text.toString() + if (startTime.isEmpty()){ + myToast("请选择用车开始时间") + return@setOnClickListener + } + val endTime = tv_end_time.text.toString() + if (endTime.isEmpty()){ + myToast("请选择用车结束时间") + return@setOnClickListener + } + if (startLat == 0.0){ + myToast("请选择出发地") + return@setOnClickListener + } + if (endLat == 0.0){ + myToast("请选择目的地") + return@setOnClickListener + } + if (passenger.filter { it.name.isEmpty() }.isNotEmpty()){ + myToast("乘车人姓名不能为空") + return@setOnClickListener + } + val rst = Intent() + rst.putExtra("startTime",startTime).putExtra("endTime",endTime) + .putExtra("startName",start).putExtra("startLat",startLat).putExtra("startLon",startLon) + .putExtra("endName",end).putExtra("endLat",endLat).putExtra("endLon",endLon) + .putExtra("isRemind",sw_remind.isChecked).putExtra("passenger",passenger) + setResult(Activity.RESULT_OK,rst) + finish() + } } override fun initView() { title = "包车" + + val startTime = intent.getStringExtra("startTime") + tv_start_time.text = startTime + val endTime = intent.getStringExtra("endTime") + tv_end_time.text = endTime + if (startTime.isNotEmpty()&&endTime.isNotEmpty()) + tv_duration.text = "%.1f天".format((endTime.parserTime("yyyy-MM-dd HH:mm") - startTime.parserTime("yyyy-MM-dd HH:mm")).toDouble()/(24L*60*60*1000)) + + start = intent.getStringExtra("start") + startLat = intent.getDoubleExtra("startLat",0.0) + startLon = intent.getDoubleExtra("startLon",0.0) + tv_start.text = start + + end = intent.getStringExtra("end") + endLat = intent.getDoubleExtra("endLat",0.0) + endLon = intent.getDoubleExtra("endLon",0.0) + tv_end.text = end + + sw_remind.isChecked = intent.getBooleanExtra("isRemind",false) + passenger.addAll(intent.getParcelableArrayListExtra("passenger")) + + rv_passenger.layoutManager = LinearLayoutManager(this) + rv_passenger.adapter = adapter getPhone() getRule() } private fun getPhone(){ - HttpManager.queryPhones(OkApplication.chooseCityCode).request(this){ _, data-> + HttpManager.queryPhones(KuanzhaiApplication.chooseCityCode).request(this){ _, data-> data?.filter { it.type == 3 }?.forEach { tv_phone.text = "包车调度电话:%s".format(it.phone) tv_phone.onClick {_-> @@ -46,4 +162,21 @@ } } } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (resultCode == Activity.RESULT_OK&&data!=null){ + if (requestCode == 1){ + startLat = data.getDoubleExtra("lat", 0.0) + startLon = data.getDoubleExtra("lon", 0.0) + start = data.getStringExtra("name") ?: "" + tv_start.text = start + }else{ + endLat = data.getDoubleExtra("lat", 0.0) + endLon = data.getDoubleExtra("lon", 0.0) + end = data.getStringExtra("name") ?: "" + tv_end.text = end + } + } + } } -- Gitblit v1.7.1