You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

604 lines
25 KiB
Kotlin

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.rehome.zhdcoa.weiget
import android.app.Dialog
import android.content.Context
import android.content.Intent
import android.text.TextUtils
import android.view.Gravity
import android.view.View
import android.view.Window
import android.view.WindowManager
import android.widget.AdapterView
import com.rehome.zhdcoa.App
import com.rehome.zhdcoa.R
import com.rehome.zhdcoa.adapter.GridViewAdapter
import com.rehome.zhdcoa.bean.GridItem
import com.rehome.zhdcoa.ui.activity.AbActivity
import com.rehome.zhdcoa.ui.activity.ActivityFactoryWorkerInfo
import com.rehome.zhdcoa.ui.activity.ActivityMZDH
import com.rehome.zhdcoa.ui.activity.ActivitySHYK
import com.rehome.zhdcoa.ui.activity.ActivityWdhy
import com.rehome.zhdcoa.ui.activity.Activity_Dzdt
import com.rehome.zhdcoa.ui.activity.Activity_YJYAJX
import com.rehome.zhdcoa.ui.activity.ApplyChangeShiftActivity
import com.rehome.zhdcoa.ui.activity.ApplyConferenceActivity
import com.rehome.zhdcoa.ui.activity.ApplyDinnerActivity
import com.rehome.zhdcoa.ui.activity.ApplyLeaveActivity
import com.rehome.zhdcoa.ui.activity.ApplyReceiveActivity
import com.rehome.zhdcoa.ui.activity.ApplySuppliesActivity
import com.rehome.zhdcoa.ui.activity.ApplyTakeOutActivity
import com.rehome.zhdcoa.ui.activity.AttendanceCheckActivity
import com.rehome.zhdcoa.ui.activity.BfwwActivity
import com.rehome.zhdcoa.ui.activity.ClcrzsqcxActivity
import com.rehome.zhdcoa.ui.activity.ConferenceAudioActivity
import com.rehome.zhdcoa.ui.activity.ConferenceDateActivity
import com.rehome.zhdcoa.ui.activity.DJExamOnlineActivity
import com.rehome.zhdcoa.ui.activity.DJPeixunActivity
import com.rehome.zhdcoa.ui.activity.DJPxKjglActivity
import com.rehome.zhdcoa.ui.activity.DJTimeActivity
import com.rehome.zhdcoa.ui.activity.DagerEnterApplyActivity
import com.rehome.zhdcoa.ui.activity.ExamPracticeActivity
import com.rehome.zhdcoa.ui.activity.GgzxActivity
import com.rehome.zhdcoa.ui.activity.GzpActivity
import com.rehome.zhdcoa.ui.activity.GzqkckActivity
import com.rehome.zhdcoa.ui.activity.GzqksbActivity
import com.rehome.zhdcoa.ui.activity.HmActivity
import com.rehome.zhdcoa.ui.activity.JcyrsqActivity
import com.rehome.zhdcoa.ui.activity.LsgkActivity
import com.rehome.zhdcoa.ui.activity.MyTaskActivity
import com.rehome.zhdcoa.ui.activity.OrdinaryVisitActivity
import com.rehome.zhdcoa.ui.activity.OthersTaskActivity
import com.rehome.zhdcoa.ui.activity.SisActivity
import com.rehome.zhdcoa.ui.activity.SisdtDataActivity
import com.rehome.zhdcoa.ui.activity.TaskCountActivity
import com.rehome.zhdcoa.ui.activity.TaskDateActivity
import com.rehome.zhdcoa.ui.activity.TrainStudyActivity
import com.rehome.zhdcoa.ui.activity.WorkRiskListActivity
import com.rehome.zhdcoa.ui.activity.XfssqActivity
import com.rehome.zhdcoa.ui.activity.XmjdActivity
import com.rehome.zhdcoa.ui.activity.YjynMainActivity
import com.rehome.zhdcoa.ui.activity.ZddbActivity
import com.rehome.zhdcoa.ui.activity.ZddbgzActivity
import com.rehome.zhdcoa.ui.activity.ZdqyActivity
import com.rehome.zhdcoa.ui.activity.ZdqycwActivity
import com.rehome.zhdcoa.ui.activity.ZdqylsActivity
import com.rehome.zhdcoa.ui.activity.ZxDjtpActivity
import com.rehome.zhdcoa.ui.activity.ZxtpActivity
/**
* Created by HuangWenFei
* 创建日期2024-09-25 14:13
* 描述代码改成kotlin,每个模块弹窗,首页选择模块的对话框
*/
class GridViewDialog(context:Context) : Dialog(context) {
companion object{//伴生对象是可以指定名字的,不过一般都省略掉。
val TAG_VISIT:String = "TAG_VISIT";//来访
val TAG_MEET:String = "TAG_MEET";//会议
val TAG_DINNER:String = "TAG_DINNER";//用餐
val TAG_TASK:String = "TAG_TASK";//任务
val TAG_SCHEDULE:String = "TAG_SCHEDULE";//日程
val TAG_CHECK:String = "TAG_CHECK";//考勤
val TAG_OFFICE:String = "TAG_OFFICE";//办公用品
val TAG_PEIXUN:String = "TAG_PEIXUN";//培训
val TAG_PDANGJIAN:String = "TAG_DANGJIAN";//党建
val TAG_GONGHUI:String = "TAG_GONGHUI";//工会
val TAG_JD:String = "TAG_JD";//生产过程监督
val TAG_YJYA:String = "TAG_YJYA";//应急预案
val TAG_LSGK:String = "TAG_LSGK";//临时管控
val TAG_AF:String = "TAG_AF";//安防
}
var results: Array<String> = App.getInstance().userInfo.permissionsResult.split(";".toRegex())
.dropLastWhile { it.isEmpty() }
.toTypedArray()
private var TAG = ""
private lateinit var gv: AutoGridView
private var adapter: GridViewAdapter? = null
private var datas: MutableList<GridItem> = mutableListOf()
constructor(context:Context,tag:String) : this(context){
requestWindowFeature(Window.FEATURE_NO_TITLE)
window!!.setBackgroundDrawableResource(android.R.color.transparent)
setContentView(R.layout.layout_gridview_dialog)
gv = findViewById(R.id.gv)
val window = window
val lp = window!!.attributes
lp.width = (getScreenWidth(context)) * 2 / 3
window.setGravity(Gravity.CENTER)
TAG = tag
if (TAG == TAG_AF) {
lp.width = (getScreenWidth(context)) * 4 / 5
gv!!.numColumns = 3
} else {
lp.width = (getScreenWidth(context)) * 2 / 3
gv!!.numColumns = 2
}
initDatas()
if (datas != null) {
setAdapter()
}
}
//获取屏幕宽度
fun getScreenWidth(context: Context): Int {
val manager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
val display = manager.defaultDisplay
return display.width
}
private fun getShowString(type: String): String? {
for (result in results) {
if (TextUtils.equals(type, result)) {
return "show"
}
}
return null
}
private fun initDatas() {
datas = ArrayList()
when (TAG) {
TAG_VISIT -> {
datas.add(
GridItem(
"普通来访",
R.drawable.icon_visit,
getShowString("OrdinaryVisit_SH")
)
)
datas.add(
GridItem(
"接待来访",
R.drawable.icon_reception,
getShowString("ReceiveVisit")
)
)
}
TAG_MEET -> {
datas.add(
GridItem(
"会议管理",
R.drawable.icon_meet,
getShowString("ApplyConference")
)
)
datas.add(
GridItem(
"会议一览表",
R.drawable.icon_meet_date,
getShowString("ApplyConference_YLB")
)
)
datas.add(
GridItem(
"会议录音",
R.drawable.icon_audio,
getShowString("MeetingRecord")
)
)
datas.add(
GridItem(
"我的会议",
R.drawable.icon_wdhy,
getShowString("MeetingRecord")
)
)
}
TAG_DINNER -> {
datas.add(
GridItem(
"用餐管理",
R.drawable.icon_dinner,
getShowString("DinnerApply")
)
)
datas.add(
GridItem(
"送餐订单",
R.drawable.icon_take_out,
getShowString("OrderManage")
)
)
}
TAG_TASK -> {
datas.add(GridItem("本人任务", R.drawable.icon_task, getShowString("MyTask")))
datas.add(
GridItem(
"他人任务",
R.drawable.icon_task_other,
getShowString("OtherTask")
)
)
}
TAG_SCHEDULE -> {
datas.add(GridItem("任务日程", R.drawable.icon_date, getShowString("EveryDayTask")))
datas.add(
GridItem(
"任务统计",
R.drawable.icon_task_count,
getShowString("JobStatistics")
)
)
}
TAG_CHECK -> {
datas.add(GridItem("请假申请", R.drawable.icon_check, getShowString("YGKQGL_SQGL")))
datas.add(
GridItem(
"调班申请",
R.drawable.icon_change_shift,
getShowString("RGKQ_RGKQTBSQ")
)
)
datas.add(GridItem("考勤查询", R.drawable.icon_query, getShowString("RGKQ_KQZZCX")))
}
TAG_OFFICE -> datas.add(
GridItem(
"办公用品申请",
R.drawable.icon_office,
getShowString("BGSWPLY")
)
)
TAG_PEIXUN -> {
datas.add(
GridItem(
"学习中心",
R.drawable.icon_px,
getShowString("STUDYXT_ZRGL_ZXXX")
)
)
//datas.add(new GridItem("课件管理", R.drawable.icon_kjgl, getShowString("STUDYXT_ZRGL_KJGL")));
datas.add(
GridItem(
"考试练习",
R.drawable.icon_ks,
getShowString("STUDYXT_KSZX_ZXKS")
)
)
datas.add(
GridItem(
"公告中心",
R.drawable.icon_ggzx,
getShowString("GGZXManage_GGZX")
)
)
}
TAG_PDANGJIAN -> {
datas.add(GridItem("党建投票", R.drawable.icon_zxtp, getShowString("YGKQGL_SQGL")))
datas.add(
GridItem(
"三会一课",
R.drawable.icon_qdmeet,
getShowString("DJSHYK") //DJSHYK Branch_PartyMemberMeet
)
)
datas.add(
GridItem(
"党建学习",
R.drawable.icon_px,
getShowString("STUDYXT_ZRGL_ZXXX_PS")
)
)
datas.add(
GridItem(
"党建课件",
R.drawable.icon_kjgl,
getShowString("STUDYXT_ZRGL_KJGL_PS")//Branch_PartyClass //STUDYXT_ZRGL_KJGL_PS
)
)
datas.add(GridItem("党龄", R.drawable.icon_dj, getShowString("YGKQGL_SQGL")))
}
TAG_GONGHUI -> {
datas.add(GridItem("在线投票", R.drawable.icon_zxtp, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("民主对话", R.drawable.icon_mzdh, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("帮扶慰问", R.drawable.icon_bfww, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("考试练习", R.drawable.icon_ks, getShowString("YGKQGL_SQGL")))
}
TAG_JD -> {
datas.add(
GridItem(
"项目进度跟踪",
R.drawable.icon_xmjd,
getShowString("YGKQGL_SQGL")
)
)
datas.add(
GridItem(
"警报记录汇总",
R.drawable.icon_sis,
getShowString("YGKQGL_SQGL")
)
)
datas.add(
GridItem(
"机组生产实况",
R.drawable.icon_sis,
getShowString("YGKQGL_SQGL")
)
)
datas.add(GridItem("电子地图", R.drawable.icon_dzdt, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("工作情况上报", R.drawable.icon1, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("工作情况", R.drawable.icon4, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("应急预案", R.drawable.icon_yjya, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("临时管控", R.drawable.icon_lsgk, getShowString("YGKQGL_SQGL")))
datas.add(
GridItem(
"重点工作督办",
R.drawable.icon_gzdb,
getShowString("YGKQGL_SQGL")
)
)
datas.add(
GridItem(
"重点工作跟踪",
R.drawable.icon_gzgz,
getShowString("YGKQGL_SQGL")
)
)
datas.add(
GridItem(
"消防水申请",
R.drawable.icon_clcrz,
getShowString("YGKQGL_SQGL")
)
)
datas.add(
GridItem(
"危化品入厂申请",
R.drawable.dager_logo,
getShowString("YGKQGL_SQGL")
)
)
}
TAG_AF -> {
datas.add(
GridItem(
"厂内人员信息",
R.drawable.icon13,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
datas.add(
GridItem(
"作业风险清单",
R.drawable.icon_travel,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
datas.add(GridItem("安防报警", R.drawable.baojing, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("豁免设置", R.drawable.huomian, getShowString("YGKQGL_SQGL")))
datas.add(GridItem("工作票", R.drawable.icon_xmjd, getShowString("YGKQGL_SQGL")))
datas.add(
GridItem(
"常维信息",
R.drawable.icon_task,
getShowString("ZNAF_EMPAEAR_MANAGE")
)
)
datas.add(
GridItem(
"临时人员授权",
R.drawable.icon_wdhy,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
datas.add(
GridItem(
"常维人员授权",
R.drawable.icon_wdhy,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
datas.add(
GridItem(
"车辆出入证",
R.drawable.icon_clcrz,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
//datas.add(new GridItem("消防水申请", R.drawable.icon_clcrz, getShowString("ZNAF_ZYQYLSJRRY")));
datas.add(
GridItem(
"进厂人员申请",
R.drawable.icon_visit,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
//datas.add(new GridItem("危化品入厂申请", R.drawable.dager_logo, getShowString("ZNAF_ZYQYLSJRRY")));
datas.add(
GridItem(
"应急预案",
R.drawable.icon_yjya,
getShowString("ZNAF_ZYQYLSJRRY")
)
)
}
}
}
private fun setAdapter() {
if (adapter == null) {
adapter = GridViewAdapter(context, datas)
gv.adapter = adapter
gv.onItemClickListener =
AdapterView.OnItemClickListener { parent: AdapterView<*>?, view: View?, position: Int, id: Long ->
var intent: Intent? = null
when (TAG) {
TAG_VISIT -> intent = if (position == 0) {
Intent(context, OrdinaryVisitActivity::class.java)
} else {
Intent(context, ApplyReceiveActivity::class.java)
}
TAG_MEET -> if (position == 0) {
intent = Intent(context, ApplyConferenceActivity::class.java)
} else if (position == 1) {
intent = Intent(context, ConferenceDateActivity::class.java)
} else if (position == 2) {
intent = Intent(context, ConferenceAudioActivity::class.java)
} else if (position == 3) {
intent = Intent(context, ActivityWdhy::class.java)
}
TAG_DINNER -> if (position == 0) {
intent = Intent(context, ApplyDinnerActivity::class.java)
} else if (position == 1) {
intent = Intent(context, ApplyTakeOutActivity::class.java)
}
TAG_TASK -> intent = if (position == 0) {
Intent(context, MyTaskActivity::class.java)
} else {
Intent(context, OthersTaskActivity::class.java)
}
TAG_SCHEDULE -> intent = if (position == 0) {
Intent(context, TaskDateActivity::class.java)
} else {
Intent(context, TaskCountActivity::class.java)
}
TAG_CHECK -> if (position == 0) {
intent = Intent(context, ApplyLeaveActivity::class.java)
} else if (position == 1) {
intent = Intent(context, ApplyChangeShiftActivity::class.java)
} else if (position == 2) {
intent = Intent(context, AttendanceCheckActivity::class.java)
} else {
//陈坚标主任提出 APP里把 管理 -> 考勤/出差 图标里的这个文字把 考勤/出差的文字/出差去掉
// 点击这个按钮进去,出差申请 禁掉, 现在处理结果:出差申请图标隐藏起来,和苹果端保持一致
//intent = new Intent(getContext(), ApplyTravelActivity.class);
}
TAG_OFFICE -> intent =
Intent(context, ApplySuppliesActivity::class.java)
TAG_PEIXUN -> if (position == 0) {
//学习中心
intent = Intent(context, TrainStudyActivity::class.java)
} else if (position == 1) {
//课件管理
//intent = new Intent(getContext(), PxKjglActivity.class);
//考试练习
intent = Intent(context, ExamPracticeActivity::class.java)
} else if (position == 2) {
//公告中心
intent = Intent(context, GgzxActivity::class.java)
}
TAG_PDANGJIAN -> if (position == 0) {
intent = Intent(context, ZxDjtpActivity::class.java)
} else if (position == 1) {
intent = Intent(context, ActivitySHYK::class.java)
} else if (position == 2) {
intent = Intent(context, DJPeixunActivity::class.java)
} else if (position == 3) {
intent = Intent(context, DJPxKjglActivity::class.java)
} else if (position == 4) {
intent = Intent(context, DJTimeActivity::class.java)
}
TAG_GONGHUI -> if (position == 0) {
intent = Intent(context, ZxtpActivity::class.java)
} else if (position == 1) {
intent = Intent(context, ActivityMZDH::class.java)
} else if (position == 2) {
intent = Intent(context, BfwwActivity::class.java)
} else if (position == 3) {
intent = Intent(context, DJExamOnlineActivity::class.java)
}
TAG_JD -> if (position == 0) {
intent = Intent(context, XmjdActivity::class.java)
} else if (position == 1) {
intent = Intent(context, SisdtDataActivity::class.java)
} else if (position == 2) {
intent = Intent(context, SisActivity::class.java)
} else if (position == 3) {
intent = Intent(context, Activity_Dzdt::class.java)
} else if (position == 4) {
intent = Intent(context, GzqksbActivity::class.java)
} else if (position == 5) {
intent = Intent(context, GzqkckActivity::class.java)
} else if (position == 6) {
intent = Intent(context, YjynMainActivity::class.java)
} else if (position == 7) {
intent = Intent(context, LsgkActivity::class.java)
} else if (position == 8) {
intent = Intent(context, ZddbActivity::class.java)
} else if (position == 9) {
intent = Intent(context, ZddbgzActivity::class.java)
} else if (position == 10) {
//消防水申请
intent = Intent(context, XfssqActivity::class.java)
} else if (position == 11) {
//危化品入厂申请
intent = Intent(context, DagerEnterApplyActivity::class.java)
}
TAG_AF -> if (position == 0) {
//当前厂内人员信息
intent = Intent(context, ActivityFactoryWorkerInfo::class.java)
} else if (position == 1) {
//作业风险清单
intent = Intent(context, WorkRiskListActivity::class.java)
} else if (position == 2) {
//安防报警
intent = Intent(context, AbActivity::class.java)
} else if (position == 3) {
//豁免设置
intent = Intent(context, HmActivity::class.java)
} else if (position == 4) {
//工作票
intent = Intent(context, GzpActivity::class.java)
} else if (position == 5) {
//常维信息
intent = Intent(context, ZdqycwActivity::class.java)
} else if (position == 6) {
//临时人员授权
intent = Intent(context, ZdqylsActivity::class.java)
} else if (position == 7) {
//常维人员授权
intent = Intent(context, ZdqyActivity::class.java)
} else if (position == 8) {
//车辆出入证
intent = Intent(context, ClcrzsqcxActivity::class.java)
} else if (position == 9) {
//进厂人员申请
intent = Intent(context, JcyrsqActivity::class.java)
} else if (position == 10) {
//应急预案
intent = Intent(context, Activity_YJYAJX::class.java)
}
}
if (intent != null) {
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
context.startActivity(intent)
}
dismiss()
}
} else {
adapter?.notifyDataSetChanged()
}
}
}