From 86722aca20973a1e73d0a446c124eb6a5790496b Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 17 十二月 2024 09:34:17 +0800
Subject: [PATCH] 任务优化,工单状态修改优化

---
 Tiger.Business/SYS/Biz.SYS_MENU.cs |   99 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 69 insertions(+), 30 deletions(-)

diff --git a/Tiger.Business/SYS/Biz.SYS_MENU.cs b/Tiger.Business/SYS/Biz.SYS_MENU.cs
index db7a385..85b388d 100644
--- a/Tiger.Business/SYS/Biz.SYS_MENU.cs
+++ b/Tiger.Business/SYS/Biz.SYS_MENU.cs
@@ -29,7 +29,7 @@
                                         JoinType.Inner, p.USERGROUP_CODE == r.USERGROUP_CODE,
                                         JoinType.Inner, r.ROLE_CODE == m.ROLE_CODE,
                                         JoinType.Inner, m.FUNC_CODE == f.ID))
-                                .WhereIF(!string.IsNullOrEmpty(userid), (t, p, g, r, m, f) => t.USER_ID == userid && f.IS_USE =="1" && f.FUNC_TYPE != "2")
+                                .WhereIF(!string.IsNullOrEmpty(userid), (t, p, g, r, m, f) => t.USER_ID == userid && f.IS_USE == "1" && f.FUNC_TYPE != "2")
                                 .Select((t, p, g, r, m, f) => new SYS_MENU
                                 {
                                     ID = f.ID,
@@ -51,11 +51,13 @@
                                     UPDATE_USER = f.UPDATE_USER,
                                     UPDATE_TIME = f.UPDATE_TIME,
                                     SYMBOLIC_NAME = f.SYMBOLIC_NAME,
-                                    COMPONENT=f.COMPONENT,
-                                    CURRENTACTIVEMENU=f.CURRENTACTIVEMENU,
-                                    SHOW=f.SHOW,
-                                    IGNOREKEEPALIVE=f.IGNOREKEEPALIVE,
-                                    IGNOREAUTH = f.IGNOREAUTH
+                                    COMPONENT = f.COMPONENT,
+                                    CURRENTACTIVEMENU = f.CURRENTACTIVEMENU,
+                                    SHOW = f.SHOW,
+                                    IGNOREKEEPALIVE = f.IGNOREKEEPALIVE,
+                                    IGNOREAUTH = f.IGNOREAUTH,
+                                    BUTTON_TYPE = f.BUTTON_TYPE,
+                                    DO_METHOD = f.DO_METHOD,
                                 });
             var items = await query.Distinct().ToListAsync();
             List<SYS_MENU> entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PFUNC_CODE == rootCode); //"23858079-7241-4e64-b0cf-eb5dbe84a9d6"
@@ -67,10 +69,20 @@
                 menuItem.path = (item.PATH ?? "").StartsWith("/dashboard") ? "/dashboard" : $"{item.PATH}";
                 menuItem.name = item.FUNC_NAME;
                 menuItem.component = (item.PATH == null || item.PATH == "#") ? "LAYOUT" : item.COMPONENT;
+                if (item.FUNC_CLASS == "PDA")
+                {
+                    menuItem.pages = menuItem.component;
+                    menuItem.url = item.ICON_URL;
+                }
                 menuItem.meta = new();
                 menuItem.meta.icon = item.ICON_URL;  // item.ICON_URL;
                 menuItem.meta.orderNo = item.SEQ_NO;
                 menuItem.meta.title = item.FUNC_NAME;
