Quellcode durchsuchen

项目经费管理所有页面的所有的部门设置成下拉选择

梁世豪 vor 10 Monaten
Ursprung
Commit
cf799648bd

+ 60 - 3
src/main/resources/templates/annualbudget/list.html

@@ -57,8 +57,8 @@
57 57
                         </div>
58 58
 
59 59
                         <div class="layui-inline">
60
-                            <label class="layui-form-label" style="width: 70px">所属部门</label>
61
-                            <div class="layui-input-inline" style="width: 140px">
60
+                            <label class="layui-form-label required" style="width: 70px">所属部门</label>
61
+                            <div class="layui-input-block">
62 62
                                 <input type="text" id="ssbmmc" name="ssbmmc" autocomplete="off" class="layui-input">
63 63
                             </div>
64 64
                         </div>
@@ -151,11 +151,54 @@
151 151
     var updateflag = 0;
152 152
     var xmApproval = {};
153 153
 
154
-    layui.use(['form', 'table', 'tableSelect', 'laydate'], function () {
154
+    layui.use(['form', 'table', 'tableSelect', 'laydate','layCascader'], function () {
155 155
         var form = layui.form
156 156
         table = layui.table;
157 157
         var userId = $("#userId").val();
158 158
         var selectedYear = $('#nf').val();
159
+        layCascader = layui.layCascader;
160
+
161
+        var index2 = layer.load(0, {shade: 0.1});
162
+        AjaxUtil.get({
163
+            url: AjaxUtil.ctx + 'userinfo/listDeptForSelect',
164
+            success: function (res) {
165
+                layer.close(index2);
166
+
167
+                var datalist = [];
168
+                for (let item of res.data) {
169
+                    item.value = item.deptName;
170
+                    item.label = item.deptName;
171
+                    datalist.push(item);
172
+                }
173
+                console.log(datalist)
174
+                // 扁平数据转树
175
+                var options = arrayToTree(datalist, "0");
176
+
177
+                // 初始化cascader实例
178
+                var cascader = layCascader({
179
+                    elem: '#ssbmmc',
180
+                    clearable: true,
181
+                    showAllLevels: false, // 配置仅显示最后一级
182
+                    props: {
183
+                        checkStrictly: true, // 配置选择任意一级选项
184
+                    },
185
+                    options: options
186
+                });
187
+
188
+                // 监听cascader变化
189
+                cascader.changeEvent(function (value, node) {
190
+                    // 主动关闭面板
191
+                    cascader.close();
192
+                    $("#deptId").val(value);
193
+                    console.log(node);
194
+                });
195
+            },
196
+            error: function (error) {
197
+                layer.close(index2);
198
+                Message.error('获取部门信息失败!', 1000);
199
+            }
200
+        });
201
+
159 202
         var currTable = table.render({
160 203
             elem: '#currentTableId',
161 204
             url: AjaxUtil.ctx + 'prjAnnualbudget/list/?nf='+selectedYear,
@@ -694,6 +737,20 @@
694 737
     function setUpdateFlag() {
695 738
         updateflag = 1;
696 739
     }
740
+    function arrayToTree(data, firstPid) {
741
+        const result = [];
742
+        getChildren(data, result, firstPid)
743
+        return result;
744
+    }
745
+    function getChildren(data, result, parentId) {
746
+        for (const item of data) {
747
+            if (item.parentId === parentId) {
748
+                const newItem = {...item, children: []};
749
+                result.push(newItem);
750
+                getChildren(data, newItem.children, item.deptId);
751
+            }
752
+        }
753
+    }
697 754
 </script>
698 755
 </body>
699 756
 </html>

+ 2 - 2
src/main/resources/templates/annualbudget/view_record.html

@@ -57,8 +57,8 @@
57 57
                     {field: 'fymc', width: '20%', title: '费用名称'},
58 58
                     {field: 'nf', width: '10%', title: '年份'},
59 59
                     {field: 'xmzys', width: '20%', title: '项目总预算'},
60
-                    {field: 'sptgysje', width: '20%', title: '审批通过状态'},
61
-                    {field: 'ysje', width: '20%', title: '现在'},
60
+                    {field: 'sptgzt', width: '20%', title: '审批通过状态'},
61
+                    {field: 'xgjlxz', width: '20%', title: '现在'},
62 62
                 ]
63 63
             ],
64 64
             sortName: 'jtsj',

+ 61 - 3
src/main/resources/templates/stafeemanage/list_approving.html

@@ -84,8 +84,8 @@
84 84
 
85 85
                         <div class="layui-inline">
86 86
                             <label class="layui-form-label" style="width: 60px">所属部门</label>
87
-                            <div class="layui-input-inline" style="width: 200px">
88
-                                <input type="text" id="ssbmmc" name="ssbmmc" autocomplete="off" class="layui-input">
87
+                            <div class="layui-input-block">
88
+                                <input type="text" id="ssbmmc" name="ssbmmc" >
89 89
                             </div>
90 90
                         </div>
91 91
                         <div class="layui-inline">
@@ -167,15 +167,59 @@
167 167
     var updateflag = 0;
168 168
     var fyApproval = {};
169 169
 
170
-    layui.use(['form', 'table', 'tableSelect', 'laydate'], function () {
170
+    layui.use(['form', 'table', 'tableSelect', 'laydate','layCascader'], function () {
171 171
         var form = layui.form,
172 172
             tableSelect = layui.tableSelect,
173 173
             laydate = layui.laydate,
174 174
             table = layui.table;
175
+        layCascader = layui.layCascader;
175 176
         var userId = $("#userId").val();
176 177
 
177 178
         var sqsj1 = '',
178 179
             sqsj2 = '';
180
+
181
+        var index2 = layer.load(0, {shade: 0.1});
182
+        AjaxUtil.get({
183
+            url: AjaxUtil.ctx + 'userinfo/listDeptForSelect',
184
+            success: function (res) {
185
+                layer.close(index2);
186
+
187
+                var datalist = [];
188
+                for (let item of res.data) {
189
+                    item.value = item.deptName;
190
+                    item.label = item.deptName;
191
+                    datalist.push(item);
192
+                }
193
+                console.log(datalist)
194
+                // 扁平数据转树
195
+                var options = arrayToTree(datalist, "0");
196
+
197
+                // 初始化cascader实例
198
+                var cascader = layCascader({
199
+                    elem: '#ssbmmc',
200
+                    clearable: true,
201
+                    showAllLevels: false, // 配置仅显示最后一级
202
+                    props: {
203
+                        checkStrictly: true, // 配置选择任意一级选项
204
+                    },
205
+                    options: options
206
+                });
207
+
208
+                // 监听cascader变化
209
+                cascader.changeEvent(function (value, node) {
210
+                    // 主动关闭面板
211
+                    cascader.close();
212
+                    $("#deptId").val(value);
213
+                    console.log(node);
214
+                });
215
+            },
216
+            error: function (error) {
217
+                layer.close(index2);
218
+                Message.error('获取部门信息失败!', 1000);
219
+            }
220
+        });
221
+
222
+
179 223
         //申请时间
180 224
         laydate.render({
181 225
             elem: '#sqsj1',
@@ -720,6 +764,20 @@
720 764
     function getXmApproval() {
721 765
         return xmApproval;
722 766
     }
767
+    function arrayToTree(data, firstPid) {
768
+        const result = [];
769
+        getChildren(data, result, firstPid)
770
+        return result;
771
+    }
772
+    function getChildren(data, result, parentId) {
773
+        for (const item of data) {
774
+            if (item.parentId === parentId) {
775
+                const newItem = {...item, children: []};
776
+                result.push(newItem);
777
+                getChildren(data, newItem.children, item.deptId);
778
+            }
779
+        }
780
+    }
723 781
 </script>
724 782
 </body>
725 783
 </html>

+ 59 - 2
src/main/resources/templates/stafeemanage/list_feemanage.html

@@ -70,7 +70,7 @@
70 70
                         </div>
71 71
                         <div class="layui-inline">
72 72
                             <label class="layui-form-label" style="width: 70px">所属部门</label>
73
-                            <div class="layui-input-inline" style="width: 140px">
73
+                            <div class="layui-input-block">
74 74
                                 <input type="text" id="ssbmmc" name="ssbmmc" autocomplete="off" class="layui-input">
75 75
                             </div>
76 76
                         </div>
@@ -123,11 +123,54 @@
123 123
 <script th:inline="javascript" type="text/javascript">
124 124
     AjaxUtil.ctx = /*[[@{/}]]*/'';
125 125
 
126
-    layui.use(['form', 'table', 'tableSelect'], function () {
126
+    layui.use(['form', 'table', 'tableSelect','layCascader'], function () {
127 127
         var form = layui.form,
128 128
             table = layui.table,
129 129
             tableSelect = layui.tableSelect;
130
+        layCascader = layui.layCascader;
130 131
         var year = document.getElementById('nf').value;
132
+
133
+        var index2 = layer.load(0, {shade: 0.1});
134
+        AjaxUtil.get({
135
+            url: AjaxUtil.ctx + 'userinfo/listDeptForSelect',
136
+            success: function (res) {
137
+                layer.close(index2);
138
+
139
+                var datalist = [];
140
+                for (let item of res.data) {
141
+                    item.value = item.deptName;
142
+                    item.label = item.deptName;
143
+                    datalist.push(item);
144
+                }
145
+                console.log(datalist)
146
+                // 扁平数据转树
147
+                var options = arrayToTree(datalist, "0");
148
+
149
+                // 初始化cascader实例
150
+                var cascader = layCascader({
151
+                    elem: '#ssbmmc',
152
+                    clearable: true,
153
+                    showAllLevels: false, // 配置仅显示最后一级
154
+                    props: {
155
+                        checkStrictly: true, // 配置选择任意一级选项
156
+                    },
157
+                    options: options
158
+                });
159
+
160
+                // 监听cascader变化
161
+                cascader.changeEvent(function (value, node) {
162
+                    // 主动关闭面板
163
+                    cascader.close();
164
+                    $("#deptId").val(value);
165
+                    console.log(node);
166
+                });
167
+            },
168
+            error: function (error) {
169
+                layer.close(index2);
170
+                Message.error('获取部门信息失败!', 1000);
171
+            }
172
+        });
173
+
131 174
         var currTable = table.render({
132 175
             elem: '#currentTableId',
133 176
             url: AjaxUtil.ctx + 'staBudgetapproval/list_feemanage/?nf='+year,
@@ -333,6 +376,20 @@
333 376
     function getXmApproval() {
334 377
         return xmApproval;
335 378
     }
379
+    function arrayToTree(data, firstPid) {
380
+        const result = [];
381
+        getChildren(data, result, firstPid)
382
+        return result;
383
+    }
384
+    function getChildren(data, result, parentId) {
385
+        for (const item of data) {
386
+            if (item.parentId === parentId) {
387
+                const newItem = {...item, children: []};
388
+                result.push(newItem);
389
+                getChildren(data, newItem.children, item.deptId);
390
+            }
391
+        }
392
+    }
336 393
 </script>
337 394
 </body>
338 395
 </html>