zrg
2024-10-15 4322ae28f78e1c393eb85eece4d8a4485bb23f7c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
//#region 按钮设置
function get_HideButton(set_HideButton_ID, HBillType, HModName, HUserName) {
    //获取父节点下所有的按钮节点
    var parentNodes = document.getElementById(set_HideButton_ID);
    var btns = parentNodes.querySelectorAll('button');
 
    var btnIdList = "";          //按钮ID列表
    var btnNameList = "";        //按钮名称列表
    var btnOrderList = "";       //按钮次序列表
    var contentUrl = "";         //按钮设置窗口页面位置
 
    //获取页面按钮元素的信息
    for (var i = 0; i < btns.length; i++) {
        btnIdList += btns[i].id + ",";
        btnNameList += btns[i].innerText + ",";
        btnOrderList += i + ",";
    }
    //对数组进行编码
    btnIdList = encodeURI(btnIdList.substring(0, btnIdList.length - 1));//对 URI 进行编码
    btnNameList = encodeURI(btnNameList.substring(0, btnNameList.length - 1));//对 URI 进行编码
    btnOrderList = encodeURI(btnOrderList.substring(0, btnOrderList.length - 1));//对 URI 进行编码
 
    //获取按钮隐藏设置窗口文件路径
    var urlStr = window.document.location.pathname;//获取文件路径
    var urlLen = urlStr.split('/');
    for (var i = 0; i < urlLen.length - 4; i++) {
        contentUrl += "../";
    }
    contentUrl += '系统管理/按钮设置/Xt_ModuleButtonSet.html?HModName=' + HModName + '&HBillType=' + HBillType + "&btnIdList=" + btnIdList + "&btnNameList=" + btnNameList + "&btnOrderList=" + btnOrderList + "&HUserName=" + HUserName;
 
    //打开按钮隐藏设置子窗口
    layer.open({
        type: 2
        , skin: "layui-layer-rim" //加上边框
        , title: "按钮设置"  //标题
        , closeBtn: 1  //窗体右上角关闭 的 样式
        , shift: 2 //弹出动画
        , area: ["30%", "90%"] //窗体大小
        , maxmin: true //设置最大最小按钮是否显示
        , content: [contentUrl, "yes"]
        , btn: ["确定", "取消"]
        , btn1: function (index, laero) {
            //刷新按钮显示
            Display_HideButton(set_HideButton_ID, HBillType, HModName, HUserName);
            //更新表格缓存的数据
            layer.close(index);//关闭弹窗
        }
    })
 
}
 