+                menuItem.meta.menuId = item.ID;
+                menuItem.meta.menuCode = item.FUNC_CODE;
+                menuItem.btnType = item.BUTTON_TYPE;
+                menuItem.meta.btnType = item.BUTTON_TYPE;
+                menuItem.meta.doMethod = item.DO_METHOD;
                 if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                 {
                     menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
@@ -92,6 +104,8 @@
                 menuItem.show = item.SHOW;
                 menuItem.menuName = item.FUNC_NAME;
                 menuItem.status = item.IS_USE;
+                menuItem.btnType = item.BUTTON_TYPE;
+                menuItem.func_group = item.FUNC_GROUP;
                 menuItem.children = new();
                 GetMenuItem(items.ToList(), item.FUNC_CODE, ref menuItem);
                 data.Add(menuItem);
@@ -112,16 +126,16 @@
             SYS_MENU func = null;
             if (!string.IsNullOrEmpty(menuName))
             {
-                func = Biz.Db.Queryable<SYS_MENU>().Where(x=>x.FUNC_NAME == menuName).First();
+                string name = menuName.StartsWith("BS")?"BS": menuName;
+                func = Biz.Db.Queryable<SYS_MENU>().Where(x => x.FUNC_NAME == name).First();
             }
-            var items = await Biz.Db.Queryable<SYS_MENU>()
-                .WhereIF(!string.IsNullOrEmpty(status),q=>q.IS_USE == status)
-                .OrderBy(x => x.SEQ_NO)
-                .Distinct().ToListAsync();
-            //娌℃湁鏌ヨ鐨勬椂鍊�
-            if (func == null)
+            if (func != null)
             {
-                List<SYS_MENU> entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PFUNC_CODE == "0");
+                var items = await Biz.Db.Queryable<SYS_MENU>()
+                    .WhereIF(!string.IsNullOrEmpty(status), q => q.IS_USE == status)
+                    .OrderBy(x => x.SEQ_NO)
+                    .Distinct().ToListAsync();
+                List<SYS_MENU> entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PFUNC_CODE == func.FUNC_CODE);
                 foreach (var item in entities)
                 {
                     MenuItem menuItem = new();
@@ -130,10 +144,19 @@
                     menuItem.path = (item.PATH ?? "").StartsWith("/dashboard") ? "/dashboard" : $"{item.PATH}";
                     menuItem.name = item.FUNC_NAME;
                     menuItem.component = (item.PATH == null || item.PATH == "#") ? "LAYOUT" : item.COMPONENT;
+                    if (item.FUNC_CLASS == "PDA")
+                    {
+                        menuItem.pages = menuItem.component;
+                        menuItem.url = item.ICON_URL;
+                    }
                     menuItem.meta = new();
                     menuItem.meta.icon = item.ICON_URL;  // item.ICON_URL;
                     menuItem.meta.orderNo = item.SEQ_NO;
                     menuItem.meta.title = item.FUNC_NAME;
+                    menuItem.meta.menuId = item.ID;
+                    menuItem.meta.menuCode = item.FUNC_CODE;
+                    menuItem.meta.btnType = item.BUTTON_TYPE;
+                    menuItem.meta.doMethod = item.DO_METHOD;
                     if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                     {
                         menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
@@ -158,20 +181,18 @@
                     menuItem.status = item.IS_USE;
                     menuItem.icon = menuItem.meta.icon;
                     menuItem.func_type = item.FUNC_TYPE;
+                    menuItem.func_group = item.FUNC_GROUP;
+                    menuItem.btnType = item.BUTTON_TYPE;
                     menuItem.parentMenu = item.PFUNC_CODE;
-                    menuItem.orderNo= item.SEQ_NO;
-                    menuItem.children = new();
+                    menuItem.orderNo = item.SEQ_NO;
+                    menuItem.children = null;
                     GetMenuItem(items, item.FUNC_CODE, ref menuItem);
                     data.Add(menuItem);
                 }
-            }
-            //鏈夋煡璇㈡潯浠剁殑鏃跺��
-            else { 
-                
-            }
+            };
 
             //杞崲Json鏃讹紝鍘婚櫎鍊间负null鐨勫睘鎬�
-            var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
+            var jsonSetting = new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore };
             var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting);
             return json;
         }
@@ -202,9 +223,12 @@
                         func.ICON_URL = data.icon;
                         func.SEQ_NO = (int)data.orderNo;
                         func.FUNC_TYPE = data.func_type;
+                        func.BUTTON_TYPE = data.btnType;
+                        func.DO_METHOD = data.doMethod;
                         func.COMPONENT = string.IsNullOrEmpty(data.component) && data.func_type == "0" ? "LAYOUT" : data.component;
                         func.IGNOREKEEPALIVE = data.keepalive;
                         func.SHOW = data.show;
+                        func.FUNC_GROUP = data.func_group;
                         //func.CURRENTACTIVEMENU = data.keepalive
                     }
                     else
