chengsc
2025-04-12 3a3c50e8a4f1bca47daaadd03f4138a5d4a2227c
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<!DOCTYPE html>
<html style="background-color: white;">
    <head>
        <meta charset="utf-8">
        <title>分配权限</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
        <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
    </head>
    <body style="height: 98%;">
        <div class="layui-tab">
            <div class="layui-tab-content" >
                <!-- 业务 -->
                <div class="layui-tab-item layui-show">
                    <div class="layui-card">
                        <div  class="layui-form layui-card-header layuiadmin-card-header-auto" style="padding: 0;">
                            <div class="layui-form-item" >
                                <div class="layui-inline">
                                    <button class="layui-btn layui-btn-sm" lay-submit lay-filter="btn" style="width: 60px;">保存</button>
                                </div>
                            </div>
                        </div>
                        <div class="layui-card-body" >
                            <div style="margin-bottom: 15px;">
                                <table id="Layappcontentlist"  lay-filter="Layappcontentlist"></table>
                            </div> 
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <script src="../../layuiadmin/layui/layui.js"></script>
        <script src="../../js/public.js"></script>
        <script src="../../js/jquery-3.5.1.min.js"></script>
        <script src="../../js/jquery.cookie.js"></script>
        <script>
            var uid = $.cookie('userId');
            layui.config({
                base: '../../layuiadmin/' //静态资源所在路径
            }).extend({
                index: 'lib/index' //主入口模块
            }).use(['index', 'table', 'laypage', 'layer'], function() {
                var table = layui.table,
                    form = layui.form,
                    laypage = layui.laypage,
                    layer = layui.layer;
                var ids = getQueryString("id"); 
                var pno2="";//当前页面表格点击行的值 
                var rightListStr="";//已有权限菜单MenuNo集合json
                 
                getHaveRight();
                //获取初始权限
                function getHaveRight(){
                    sendData(IP + "/Basis/GetRoleWareHouseOneListById?id="+ids,{},'get',function(res){
                        for (var i=0;i<res.data.length;i++) {
                            rightListStr += res.data[i].WareHouseNo + ',';
                        }
                        //渲染页面模块table数据
                        refreshTablePage();
                        console.log('rightListStr:'+rightListStr)
                    });                    
                }
                //监听页面模块表格单击事件
                table.on('row(Layappcontentlist)', function(obj){
                    pno2=obj.data.WareHouseNo;
                });
                //监听页面模块表格复选框单击事件
                table.on('checkbox(Layappcontentlist)', function(obj){
                    console.log(pno2);
                    
                    //全选
                    if(String(obj.type) == "all")
                    {
                        //选中
                        if(obj.checked == true)
                        {
                            
                            //添加父级选中状态    
                            var menu = layui.table.cache.Layappcontentlist;
                            for(var i =0;i<menu.length;i++)
                            {
                                if(rightListStr.indexOf(menu[i].WareHouseNo)<=-1)
                                {
                                    rightListStr=rightListStr+','+menu[i].WareHouseNo
                                }        
                            }
                        }
                        //取消选中
                        if(obj.checked == false){
                            
                            //取消父级选中状态    
                            var menu = layui.table.cache.Layappcontentlist;
                            for(var i =0;i<menu.length;i++)
                            {
                                rightListStr=rightListStr.replace(menu[i].WareHouseNo,'');    
                            }
                            
                        }
                    }
                    else if(String(obj.type) == "one")//单选
                    {
                        //选中
                        if(obj.checked == true)
                        {
                            //添加选中状态
                            rightListStr=rightListStr+','+pno2
                        }
                        //取消选中
                        if(obj.checked == false)
                        {
                            //判断取消后还有没有选中的
                            var menuCheck=false;
                            var menu = layui.table.cache.Layappcontentlist;
                            for(var i=0;i<menu.length;i++)
                            {
                                if(menu[i].LAY_CHECKED == true)
                                {
                                    menuCheck=true;
                                    continue;
                                }
                            }
                            //取消父级选中状态    
                            rightListStr=rightListStr.replace(pno2,'');
                        }
                    }        
                    console.log(rightListStr);
                                
                });
 
                var infoOptions = {
                    elem: '#Layappcontentlist',
                    height: 550,
                    id: 'Layappcontentlist',
                    page: false,
                    limit: Number.MAX_VALUE,
                    cols: 
                    [[
                        {
                            title: '复选框', field: 'Lay_Checked', fixed: 'left', type: 'checkbox', width:65
                        }, 
                        {
                            field: 'WareHouseNo', title: '仓库号', align: 'center'
                        },
                        {
                            field: 'WareHouseName', title: '仓库名称', align: 'center'
                        }
                    ]]
                };
                //渲染页面模块table数据
                function refreshTablePage(){
                    sendData(IP + "/Basis/GetHouseList",{},'get',function(res){
                                                
                        //将权限进行勾选
                        var arr = rightListStr.split(',');
                        for(var a=0;a<arr.length;a++)
                        {                            
                            for(var i=0;i<res.data.length;i++)
                            {
                                if(arr[a] == res.data[i].WareHouseNo)
                                {
                                    res.data[i].LAY_CHECKED = true;
                                    continue;
                                }
                            }
                        }                    
                        $.extend(infoOptions, {
                            data: res.data,
                        });
                        table.render(infoOptions);
                                                      
                    })
                }
                 
                //监听保存
                form.on('submit(btn)', function(){
                    //去重
                    var arr = rightListStr.split(',')
                    var formArr = arr.sort()
                    var newArr=[formArr[0]]
                    for (let i = 1; i < formArr.length; i++)
                    {
                        if (formArr[i]!=formArr[i-1]) 
                        {
                            newArr.push(formArr[i])
                        }
                    }
                    //去重后重新赋值
                    rightListStr = "";
                    for(var c=0;c<newArr.length;c++)
                    {
                        if (rightListStr == "")
                        {
                            rightListStr = newArr[c];
                        }
                        else
                        {
                            rightListStr = rightListStr + ',' + newArr[c];
                        }
                    }
                    synData(IP +"/basis/InsertRoleWareHouse?WareHouseNo="+rightListStr+"&&Id="+ids+"",{},"post",function (res) {
                        if (res.code == 0)
                        {
                            //成功
                            layer.msg(res.msg,{
                                icon: 1,
                                time: 2000, //2秒关闭(如果不配置,默认是3秒)
                            },function () {
                                var index = parent.layer.getFrameIndex(window.name)
                                parent.layer.close(index); //关闭弹层
                            });
                        }
                        else
                        {
                            //不成功
                            layer.msg(res.msg,{
                                    icon: 2,
                                    time: 2000, //2秒关闭(如果不配置,默认是3秒)
                                },function () {
                                    this.doing = true;
                                }
                            );
                        }
                    });
 
                });
 
                //获取浏览器参数
                function getQueryString(name) {
                    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
                    var r = window.location.search.substr(1).match(reg);
                    if (r != null) return unescape(r[2]);
                    return null;
                }
            });
        </script>
    </body>
</html>