//#endregion
//#region 显示按钮
function Display_HideButton(set_HideButton_ID, HBillType, HModName, HUserName) {
    $.ajax({
        url: GetWEBURL() + '/Xt_ModuleButtonSet_WMES/moduleButtonSetWMESList',
        type: "GET",
        async: false,
        data: { "HModName": HModName, "HBillType": HBillType, "HUserName": HUserName },
        success: function (data1) {
            //获取父节点下所有的按钮节点
            var parentNodes = document.getElementById(set_HideButton_ID);
            var btns = parentNodes.querySelectorAll('button');
 
            //获取数据库中已经记录的按钮节点的id列表
            var btnsData_InDataBase = [];
            for (var i = 0; i < data1.data.length; i++) {
                btnsData_InDataBase.push(data1.data[i]["HButtonID"]);
            }
 
            //记录数据库中没有设置数据的按钮节点的信息  ||  记录页面上设置的按钮的信息
            var btns_IDInfo = [];                                           //记录页面上设置的按钮的ID
            var btns_info = [];                                             //记录页面上设置的按钮的信息
            var btnsData_NoInDataBase = [];                                 //记录数据库中没有设置数据的按钮节点的信息
            for (var i = 0; i < btns.length; i++) {
                //记录页面上设置的按钮的ID
                btns_IDInfo.push(btns[i].id);
                //记录页面上设置的按钮的信息
                btns_info.push({
                    "HButtonID": btns[i].id
                    , "HClassValue": btns[i].getAttribute('class')
                    , "HLay_Event": btns[i].getAttribute('lay-event')
                    , "HValue": btns[i].innerText
                    , "childLiElement": btns[i].querySelectorAll('i')
                })
                //记录数据库中没有设置数据的按钮节点的信息
                if ($.inArray(btns[i].id, btnsData_InDataBase) == -1) {
                    //var label_i = btns[i].firstChild;
                    //var label_i_icon = label_i.getAttribute('class');
                    btnsData_NoInDataBase.push(btns[i].id);
                }
            }
 
            //清除父节点下的所有子节点
            while (parentNodes.firstChild) {
                parentNodes.removeChild(parentNodes.firstChild);
            }
 
            //重新加载父节点下的子节点
            //加载数据库中存在记录的按钮节点数据
            for (var i = 0; i < data1.data.length; i++) {
                var index_temp = $.inArray(data1.data[i]["HButtonID"], btns_IDInfo);
                if (index_temp > -1) {
                    // 创建子节点
                    var child = document.createElement('button');
                    child.type = "button";
                    child.className = btns_info[index_temp].HClassValue;
                    child.setAttribute('lay-event', btns_info[index_temp].HLay_Event);
                    child.id = btns_info[index_temp].HButtonID;
 
                    if (btns_info[index_temp].childLiElement.length > 0) {
                        child.appendChild(btns_info[index_temp].childLiElement[0]);
                    }
 
                    var element_i = document.createElement('text');
                    element_i.innerHTML = btns_info[index_temp].HValue;
                    child.appendChild(element_i);
 
                    //child.innerHTML = data1.data[i]["HOtherName"] == "" ? btns_info[index_temp].HValue : data1.data[i]["HOtherName"];
                    if (data1.data[i]["HHideFlag"] == true) {
                        child.style = "display:none;";
                    } else {
                        child.style = "display:inline;";
                    }
 
                    // 将子节点添加到父节点下
                    parentNodes.appendChild(child);
                }
            }
            //加载数据库中不存在记录的按钮节点数据
            for (var i = 0; i < btnsData_NoInDataBase.length; i++) {
                var index_temp = $.inArray(btnsData_NoInDataBase[i], btns_IDInfo);
                if (index_temp > -1) {
                    // 创建子节点
                    var child = document.createElement('button');
                    child.type = "button";
                    child.className = btns_info[index_temp].HClassValue;
                    child.setAttribute('lay-event', btns_info[index_temp].HLay_Event);
                    child.id = btns_info[index_temp].HButtonID;
 
                    if (btns_info[index_temp].childLiElement.length > 0) {
                        child.appendChild(btns_info[index_temp].childLiElement[0]);
                    }
 
                    var element_i = document.createElement('text');
                    element_i.innerHTML = btns_info[index_temp].HValue;
                    child.appendChild(element_i);
 
                    //child.innerHTML = btns_info[index_temp].HValue;
                    child.style = "display:inline;";
 
                    // 将子节点添加到父节点下
                    parentNodes.appendChild(child);
                }
            }
 
            ////遍历父节点下所有的按钮节点,获取 记录数据库中没有设置数据的按钮节点的信息
            //for (var i = 0; i < btns.length; i++) {
            //    var bar = 0;
            //    for (var j = 0; j < data1.count; j++) {
            //        if (btns[i].id == data1.data[j]["HButtonID"]) {
            //            if (data1.data[j]["HHideFlag"] == true) {
            //                btns[i].style = "display:none;";
            //            } else {
            //                btns[i].style = "display:inline;";
            //            }
            //            bar = 1;
            //            break;
            //        }
            //    }
            //    if (bar == 0) {
            //        btns[i].style = "display:inline;";
            //    }
            //}
        }, error: function () {
            layer.alert("接口请求失败!", { icon: 5 });
        }
    })
}
//#endregion