xj qian
2025-04-24 39874cc0992b23bb2544f88cc4257f16616cdd78
update
已修改1个文件
47 ■■■■ 文件已修改
jrj/project/IndexMenuWin.cpp 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/IndexMenuWin.cpp
@@ -11,6 +11,9 @@
#include "wobject/xnode.hpp"
#include "platform/nstring.hpp"
#include <vector>
//#include <stdio.h>
class __declspec(dllexport)IndexMenuWin: public xwin
{
public:
@@ -28,7 +31,7 @@
    HWND m_nHwnd;
    int tabNo;
    //int m_panelNo; // 当前菜单组
    //int m_panelNo; // 当前菜单组
    xstring m_Assignment;
public:
    IndexMenuWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
@@ -199,7 +202,7 @@
        if(hItem == 0) return 1;
        int hasChild = tv_menu.GetItemChild1(hItem);
        if(hasChild > 0) return 1;
        int ret = rClick(L"收藏菜单");
        int ret = rClick(L"收藏菜单");
        if(ret == 1)
        {
            xstring id = (xstring)tv_menu.GetItemData(hItem);
@@ -210,7 +213,7 @@
            if(xaserver::ExecXQuery(GetServerUrl(),L"[menu.user.edit.xq]",arg.GetString(),x)!=1)
            {
                trace(x.xml());
                //alert("收藏失败!");
                //alert("收藏失败!");
                return -1;    
            }
            createTree1();
@@ -291,6 +294,37 @@
        return 1;
    }
        
    int SetMenuAgent()
    {
        xaserverarg arg;
        KXMLDOMDocument x;
        arg.SetArg(L"pid", L"null");
        arg.SetArg(L"Assignment", this->m_Assignment);
        if (xaserver::ExecXQuery(GetServerUrl(), L"[Items.menu.xq]", arg.GetString(), x) != 1)
        {
            trace(x.xml());
            alert("取消失败!");
            return -1;
        }
        KXMLDOMNodeList items = x.selectNodes(L"*/item");
        long len = items.length();
        xstring tools;
        wchar_t tool[1204];
        const wchar_t * templ = L"<xtoolbutton width ='80' imageflow ='top' height ='80' caption ='%s' name ='Menu-%d'  src ='icons32/%s白.png' style ='font-family:思源黑体 CN Bold;font-size:9pt;margin:8;text-align:center;background-color:%s;background-radius:8pt;'><help>%s</help></xtoolbutton>";
        std::vector<const wchar_t*> colors{L"#DE9832",L"#32B2E6",L"#FFEF34",L"#2EA14A",L"#D54C84"};
        for (int i = 0; i < len; i++)
        {
            if (i >= 20)break;
            xstring name = items.item(i).selectSingleNode(L"name").text();
            xstring id = items.item(i).selectSingleNode(L"id").text();
            xstring src = name.replace(L"管理", L"").replace(L"模块", L"");
            swprintf_s(tool, 1024, templ, name.c_str(), i, src.c_str(), colors[i % 5],name.c_str());
            if (i == 0) tools = tool; else  tools += tool;
        }
        tools = L"<box layerflow ='htmlflow'>" + tools + L"</box>";
        xnode node = this->GetAgentNode(L"menu-item");
        if(node)this->SetAgentNode(node, tools);
    }
    int SetInitAgent()
    {
        int no = GetCurPanel();
@@ -346,7 +380,7 @@
        xstring str = xc.GetText();
        if(str.isEmpty())
        {
            alert(L"请输入查询条件!");
            alert(L"请输入查询条件!");
            return -1;
        }
        HTREEITEM rItem = tv_menu2.GetRootItem();
@@ -425,7 +459,7 @@
        TVNNMHDR& nmtv = *(TVNNMHDR*)evt->notify.pnmh;
        HTREEITEM hItem = nmtv.FromItem;
        if(!hItem) return 1;
        int ret = rClick(L"取消收藏");
        int ret = rClick(L"取消收藏");
        if(ret == 1)
        {
            xstring id = (xstring)tv_menu1.GetItemData(hItem);
@@ -436,7 +470,7 @@
            if(xaserver::ExecXQuery(GetServerUrl(),L"[menu.user.edit.xq]",arg.GetString(),x)!=1)
            {
                trace(x.xml());
                alert("取消失败!");
                alert("取消失败!");
                return -1;    
            }
            tv_menu1.DeleteItem(hItem);
@@ -505,6 +539,7 @@
        SetInitAgent();
        createTree1();
        
        SetMenuAgent();
        xutil::RestoreCursor(hCursor);
        //this->Redraw();