@@ -215,10 +239,12 @@
                             FUNC_CODE = Guid.NewGuid().ToString("N"),
                             FUNC_NAME = data.menuName,
                             FUNC_DESC = data.menuName,
-                            FUNC_GROUP = "",
+                            FUNC_GROUP = data.func_group,
                             FUNC_TYPE = data.func_type,
+                            BUTTON_TYPE = data.btnType,
+                            DO_METHOD = data.doMethod,
                             PFUNC_CODE = data.parentMenu,
-                            FUNC_CLASS = "BS",
+                            FUNC_CLASS = data.func_class?? "BS",
                             PATH = data.path,
                             ICON_URL = data.icon,
                             SEQ_NO = (int)data.orderNo,
@@ -234,7 +260,7 @@
                         db.Updateable(func, "system").ExecuteCommand();
                     }
                     //鏂板
-                    else 
+                    else
                     {
                         db.Insertable(func, "system").ExecuteCommand();
                         //濡傛灉鏄柊澧炵殑鑿滃崟锛屾煡鍑烘墍鏈夌埗绾ф洿鏂颁负鍗婇��
@@ -254,7 +280,7 @@
             }
             catch (System.Exception ex)
             {
-            	
+
             }
             return apiAction;
         }
@@ -278,10 +304,19 @@
                     menuItem.path = (item.PATH ?? "").StartsWith("/dashboard") ? "/dashboard" : $"{item.PATH}";
                     menuItem.name = item.FUNC_NAME;
                     menuItem.component = (item.PATH == null || item.PATH == "#") ? "LAYOUT" : item.COMPONENT;
+                    if (item.FUNC_CLASS == "PDA")
+                    {
+                        menuItem.pages = menuItem.component;
+                        menuItem.url = item.ICON_URL;
+                    }
                     menuItem.meta = new();
                     menuItem.meta.icon = item.ICON_URL;  //item.ICON_URL;
                     menuItem.meta.orderNo = item.SEQ_NO;
                     menuItem.meta.title = item.FUNC_NAME;
+                    menuItem.meta.menuId = item.ID;
+                    menuItem.meta.menuCode = item.FUNC_CODE;
+                    menuItem.meta.btnType = item.BUTTON_TYPE;
+                    menuItem.meta.doMethod = item.DO_METHOD;
                     if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                     {
                         menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
@@ -302,20 +337,24 @@
                     menuItem.keepalive = item.IGNOREKEEPALIVE;
                     menuItem.show = item.SHOW;
                     menuItem.menuName = item.FUNC_NAME;
-                    menuItem.createTime = item.CREATE_TIME; 
+                    menuItem.createTime = item.CREATE_TIME;
                     menuItem.icon = menuItem.meta.icon;
                     menuItem.func_type = item.FUNC_TYPE;
+                    menuItem.btnType = item.BUTTON_TYPE;
+                    menuItem.doMethod = item.DO_METHOD;
                     menuItem.parentMenu = item.PFUNC_CODE;
+                    menuItem.func_group = item.FUNC_GROUP;
                     menuItem.orderNo = item.SEQ_NO;
                     menuItem.status = item.IS_USE;
-                    menuItem.children = new();
+                    menuItem.children = null;
                     GetMenuItem(data, item.FUNC_CODE, ref menuItem);
+                    if (pMenuItem.children == null) { pMenuItem.children = new(); }
                     pMenuItem.children.Add(menuItem);
                 }
             }
         }
 
-        private static void GetRootMenu(SYS_MENU menu,ref List<SYS_MENU> items)
+        private static void GetRootMenu(SYS_MENU menu, ref List<SYS_MENU> items)
         {
             SYS_MENU menuRet = null;
             try
@@ -323,7 +362,7 @@
                 menuRet = Biz.Db.Queryable<SYS_MENU>().Where(q => q.FUNC_CODE == menu.PFUNC_CODE && q.FUNC_CODE != "system01").Single(); //23858079-7241-4e64-b0cf-eb5dbe84a9d6
                 if (menuRet != null)
                 {
-                    if (!items.Where(x=>x.FUNC_CODE == menuRet.FUNC_CODE).Any())
+                    if (!items.Where(x => x.FUNC_CODE == menuRet.FUNC_CODE).Any())
                     {
                         items.Add(menuRet);
                     }

--
Gitblit v1.9.3