xinyb
2024-04-25 af17cd0295df0b28cfdfca7ca3b17ef6bfb1e440
提交 | 用户 | age
6c848f 1 <!DOCTYPE html>
X 2 <html lang="zh-cn">
3
4 <head>
5   <meta charset="UTF-8">
6   <meta name="viewport"
7         content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
8   <meta http-equiv="X-UA-Compatible" content="ie=edge">
9   <title>编辑布局</title>
10   <link rel="stylesheet" href="/general/CustomControl/css/reset.css">
11   <link rel="stylesheet" href="/general/CustomControl/css/driver.min.css">
12   <link rel="stylesheet" href="/general/CustomControl/js/layui/css/layui.css" >
13   <link rel="stylesheet" href="/general/CustomControl/css/main.css">
af17cd 14   <style>
X 15     .loadTip{
16       color: green;
17       font-weight: 600;
18     }
19     .layui-layer-loading1{
20       width: 300px!important;
21       text-align: right;
22     }
23   </style>
6c848f 24 </head>
X 25
26 <body>
27 <div class="main-container">
28   
29   <div class="" id="sortable">
30
31     <div class="flex space-between">
32       <div>
33         <button class="btn-group" id="openGuide"><i class="layui-icon layui-icon-help"></i></button>
34         <button class="btn-group" id="resetAll">恢复初始</button>
35       </div>
36         <div>
37           <button class="btn-group" id="saveIconData">保存</button>
38         </div>
39     </div>
40     
41     <div id="tableLayout"></div>
42     <div id="app">
43 <!--      <vue-grids></vue-grids>-->
44 <!--      <grid></grid>-->
45       <div>
46 <!--        v-if="!isOpenLayer"-->
47         <tab-cards></tab-cards>
48       </div>
49       <div class="layer-edit-content hide">
50         <div class="flex relative"  v-show="!currentIsTable">
51           <div class="nav-list nav-list-container"></div>
52           <div class="layout-container grid-edit-layer">
53             <div class="layui-tab layui-tab-card" lay-filter="filter-tab" >
54               <ul class="layui-tab-title">
55               </ul>
56               <div class="layui-tab-content">
57                 <div class="layui-tab-item layui-show">
58                   <div class="flex flex-end">
59                     <div>
60                       <button class="btn-group" id="resetCurrentGrid">恢复初始</button>
61                     </div>
62                   </div>
63                   <div class="vue-component-div absolute">
64                     <grid></grid>
65                   </div>
66
67                 </div>
68               </div>
69             </div>
70           </div>
71         </div>
72         <div class="relative" v-show="currentIsTable">
73           <div class="vue-component-div">
74             <vue-draggable-table></vue-draggable-table>
75           </div>
76         </div>
77         
78       </div>
79     </div>
80
81   
82   </div>
83   
84
85 </div>
86 <script src="/help/js/JQuery-3.6.0.js"></script>
87 <script src="/general/CustomControl/js/Sortable.min.js"></script>
88 <script src="/general/CustomControl/js/driver.min.js" type="text/javascript"></script>
89 <script src="/general/CustomControl/js/layui/layui.js" type="text/javascript"></script>
90 <script src="/general/CustomControl/js/vue@2.js"></script>
91 <script src="/general/CustomControl/js/vue-grid-layout.umd.min.js"></script>
92 <script src="/general/CustomControl/js/vuedraggable.umd.min.js"></script>
93 <script src="/general/CustomControl/js/utils.js"></script>
94 <script src="/general/CustomControl/js/editLayoutDriver.js"></script>
95 <script src="/general/CustomControl/js/vueComponent.js"></script>
96
97 <script>
98   var resData = {};
99   function getUrlParam(name) {
100     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
101     var r = window.location.search.substr(1).match(reg);  //匹配目标参数
102     if (r != null) {
103       return unescape(r[2]);
104     }
105     return null; //返回参数值
106   }
107
108   //参数赋值
109   function paramAll() {
110     let param = {};
111     param.formId = getUrlParam("formId");
112     param.formType = getUrlParam("formType");
113     param.docCode = getUrlParam("docCode");
114     param.queryString = getUrlParam("queryString");
115     return JSON.stringify(param);
116   }
af17cd 117   //生成页面
X 118   function buildV2(msg){
119     let formId = getUrlParam("formId");
120     $.ajax({
121       url: '/buildv2.do?formID=' + formId,
122       dataType: 'html',
123       beforeSend: function () {
124         layer.msg(msg, {icon: 1, time: 1500}, function () {
125           layer.load(1,{shade: [0.8, 'rgb(253 253 253)',], content: '<span class="loadTip">'+msg+'重新生成页面请稍等...</span>' });
126         });
127       },
128       complete: function () {
129         // layer.msg("生成页面中出现错误", {icon: 2, time: 2000}, function () {
130         //   layer.close(index);
131         // });
132       },
133       success: function (data) {
134         if (data != null && data.indexOf("生成成功") > 0) {
135           layer.closeAll();
136           layer.msg('生成成功,即将打开页面!', {
137             icon: 1,
138             time: 2000
139           }, function () {
140             let Tab = top.$("#home-tabs").tabs("getTab", Number(getUrlParam("tabIndex")));
141             let iframe = top.$(Tab).find('iframe');
142             top.$(iframe).attr('src', top.$(iframe).attr('src')); //刷新
143             top.$("#home-tabs").tabs('close', top.tabindex);//关闭
144           });
145         }
146       },
147       error: function (xhr, ajaxOptions, thrownError) {
148         layer.closeAll();
149         layer.msg(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText, {icon: 2});
150       }
151     });
152   }
6c848f 153   $.ajax({
X 154     url: '/custom/controlLayout.do',
155     type: 'post',
156     dataType: 'json',
157     contentType: 'application/json',
158     data:paramAll(),
159     success: function (res) {
af17cd 160       if(res!=null && res.code==-1){
X 161         layer.msg(res.msg);
162         return;
163       }
6c848f 164       resData = res.data;
X 165       console.log('请求数据',resData);
166       // 导航栏数据
167       navListData = [];
168       layoutsData = handleResData(resData,navListData);
169       layoutsDataBackup = JSON.parse(JSON.stringify(layoutsData));
170       navListDataBackup = JSON.parse(JSON.stringify(navListData));
171       console.log('<<<<<layoutsData',layoutsData);
172       
173       
174       getDataCallback(layoutsData);
175     }
176   })
177
178   // 保存数据 
179   $("#saveIconData").on("click", function () {
2ef618 180     let index;
af17cd 181     let resultList = getResultData(layoutsData);
6c848f 182     $.ajax({
X 183       url: '/custom/saveControlLayout.do',
184       type: 'post',
185       dataType: 'json',
186       contentType: 'application/json',
187       data: JSON.stringify(resultList),
2ef618 188       beforeSend:function (){
X 189         index=layer.load(1);
190       },
6c848f 191       success: function (res) {
2ef618 192         layer.close(index);
af17cd 193         if(res!=null && res.code==-1){
X 194           layer.msg(res.msg);
195           return;
196         }
197         buildV2('保存成功。');//生成页面
198       },complete:function (){}
6c848f 199     })
X 200   });
201   
202   tabsChangeEvent()
203   
204 //   恢复初始
205   $("#resetAll").on("click", function () {
206     layer.confirm('点击确定按钮将会使整个页面布局恢复到初次加载状态(系统设置状态),您确定吗?', {
207       icon: 0,
208       title: '提示'
209     }, function (index) {
210       navListData = [];
211       layoutsData = handleResData(resData, navListData);
64e2f8 212       let json = getResultFormId(layoutsData);//得到全部功能号
af17cd 213       let index1;
6c848f 214       $.ajax({
X 215         url: '/custom/deleteControlLayout.do?fromIdAage=' + getUrlParam("formId") + '&formType=' + getUrlParam("formType"),
216         type: 'post',
217         dataType: 'json',
218         contentType: 'application/json',
64e2f8 219         data: JSON.stringify(json),
2ef618 220         beforeSend:function (){
af17cd 221           index1= layer.load(1);
2ef618 222         },
6c848f 223         success: function (res) {
af17cd 224           layer.close(index);
X 225           layer.close(index1);
226           if(res!=null && res.code==-1){
227             layer.msg(res.msg);
228             return;
6c848f 229           }
af17cd 230           buildV2('已恢复初始。');//生成页面
6c848f 231         }
X 232       })
233     });
234   });
235
236   //   恢复当前弹窗初始
237   $("#resetCurrentGrid").on("click", function () {
238
239     layer.confirm('点击确定按钮将会使当前弹窗内布局恢复到初次加载状态,您确定吗?', {icon: 0, title:'提示'}, function(index){
240       createNavListDom(getCurrentNavDataBackup());
241       getCurrentLayoutDataCallback(getCurrentLayoutDataBackup(),currentIndexGroup);
242       layer.close(index);
243     });
244
245   });
246   $("#resetCurrentTable").on("click", function () {
247     layer.confirm('点击确定按钮将会使当前弹窗内布局恢复到初次加载状态,您确定吗?', {icon: 0, title:'提示'}, function(index){
248       getCurrentTableDataCallback(getCurrentLayoutDataBackup(),getCurrentNavDataBackup(),currentIndexGroup);
249       layer.close(index);
250     });
251     
252   });
253
254 </script>
255 </body>
256
257 </html>