diff --git a/app/build.gradle b/app/build.gradle index b2e1062..4dbca01 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { // minSdkVersion 26 minSdkVersion 21 targetSdkVersion 25 - versionCode 30010 - versionName "3.0.10" + versionCode 30100 + versionName "3.1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { @@ -114,7 +114,7 @@ android { buildConfigField "String", "WS_URL", '"wss://oa.live.educlouddata.com/ws2api/"' applicationIdSuffix ".live" buildConfigField "String", "MP_ID",'"2"' - buildConfigField "String", "ENV_NAME",'"kz"' + buildConfigField "String", "ENV_NAME",'"qbj"' } yzx_test { diff --git a/app/src/main/java/com/yzx/escreen/MainActivity.kt b/app/src/main/java/com/yzx/escreen/MainActivity.kt index 6b8bfbf..df2e767 100644 --- a/app/src/main/java/com/yzx/escreen/MainActivity.kt +++ b/app/src/main/java/com/yzx/escreen/MainActivity.kt @@ -34,7 +34,6 @@ import com.yzx.escreen.activity.LoginActivity import com.yzx.escreen.activity.base.BaseActivity import com.yzx.escreen.config.Config import com.yzx.escreen.config.RefreshToken -import com.yzx.escreen.fragment.ChangeFragment import com.yzx.escreen.fragment.HomeFragment import com.yzx.escreen.fragment.SettingFragment import com.yzx.escreen.fragment.VisitorFragment @@ -144,7 +143,7 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus } val tabData = arrayListOf() tabData.add(TabEntity("学生请假", R.mipmap.leave_select, R.mipmap.leave_unselect)) - tabData.add(TabEntity("学籍异动", R.mipmap.change_select, R.mipmap.change_unselect)) +// tabData.add(TabEntity("学籍异动", R.mipmap.change_select, R.mipmap.change_unselect)) tabData.add(TabEntity("访客管理", R.mipmap.visitor_select, R.mipmap.visitor_unselect)) // tabData.add(TabEntity("我的", R.mipmap.my_select, R.mipmap.my_unselect)) tabData.add(TabEntity("设置", R.mipmap.setting_select, R.mipmap.setting)) @@ -650,15 +649,15 @@ class HomePagerAdapter(act: AppCompatActivity) : FragmentStateAdapter(act) { return HomeFragment.getNewInstance() } - 1 -> { - return ChangeFragment.getNewInstance() - } +// 1 -> { +// return ChangeFragment.getNewInstance() +// } - 2 -> { + 1 -> { return VisitorFragment.getNewInstance() } - 3 -> { + 2 -> { return SettingFragment.getNewInstance() } } diff --git a/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt b/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt index e41c185..ad9b861 100644 --- a/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt +++ b/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt @@ -61,6 +61,7 @@ class HomeFragment : BaseFragment(), HomeView, private val statusBtnList = mutableListOf() var keyword: String = "" var status: String = "" + var add_time: String = "today" private var isLoading = false private val mShowList = mutableListOf() private val mShowDialogList = mutableListOf() @@ -87,17 +88,13 @@ class HomeFragment : BaseFragment(), HomeView, preTxtBtn.setOnClickListener { pre() } nextTxtBtn.setOnClickListener { next() } allBtn.setOnClickListener { changeStatus(0) } - status1Btn.setOnClickListener { changeStatus(1) } - status2Btn.setOnClickListener { changeStatus(2) } - status3Btn.setOnClickListener { changeStatus(3) } - status4Btn.setOnClickListener { changeStatus(4) } - status5Btn.setOnClickListener { changeStatus(5) } + yesterday.setOnClickListener { changeStatus(2) } + last7Days.setOnClickListener { changeStatus(3) } + today.setOnClickListener { changeStatus(1) } statusBtnList.add(allBtn) - statusBtnList.add(status1Btn) - statusBtnList.add(status2Btn) - statusBtnList.add(status3Btn) - statusBtnList.add(status4Btn) - statusBtnList.add(status5Btn) + statusBtnList.add(today) + statusBtnList.add(yesterday) + statusBtnList.add(last7Days) keywordInput.setOnKeyListener { _, keyCode, _ -> if (!isLoading) { if (keyCode == KeyEvent.KEYCODE_ENTER) { @@ -117,9 +114,9 @@ class HomeFragment : BaseFragment(), HomeView, var lastClickTime = TimeUtils.getNowMills() mAdapter.setOnItemClickListener { adapter, view, position -> val curr = TimeUtils.getNowMills() - if(curr - lastClickTime > 500){ + if (curr - lastClickTime > 500) { lastClickTime = curr - LogUtils.d("获取详情开始",TimeUtils.getNowMills(),mAdapter.getItem(position).id) + LogUtils.d("获取详情开始", TimeUtils.getNowMills(), mAdapter.getItem(position).id) showLayoutLoading() mPresenter?.getDetail(mAdapter.getItem(position).id) } @@ -128,13 +125,14 @@ class HomeFragment : BaseFragment(), HomeView, mAdapter.setOnItemChildClickListener { adapter, view, position -> LogUtils.d("setOnItemChildClickListener", position) val curr = TimeUtils.getNowMills() - if(curr - lastClickTime > 500){ + if (curr - lastClickTime > 500) { lastClickTime = curr when (view.id) { R.id.cancelBtn -> { mCancelItem = mAdapter.getItem(position) showCancelDialog() } + R.id.faceEmpty -> { showLayoutLoading() mPresenter?.getDetail(mAdapter.getItem(position).id) @@ -185,7 +183,7 @@ class HomeFragment : BaseFragment(), HomeView, showLayoutLoading() initData() } - changeStatusBtn(0) + changeStatusBtn(1) loadingLayout.setOnClickListener { //do nothing } @@ -193,16 +191,61 @@ class HomeFragment : BaseFragment(), HomeView, showLayoutLoading() initData() } + filterBtn.setOnClickListener { + showFilterDialog(this.status) + } } - - private fun showLayoutLoading(){ + + private fun showLayoutLoading() { loadingLayout.visibility = View.VISIBLE } - - private fun hideLayoutLoading(){ + + private fun hideLayoutLoading() { loadingLayout.visibility = View.GONE } + @SuppressLint("SetTextI18n") + private fun showFilterDialog(status: String) { + var idx = if (status == "") { + 0 + } else { + status.toInt() + } + val dialogVacation = BaseDialog(act, R.style.BaseDialog, R.layout.dialog_time_filter) + val btns = mutableListOf() + btns.add(dialogVacation.find(R.id.allBtn)) + btns.add(dialogVacation.find(R.id.status1Btn)) + btns.add(dialogVacation.find(R.id.status2Btn)) + btns.add(dialogVacation.find(R.id.status3Btn)) + btns.add(dialogVacation.find(R.id.status4Btn)) + btns.add(dialogVacation.find(R.id.status5Btn)) + btns.forEachIndexed { index, button -> + button.setOnClickListener { + btns.forEachIndexed { childIdx, btn -> + btn.isSelected = childIdx == index + } + idx = index + } + button.isSelected = index == idx + } + dialogVacation.find(R.id.submitBtn).setOnClickListener { + this.status = if (idx == 0) { + "" + } else { + "${idx}" + } + dialogVacation.hide() + showLayoutLoading() + initData() + } + dialogVacation.find(R.id.closeBtn).setOnClickListener { + dialogVacation.hide() + } + //处理弹窗显示 + dialogVacation.show() + dialogVacation.hideNavigationBar() + } + @SuppressLint("SetTextI18n") private fun showCancelDialog() { val dialogVacation = BaseDialog(act, R.style.BaseDialog, R.layout.dialog_vacation) @@ -302,10 +345,26 @@ class HomeFragment : BaseFragment(), HomeView, return } changeStatusBtn(status) - this.status = if (status == 0) { - "" - } else { - "${status}" + this.add_time = when (status) { + 0 -> { + "" + } + + 1 -> { + "today" + } + + 2 -> { + "yesterday" + } + + 3 -> { + "last7Days" + } + + else -> { + "" + } } showLayoutLoading() initData() @@ -317,7 +376,7 @@ class HomeFragment : BaseFragment(), HomeView, if (NetworkUtils.isConnected()) { showEmpty(1) isLoading = true - mPresenter?.getLeaveList(mPager.page_no, keyword, status) + mPresenter?.getLeaveList(mPager.page_no, keyword, status, add_time) } else { showEmpty(2) } @@ -336,6 +395,7 @@ class HomeFragment : BaseFragment(), HomeView, this.QMUIEmptyView.setTitleText("数据加载中") } } + 2 -> { mAdapter.setEmptyView(R.layout.layout_loading) mAdapter.emptyLayout?.apply { @@ -344,6 +404,7 @@ class HomeFragment : BaseFragment(), HomeView, } } } + 3 -> { mAdapter.setEmptyView(R.layout.layout_empty) } @@ -356,7 +417,7 @@ class HomeFragment : BaseFragment(), HomeView, return } isLoading = true - mPresenter?.getLeaveList(mPager.page_no, keyword, status) + mPresenter?.getLeaveList(mPager.page_no, keyword, status, add_time) } private fun pre() { @@ -368,7 +429,7 @@ class HomeFragment : BaseFragment(), HomeView, } else { isLoading = true showLayoutLoading() - mPresenter?.getLeaveList(mPager.page_no - 1, keyword, status) + mPresenter?.getLeaveList(mPager.page_no - 1, keyword, status, add_time) } } @@ -381,7 +442,7 @@ class HomeFragment : BaseFragment(), HomeView, } else { isLoading = true showLayoutLoading() - mPresenter?.getLeaveList(mPager.page_no + 1, keyword, status) + mPresenter?.getLeaveList(mPager.page_no + 1, keyword, status, add_time) } } @@ -390,7 +451,7 @@ class HomeFragment : BaseFragment(), HomeView, @SuppressLint("SetTextI18n") override fun onLeaveListSuccess(list: MutableList, pager: Pager) { pageTv?.apply { - if(isRefresh){ + if (isRefresh) { toast("刷新成功!") isRefresh = false } @@ -433,7 +494,7 @@ class HomeFragment : BaseFragment(), HomeView, override fun onLeaveListError(error: String) { isLoading = false hideLayoutLoading() - if(isRefresh){ + if (isRefresh) { toast("刷新失败,请重试!") isRefresh = false } @@ -458,7 +519,7 @@ class HomeFragment : BaseFragment(), HomeView, } else { mShowList.add(detail) } - LogUtils.d("获取详情结束",TimeUtils.getNowMills(),detail.id) + LogUtils.d("获取详情结束", TimeUtils.getNowMills(), detail.id) hideLayoutLoading() showLeaveDialog(detail) } @@ -477,7 +538,7 @@ class HomeFragment : BaseFragment(), HomeView, @Subscribe(threadMode = ThreadMode.MAIN) fun onMessageEvent(event: MessageEventAuto) { val list = event.list.filter { it.type == 0 }.toMutableList() - LogUtils.d("WebSocketClient-onMessageEvent",event) + LogUtils.d("WebSocketClient-onMessageEvent", event) if (list.isNotEmpty() && switchBtn.isChecked) { onLeaveIDsSuccess(list) } @@ -499,7 +560,7 @@ class HomeFragment : BaseFragment(), HomeView, list.forEachIndexed { index, leaveID -> pageTv.postDelayed({ - if(leaveID.id>0){ + if (leaveID.id > 0) { mPresenter?.getDetail(leaveID.id) } }, 500L * index) diff --git a/app/src/main/java/com/yzx/escreen/presenter/HomePresenter.kt b/app/src/main/java/com/yzx/escreen/presenter/HomePresenter.kt index 9f4b82e..f0a7cab 100644 --- a/app/src/main/java/com/yzx/escreen/presenter/HomePresenter.kt +++ b/app/src/main/java/com/yzx/escreen/presenter/HomePresenter.kt @@ -4,24 +4,65 @@ import com.blankj.utilcode.util.LogUtils import com.lzy.okgo.OkGo import com.lzy.okgo.model.Response import com.yzx.escreen.config.Config -import com.yzx.escreen.model.* -import com.yzx.escreen.presenter.base.* import com.yzx.escreen.config.YzxInterface +import com.yzx.escreen.model.LeaveID +import com.yzx.escreen.model.Pager +import com.yzx.escreen.model.StuLeave +import com.yzx.escreen.model.User +import com.yzx.escreen.model.Vacation +import com.yzx.escreen.presenter.base.BasePresenter +import com.yzx.escreen.presenter.base.IView +import com.yzx.escreen.presenter.base.JsonCallBack +import com.yzx.escreen.presenter.base.SimpleResponse +import com.yzx.escreen.presenter.base.YzxResponse +import java.util.Calendar class HomePresenter(view: HomeView) : BasePresenter(view) { - fun getLeaveList(pageNo: Int, keyword: String, status: String) { + fun getLeaveList(pageNo: Int, keyword: String, status: String, add_time: String) { if(User.getUser().token.isEmpty()){ return } + val calendar = Calendar.getInstance() + var endTime: Long =0 + var startTime: Long =0 + when (add_time) { + "today" -> { + calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),23,59,59) + endTime = calendar.timeInMillis/1000 // 当前时间戳 + calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),0,0,0) + startTime = calendar.timeInMillis/1000 // 开始时间戳 + } + "yesterday" -> { + calendar.add(Calendar.DAY_OF_YEAR, -1) // 将日期往前推1天 + calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),23,59,59) + endTime = calendar.timeInMillis/1000 // 当前时间戳 + calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),0,0,0) + startTime = calendar.timeInMillis/1000 // 开始时间戳 + } + "last7Days" -> { + calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),23,59,59) + endTime = calendar.timeInMillis/1000 // 当前时间戳 + calendar.add(Calendar.DAY_OF_YEAR, -6) // 将日期往前推6天 + calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),0,0,0) + startTime = calendar.timeInMillis/1000 // 近七天的开始时间戳 + } + } + val params = HashMap() + params["keyword"] = keyword + params["status"] = status + params["page_size"] = "6" + params["page_no"] = "$pageNo" + if(add_time!=""){ + params["start_time"] = "$startTime" + params["end_time"] = "$endTime" + } + val url = "${Config.BASE_URL}${YzxInterface.INTERFACE_GET_STU_LEAVE_LIST}" OkGo.post>(url) .tag(this) - .params("keyword", keyword) - .params("status", status) - .params("page_size", 6) - .params("page_no", pageNo) + .params(params) .execute(object : JsonCallBack>() { diff --git a/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt b/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt index 95c93ba..a224bb5 100644 --- a/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt +++ b/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt @@ -14,7 +14,7 @@ fun ImageView.setSrc(identity: String, key: String) { var url = "https://${identity.ifEmpty { "filea" }}.oa.qbjjyyun.net/edufile/imageView?uniqueKey=${key}" if ("cszxy" == Config.ENV_NAME || "kz" == Config.ENV_NAME) { - url = "https://filea.educlouddata.com/edufile/imageView?uniqueKey=${key}" + url = "https://file.educlouddata.com/edufile/imageView?uniqueKey=${key}" } Glide.with(this) .load(url) @@ -27,7 +27,7 @@ fun String.getImgUrl(key: String): String { var url = "https://${this.ifEmpty { "filea" }}.oa.qbjjyyun.net/edufile/imageView?uniqueKey=${key}" if ("cszxy" == Config.ENV_NAME || "kz" == Config.ENV_NAME) { - url = "https://filea.educlouddata.com/edufile/imageView?uniqueKey=${key}" + url = "https://file.educlouddata.com/edufile/imageView?uniqueKey=${key}" } return url } diff --git a/app/src/main/res/layout/dialog_time_filter.xml b/app/src/main/res/layout/dialog_time_filter.xml new file mode 100644 index 0000000..de34839 --- /dev/null +++ b/app/src/main/res/layout/dialog_time_filter.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index cf5056b..1b2b144 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -98,41 +98,25 @@ app:qmui_borderColor="@color/s_app_color_status_border" /> - - - - @@ -142,6 +126,16 @@ android:layout_height="1px" android:layout_weight="1" /> + +