|
@@ -6,17 +6,20 @@ import android.content.Intent
|
|
|
import android.graphics.Color
|
|
|
import android.graphics.Typeface
|
|
|
import android.os.Bundle
|
|
|
+import android.text.Editable
|
|
|
+import android.text.TextUtils
|
|
|
+import android.text.TextWatcher
|
|
|
import android.view.LayoutInflater
|
|
|
import android.view.ViewGroup
|
|
|
-import android.widget.*
|
|
|
+import android.widget.FrameLayout
|
|
|
+import android.widget.TextView
|
|
|
import androidx.fragment.app.Fragment
|
|
|
-import androidx.lifecycle.LifecycleOwner
|
|
|
import androidx.lifecycle.Observer
|
|
|
+import com.google.gson.Gson
|
|
|
import com.hwangjr.rxbus.annotation.Subscribe
|
|
|
import com.hwangjr.rxbus.annotation.Tag
|
|
|
import com.qmuiteam.qmui.layout.QMUIFrameLayout
|
|
|
import com.qmuiteam.qmui.skin.QMUISkinHelper
|
|
|
-import com.qmuiteam.qmui.skin.QMUISkinManager
|
|
|
import com.qmuiteam.qmui.skin.QMUISkinValueBuilder
|
|
|
import com.qmuiteam.qmui.util.QMUIDisplayHelper
|
|
|
import com.qmuiteam.qmui.util.QMUIResHelper
|
|
@@ -36,6 +39,9 @@ import com.quansu.heifengwuliu.databinding.FragmentOwnersingleBinding
|
|
|
import com.quansu.heifengwuliu.inte.ChoiceData
|
|
|
import com.quansu.heifengwuliu.model.AddressBean
|
|
|
import com.quansu.heifengwuliu.model.DataInfoBean
|
|
|
+import com.quansu.heifengwuliu.model.bean.ReceiveBean
|
|
|
+import com.quansu.heifengwuliu.model.bean.SendBean
|
|
|
+import com.quansu.heifengwuliu.utils.PopuListUtils
|
|
|
import com.quansu.heifengwuliu.utils.PopupUtils
|
|
|
import com.quansu.heifengwuliu.vmodel.OwnerSingleVModel
|
|
|
import com.yanzhenjie.permission.AndPermission
|
|
@@ -45,8 +51,7 @@ import com.ysnows.base.model.PositionBean
|
|
|
import com.ysnows.base.route.IGaode
|
|
|
import com.ysnows.base.utils.B
|
|
|
import com.ysnows.base.utils.UiSwitch
|
|
|
-import kotlinx.android.synthetic.main.item_address.view.*
|
|
|
-import java.security.acl.Owner
|
|
|
+import java.text.DecimalFormat
|
|
|
|
|
|
/**
|
|
|
* 一装一卸
|
|
@@ -58,10 +63,33 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
private var type = 1// 1:/装货 2卸货
|
|
|
|
|
|
private var selectViewpage = 0
|
|
|
- private var info_id="0"
|
|
|
- var goodsTypeList= ArrayList<String>()
|
|
|
+ var goodsTypeList = ArrayList<String>()
|
|
|
var numsTypeList = ArrayList<String>()
|
|
|
|
|
|
+ var insurance = ArrayList<String>()
|
|
|
+
|
|
|
+ var is_agree = 1//默认 已阅读运输协议
|
|
|
+ var is_public = 1//默认 发布到货源大厅
|
|
|
+ var is_insurance = 0//默认 不够买保险
|
|
|
+
|
|
|
+
|
|
|
+ //出
|
|
|
+ var lat_out: String = ""
|
|
|
+ var lng_out: String = ""
|
|
|
+ var province_out: String = ""
|
|
|
+ var city_out: String = ""
|
|
|
+ var area_out: String = ""
|
|
|
+ var time_out: String = ""
|
|
|
+
|
|
|
+ //入
|
|
|
+ var lat_in: String = ""
|
|
|
+ var lng_in: String = ""
|
|
|
+ var province_in: String = ""
|
|
|
+ var city_in: String = ""
|
|
|
+ var area_in: String = ""
|
|
|
+ var time_in: String = ""
|
|
|
+
|
|
|
+ var info_id:String="0"
|
|
|
|
|
|
|
|
|
override fun init(savedInstanceState: Bundle?) {
|
|
@@ -88,10 +116,13 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
super.listeners()
|
|
|
binding.tvPublish.setOnClickListener {
|
|
|
//发布
|
|
|
+ judgeValue()
|
|
|
+
|
|
|
+ return@setOnClickListener
|
|
|
|
|
|
- // var mNormalPopup = QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(getContext(), 250))
|
|
|
+ // var mNormalPopup = QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(getContext(), 250))
|
|
|
|
|
|
- var mNormalPopup=QMUIPopups.fullScreenPopup(context)
|
|
|
+ var mNormalPopup = QMUIPopups.fullScreenPopup(context)
|
|
|
val builder: QMUISkinValueBuilder = QMUISkinValueBuilder.acquire()
|
|
|
val frameLayout = QMUIFrameLayout(context)
|
|
|
frameLayout.background = QMUIResHelper.getAttrDrawable(context, R.attr.qmui_skin_support_popup_bg)
|
|
@@ -125,57 +156,225 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
mNormalPopup.show(binding.tvPublish)
|
|
|
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+ binding.llChoseUnits.setOnClickListener {
|
|
|
+
|
|
|
+ PopuListUtils.showQMUIPopup(context(), binding.llChoseUnits, numsTypeList, object : ChoiceData {
|
|
|
+ override fun onRestuse(name: String?) {
|
|
|
+ vm.unit.value = name
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ binding.llGoodsType.setOnClickListener {
|
|
|
+ PopuListUtils.showQMUIPopup(context(), binding.llGoodsType, goodsTypeList, object : ChoiceData {
|
|
|
+ override fun onRestuse(name: String?) {
|
|
|
+ vm.goodstype.value = name
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ binding.llIsInsurance.setOnClickListener {
|
|
|
+
|
|
|
+ PopuListUtils.showQMUIPopup(context(), binding.llGoodsType, insurance, object : ChoiceData {
|
|
|
+ override fun onRestuse(name: String?) {
|
|
|
+ vm.insurance.value = name
|
|
|
+ is_insurance = if (name.equals("是")) 1 else 0
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ binding.llAgree.setOnClickListener {
|
|
|
|
|
|
+ is_agree = if (is_agree == 1) 0 else 1
|
|
|
+ vm.isAgree.value = is_agree
|
|
|
}
|
|
|
|
|
|
- binding.llChoseUnits.setOnClickListener{
|
|
|
- var mNormalPopup: QMUIPopup? =null
|
|
|
- val adapter: ArrayAdapter<*> = ArrayAdapter<Any?>(repository().context, android.R.layout.simple_list_item_1, numsTypeList as List<String>)
|
|
|
- val onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, i, l ->
|
|
|
+ binding.llPublic.setOnClickListener {
|
|
|
|
|
|
- vm.unit.value=numsTypeList[i]
|
|
|
+ is_public = if (is_public == 1) 0 else 1
|
|
|
+ vm.isPush.value = is_public
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ binding.etSingCarNums.addTextChangedListener(object : TextWatcher {
|
|
|
+ override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
|
|
|
+ override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
|
|
|
+ override fun afterTextChanged(editable: Editable) {
|
|
|
+ var nums = editable.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(nums)) {
|
|
|
+ nums = "0"
|
|
|
+ }
|
|
|
+ sumTotal(1, nums)
|
|
|
|
|
|
- mNormalPopup?.dismiss()
|
|
|
}
|
|
|
- mNormalPopup= QMUIPopups.listPopup(repository().context,
|
|
|
- QMUIDisplayHelper.dp2px(repository().context, 250),
|
|
|
- QMUIDisplayHelper.dp2px(repository().context, 300),
|
|
|
- adapter,
|
|
|
- onItemClickListener)
|
|
|
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
|
|
|
- .preferredDirection(QMUIPopup.DIRECTION_TOP)
|
|
|
- .shadow(true)
|
|
|
- .offsetYIfTop(QMUIDisplayHelper.dp2px(repository().context, 5))
|
|
|
- .skinManager(QMUISkinManager.defaultInstance(repository().context))
|
|
|
- .onDismiss {
|
|
|
+ })
|
|
|
+
|
|
|
+ binding.etSingCarPrice.addTextChangedListener(object : TextWatcher {
|
|
|
+ override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
|
|
|
+ override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
|
|
|
+ override fun afterTextChanged(editable: Editable) {
|
|
|
+ var price = editable.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(price)) {
|
|
|
+ price = "0"
|
|
|
+ }
|
|
|
+ sumTotal(2, price)
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private fun judgeValue() {
|
|
|
+ if (TextUtils.isEmpty(province_out)) {
|
|
|
+ toast("请选择装货地址!")
|
|
|
+ return
|
|
|
|
|
|
- }
|
|
|
- .show(binding.llChoseUnits);
|
|
|
}
|
|
|
+ var name_out = binding.viewOut.etName.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(name_out)) {
|
|
|
+ toast("请输入发货人!")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var mobile_out = binding.viewOut.etPhone.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(mobile_out)) {
|
|
|
+ toast("请输入发货人电话!")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (TextUtils.isEmpty(time_out)) {
|
|
|
+ toast("请输入装货时间")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var address_out = binding.viewOut.etDetailedAddress.text.toString().trim()
|
|
|
+
|
|
|
+ var sendBean = SendBean(lat_out, lng_out, province_out, city_out, address_out, address_out, name_out, mobile_out, time_out, "0")
|
|
|
+
|
|
|
+
|
|
|
+ if (TextUtils.isEmpty(province_in)) {
|
|
|
+ toast("请选择卸货地址!")
|
|
|
+ return
|
|
|
+
|
|
|
+ }
|
|
|
+ var name_in = binding.viewEnter.etName.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(name_in)) {
|
|
|
+ toast("请输入卸货人!")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var mobile_in = binding.viewEnter.etPhone.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(mobile_in)) {
|
|
|
+ toast("请输入卸货人电话!")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (TextUtils.isEmpty(time_in)) {
|
|
|
+ toast("请输入卸货时间")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (TextUtils.isEmpty(vm.goodstype.value.toString())) {
|
|
|
+ toast("请选择货物类型")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (TextUtils.isEmpty(vm.unit.value.toString())) {
|
|
|
+ toast("请选择单车运量单位")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var nums = binding.etSingCarNums.text.toString().trim()
|
|
|
+
|
|
|
+ if (TextUtils.isEmpty(vm.unit.value.toString())) {
|
|
|
+ toast("请输入单车运量数量")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var price = binding.etSingCarPrice.text.toString().trim()
|
|
|
+ var total = binding.etSingCarTotal.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(vm.unit.value.toString())) {
|
|
|
+ toast("请输入总金额")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (TextUtils.isEmpty(time_in)) {
|
|
|
+ toast("请输入卸货时间")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var address_in = binding.viewEnter.etDetailedAddress.text.toString().trim()
|
|
|
+
|
|
|
+ var receiveBean = ReceiveBean(lat_in, lng_in, province_in, city_in, address_in, address_in, name_in, mobile_in, time_in, "1",
|
|
|
+ "", vm.goodstype.value.toString(), nums, vm.unit.value.toString(), price, total
|
|
|
+ )
|
|
|
+
|
|
|
+ if (is_agree==0) {
|
|
|
+ toast("请阅读并同意《平台运输协议》")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var carnums=binding.etCarNums.text.toString()
|
|
|
+ if(TextUtils.isEmpty(carnums)){
|
|
|
+ toast("请输入所需车辆数量")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var data=binding.etData.text.toString()
|
|
|
+ var send= Gson().toJson(sendBean)
|
|
|
+ var receive= Gson().toJson(receiveBean)
|
|
|
+
|
|
|
+ vm.setReleaseSource(info_id,total,"",carnums,is_public.toString(),is_insurance.toString(),"1",
|
|
|
+ data,send,receive)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * type:1单车运量 2单价
|
|
|
+ * value:输入的值
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private fun sumTotal(type: Int, value: String) {
|
|
|
+ var df = DecimalFormat("0.00")
|
|
|
+ var total = "0"
|
|
|
+ if (type == 1) {//数量
|
|
|
+ var price = binding.etSingCarPrice.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(price)) {
|
|
|
+ price = "0"
|
|
|
+ }
|
|
|
+ total = df.format(value.toDouble() * price.toDouble())
|
|
|
+ } else {//价格
|
|
|
+ var nums = binding.etSingCarNums.text.toString().trim()
|
|
|
+ if (TextUtils.isEmpty(nums)) {
|
|
|
+ nums = "0"
|
|
|
+ }
|
|
|
+ var df = DecimalFormat("0.00");
|
|
|
+ total = df.format(nums.toDouble() * value.toDouble())
|
|
|
+
|
|
|
+ }
|
|
|
+ binding.etSingCarTotal.setText(total)
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
- private fun getData(){
|
|
|
+
|
|
|
+ private fun getData() {
|
|
|
//获取信息
|
|
|
vm.getDataInfo(info_id);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
- private fun initTab(info:DataInfoBean) {
|
|
|
- if(null!=info.car_type){
|
|
|
- for(item in info.car_type){
|
|
|
+ private fun initTab(info: DataInfoBean) {
|
|
|
+ if (null != info.car_type) {
|
|
|
+ for (item in info.car_type) {
|
|
|
cats.add(item.type_name)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//设置viewpager
|
|
|
val fragments = ArrayList<Fragment>()
|
|
|
- var index=0
|
|
|
+ var index = 0
|
|
|
for (cat in cats) {
|
|
|
var ownerImgFragment = OwnerImgFragment()
|
|
|
- ownerImgFragment.arguments = B().putString("img",info.car_type[index].type_img ).ok()
|
|
|
+ ownerImgFragment.arguments = B().putString("img", info.car_type[index].type_img).ok()
|
|
|
fragments.add(ownerImgFragment)
|
|
|
index++
|
|
|
}
|
|
@@ -250,6 +449,10 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
|
|
|
private fun initData() {
|
|
|
|
|
|
+
|
|
|
+ insurance.add("是")
|
|
|
+ insurance.add("否")
|
|
|
+
|
|
|
//卸货信息
|
|
|
binding.viewEnter.tvCity.setHint("请选择卸货地址")
|
|
|
binding.viewEnter.llChoseMap.setOnClickListener {
|
|
@@ -291,16 +494,20 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
binding.viewEnter.tvChoseTime.setOnClickListener {
|
|
|
//选择时间
|
|
|
PopupUtils.setChoseTime(context, binding.viewEnter.tvChoseTime, object : ChoiceData {
|
|
|
- override fun onRestuse(id: String?) {
|
|
|
-
|
|
|
+ override fun onRestuse(time: String?) {
|
|
|
+ if (time != null) {
|
|
|
+ time_in = time
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
binding.viewOut.tvChoseTime.setOnClickListener {
|
|
|
PopupUtils.setChoseTime(context, binding.viewOut.tvChoseTime, object : ChoiceData {
|
|
|
- override fun onRestuse(id: String?) {
|
|
|
-
|
|
|
+ override fun onRestuse(time: String?) {
|
|
|
+ if (time != null) {
|
|
|
+ time_out = time
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -315,46 +522,52 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
val bundle = data!!.extras
|
|
|
if (null != bundle) {
|
|
|
var name = bundle.getString("name")
|
|
|
- var province_code = bundle.getString("province_code")
|
|
|
- var city_code = bundle.getString("city_code")
|
|
|
- var area_code = bundle.getString("area_code")
|
|
|
if (type == 1) {
|
|
|
+
|
|
|
+ area_out = bundle.getString("area_code")
|
|
|
+ province_out = bundle.getString("province_code")
|
|
|
+ city_out = bundle.getString("city_code")
|
|
|
+
|
|
|
binding.viewOut.tvCity.text = name
|
|
|
} else {
|
|
|
+ area_in = bundle.getString("area_code")
|
|
|
+ province_in = bundle.getString("province_code")
|
|
|
+ city_in = bundle.getString("city_code")
|
|
|
+
|
|
|
binding.viewEnter.tvCity.text = name
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- return
|
|
|
+ return
|
|
|
|
|
|
}
|
|
|
|
|
|
- if( MIntentAction.REQUEST_CODE_ONE==requestCode && resultCode == Activity.RESULT_OK){
|
|
|
+ if (MIntentAction.REQUEST_CODE_ONE == requestCode && resultCode == Activity.RESULT_OK) {
|
|
|
val bundle = data!!.extras
|
|
|
- if(null!=bundle){
|
|
|
- var item=bundle.getSerializable("item") as AddressBean
|
|
|
+ if (null != bundle) {
|
|
|
+ var item = bundle.getSerializable("item") as AddressBean
|
|
|
//todo
|
|
|
- if(type==1){
|
|
|
- binding.viewOut.tvCity.text=item.province?.name+ item.city?.name+item.area?.name
|
|
|
+ if (type == 1) {
|
|
|
+ binding.viewOut.tvCity.text = item.province?.name + item.city?.name + item.area?.name
|
|
|
binding.viewOut.etDetailedAddress.setText(item.address)
|
|
|
- binding.viewOut.tvChoseTime.text=item.create_time
|
|
|
+ binding.viewOut.tvChoseTime.text = item.create_time
|
|
|
binding.viewOut.etName.setText(item.name)
|
|
|
binding.viewOut.etPhone.setText(item.mobile)
|
|
|
|
|
|
var province_code = item.province?.code
|
|
|
var city_code = item.city?.code
|
|
|
- var area_code =item.area?.code
|
|
|
- }else{
|
|
|
+ var area_code = item.area?.code
|
|
|
+ } else {
|
|
|
|
|
|
- binding.viewEnter.tvCity.text=item.province?.name+ item.city?.name+item.area?.name
|
|
|
+ binding.viewEnter.tvCity.text = item.province?.name + item.city?.name + item.area?.name
|
|
|
binding.viewEnter.etDetailedAddress.setText(item.address)
|
|
|
- binding.viewEnter.tvChoseTime.text=item.create_time
|
|
|
+ binding.viewEnter.tvChoseTime.text = item.create_time
|
|
|
binding.viewEnter.etName.setText(item.name)
|
|
|
binding.viewEnter.etPhone.setText(item.mobile)
|
|
|
|
|
|
var province_code = item.province?.code
|
|
|
var city_code = item.city?.code
|
|
|
- var area_code =item.area?.code
|
|
|
+ var area_code = item.area?.code
|
|
|
|
|
|
}
|
|
|
|
|
@@ -365,7 +578,6 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
@@ -411,15 +623,29 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
|
|
|
var latitude = bean.latitude
|
|
|
var longitude = bean.longitude
|
|
|
if (type == 2) {
|
|
|
+
|
|
|
+ lat_in = bean.latitude
|
|
|
+ lng_in = bean.longitude
|
|
|
+ area_in = bean.areacode
|
|
|
+ province_in = bean.areacode.substring(0, 2) + "0000"
|
|
|
+ city_in = bean.areacode.substring(0, 4) + "00"
|
|
|
+
|
|
|
binding.viewEnter.etDetailedAddress.setText(bean.position)
|
|
|
binding.viewEnter.tvCity.text = bean.provincename + bean.cityname + bean.areaname
|
|
|
} else {
|
|
|
+
|
|
|
+ lat_out = bean.latitude
|
|
|
+ lng_out = bean.longitude
|
|
|
+ area_out = bean.areacode
|
|
|
+ province_out = bean.areacode.substring(0, 2) + "0000"
|
|
|
+ city_out = bean.areacode.substring(0, 4) + "00"
|
|
|
+
|
|
|
+
|
|
|
binding.viewOut.etDetailedAddress.setText(bean.position)
|
|
|
binding.viewOut.tvCity.text = bean.provincename + bean.cityname + bean.areaname
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|