lmw
2023-06-13 adf8013576cbdd12e5ebea8ff7e32baf5d558b27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.kuanzhai.user.ui.charter
 
import android.app.Activity
import android.content.Intent
import androidx.core.os.bundleOf
import cn.sinata.xldutils.callPhone
import cn.sinata.xldutils.fragment.BaseFragment
import cn.sinata.xldutils.utils.isValidPhone
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.optString
import com.kuanzhai.user.KuanzhaiApplication
import com.kuanzhai.user.R
import com.kuanzhai.user.dialog.AlertDialog
import com.kuanzhai.user.dialog.SingleWheelDialog
import com.kuanzhai.user.interfaces.StringCallback
import com.kuanzhai.user.network.HttpManager
import com.kuanzhai.user.network.requestByF
import com.kuanzhai.user.ui.H5Activity
import com.kuanzhai.user.ui.MainActivity
import kotlinx.android.synthetic.main.fragment_charter.*
import org.jetbrains.anko.sdk27.coroutines.onClick
import org.jetbrains.anko.support.v4.startActivity
 
class CharterFragment:BaseFragment() {
    override fun contentViewId() = R.layout.fragment_charter
 
    private var carTypeId = 0 //车型
    private var min = 0 //最低价
    private var max = 0 //最高价
 
    private val days = arrayListOf("一天","两天","三天","四天","五天","六天","七天")
    private var day = 0
    private val mainActivity by lazy {
        activity as MainActivity
    }
    private val singleWheelDialog by lazy {
        val d = SingleWheelDialog()
        d.arguments = bundleOf("title" to "选择用车时长","data" to days)
        d.setCallback(object :StringCallback{
            override fun onRlt(rlt: String) {
                tv_duration.text = rlt
                day = days.indexOf(rlt)+1
                calculate()
            }
        })
        d
    }
 
    private val successDialog by lazy {
        val alertDialog = AlertDialog()
        alertDialog.arguments = bundleOf("msg" to "提交成功!我们将根据您的需求,与您取得联系,请您保持手机的畅通。")
        alertDialog.setDismissCallback(object :AlertDialog.OnDismiss{
            override fun onDismiss() {
                clearData()
            }
        })
        alertDialog
    }
 
 
    override fun onFirstVisibleToUser() {
 
        getPhone()
        tv_rule.onClick { getRule() }
 
 
        tv_duration.onClick {
            if (!singleWheelDialog.isAdded)
                singleWheelDialog.show(fragmentManager!!,"count")
        }
 
        tv_action.onClick {
            if (mainActivity.checkLogin()){
 
                if (day == 0){
                    myToast("请选择用车时长")
                    return@onClick
                }
                if (carTypeId == 0){
                    myToast("请选择车型")
                    return@onClick
                }
 
 
            }
        }
    }
 
    private fun getPhone(){
        HttpManager.queryPhones(KuanzhaiApplication.chooseCityCode).requestByF(this){ _, data->
            data?.filter { it.type == 3 }?.forEach {
                tv_phone.text = "旅游包车调度电话:%s".format(it.phone)
                tv_phone.onClick {_->
                    callPhone(it.phone)
                }
            }
        }
    }
 
    private fun getRule(){
        HttpManager.getH5(14).requestByF(this){_,data->
            data?.let {
                tv_rule.setOnClickListener {_->
                    startActivity<H5Activity>("title" to "包车规则","url" to it.optString("content"))
                }
            }
        }
    }
 
    /**
     * 计算价格
     */
    private fun calculate(){
        if (carTypeId!=0&&day!=0){
            tv_price.text = "预计价:¥%d-¥%d".format(min*day,max*day)
        }
    }
 
    private fun clearData(){
 
        tv_price.text = ""
        day = 0
        carTypeId = 0
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK&&data!=null){
 
        }
    }
}