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 = 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 = 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() } } }