提交 | 用户 | age
|
a6a76f
|
1 |
(function($){ |
F |
2 |
var formId=0; |
|
3 |
var formType=0; |
|
4 |
var url='/importUpload'; |
|
5 |
$.xlsfile=function(options){ |
|
6 |
var pF=parent.getIframeAttr("pFrame"); |
|
7 |
var panelTitle=""; |
|
8 |
if(typeof(panMain[panIndex])!='undefined'){ |
|
9 |
panelTitle=parent.frames[pF].panMain[panIndex].panelTitle; |
|
10 |
panelTitle=panelTitle.replace(/(/g,',').replace(/'/g,';'); |
|
11 |
panelTitle=panelTitle.substring(0,panelTitle.length-1); |
|
12 |
} |
|
13 |
var formid=parent.frames[pF].formId; |
|
14 |
var formtype=parent.frames[pF].formType; |
|
15 |
formId=formid; |
|
16 |
formType=formtype; |
|
17 |
var doccode=parent.frames[pF].$('#doccode').val(); |
|
18 |
if( panelTitle==''){ |
|
19 |
panelTitle=formid+'功能数据导入'; |
|
20 |
} |
|
21 |
$('a').click(function(){//按钮点击进入 |
|
22 |
if(this.id=='download'){//下载模板 |
|
23 |
window.open("/excel.do?e=down&formId="+formid); |
|
24 |
}else if(this.id=='import'){//导入 |
|
25 |
$.messager.confirm('确认', '<div class=\"tet\">已经检查好Excel内容和映射设置确定导入?</div>', function(r){ |
|
26 |
if (r){ |
|
27 |
ajaxLoading(); |
|
28 |
var formdata=new FormData($("#upFrame")[0]); |
|
29 |
formdata.append('state',1); |
|
30 |
formdata.append('pFrame',pF); |
|
31 |
formdata.append('formid',formid); |
|
32 |
formdata.append('formtype',formtype); |
|
33 |
formdata.append('panelTitle',panelTitle); |
|
34 |
formdata.append('isDetailed',($('#isDetailed').is(':checked')?1:0)); |
|
35 |
formdata.append('doccode',(doccode==undefined?'':doccode)); |
|
36 |
try{ |
|
37 |
var id; |
|
38 |
var param={}; |
|
39 |
$('.data').each(function(){ //获取映射设置数据 |
|
40 |
param[this.id]={}; |
|
41 |
id=this.id; |
|
42 |
$('#'+this.id+' .'+this.id+'-input').each(function(){ |
|
43 |
param[id][this.id]=$(this).combobox('getValue'); |
|
44 |
}); |
|
45 |
formdata.append(id,JSON.stringify(param[id])); |
|
46 |
}); |
|
47 |
}catch(e){return formdata;} |
|
48 |
//改用ajax提交。-xin 2020-6-11 09:41:31 |
|
49 |
$.ajax({url:"/excel.do?m=xlsdata",type: "post",data:formdata,processData:false,//因为data值是FormData对象,不需要对数据做处理。 |
|
50 |
contentType:false, |
|
51 |
success: function(data){ |
|
52 |
ajaxLoadEnd(); |
|
53 |
// data=eval('('+data+')'); |
|
54 |
if(data!=null){ |
|
55 |
if(data.state== 0){ |
|
56 |
$.messager.confirm('操作提示', '<div class=\"tet\">'+data.msg+'<br>退出导入页面?</div>', function(r){ |
|
57 |
if(r){ |
|
58 |
parent.closeTab(); |
|
59 |
} |
|
60 |
}); |
|
61 |
}else if(data.state== 1){ |
|
62 |
$.messager.alert('操作提示','<div class=\"tet\">'+data.msg+'</div>'); |
|
63 |
} |
|
64 |
}else{ |
|
65 |
$.messager.alert('操作提示','<div class=\"tet\">导入过程中出现错误!错误信息:'+data.msg+'</div>'); |
|
66 |
} |
|
67 |
} |
|
68 |
}); |
|
69 |
} |
|
70 |
}); |
|
71 |
} |
|
72 |
}); |
|
73 |
$("#xlsTitle").html(parent.frames[pF].document.title+"("+formid+")"); |
|
74 |
if(formtype==1 || formtype==3){ |
|
75 |
$('#isDetailed').val(0); |
|
76 |
$('#isDetailed').prop('checked', false); |
|
77 |
} |
|
78 |
$('#tyy').html(formtype+'类型'); |
|
79 |
} |
|
80 |
|
|
81 |
//加载映射 |
|
82 |
fileChange=function(){ |
|
83 |
//改用ajax提交。-xin 2020-6-11 09:41:31 |
|
84 |
ajaxLoading(); |
|
85 |
var formdata=new FormData($("#upFrame")[0]); |
|
86 |
formdata.append('state',0); |
|
87 |
formdata.append('formid',formId); |
|
88 |
formdata.append('formtype',formType); |
|
89 |
formdata.append('isDetailed',($('#isDetailed').is(':checked')?1:0)); |
|
90 |
$.ajax({ |
|
91 |
cache : true, |
|
92 |
type : "post", |
|
93 |
url : "/excel.do?m=xlsdata", |
|
94 |
async : false, |
|
95 |
data : formdata, // |
|
96 |
dataType:"json", |
|
97 |
contentType: false, |
|
98 |
processData: false, |
|
99 |
success: function(data){ |
|
100 |
try{ |
|
101 |
$('.xls1').html(''); |
|
102 |
$('.xls2').html(''); |
|
103 |
if(data.state==1){ |
|
104 |
var html =''; |
|
105 |
var br=0; |
|
106 |
var isys=false; |
|
107 |
var err=''; |
|
108 |
var xls=data.xls;//Excel |
|
109 |
var gform=data.gform;//系统 |
|
110 |
for(var e in xls){ |
|
111 |
html +='<div class=\"data\" id=\"'+e+'\"><div class=\"titl\">'+(e=='xls2'?'【主数据】':'【明细数据】')+'</div><table width=\"100%\">'; |
|
112 |
html +='<tr class=\"mname\"><td align=\"right\">Excel名</td><td align=\"center\">系统名</td><td align=\"right\">Excel名</td><td align=\"center\">系统名</td><td align=\"right\">Excel名</td><td align=\"center\">系统名</td></tr>'; |
|
113 |
br=0; |
|
114 |
for(var x in xls[e]){ |
|
115 |
html +=(br==0?'<tr><td align=\"right\">'+xls[e][x]+':</td><td><input class=\"'+e+'-input\" id=\"'+e+x+'\" title=\"'+xls[e][x]+'\" value=\"\"></td>':'<td align=\"right\">'+xls[e][x]+':</td><td><input class=\"'+e+'-input\" id=\"'+e+x+'\" title=\"'+xls[e][x]+'\" value=\"\"></td>'); |
|
116 |
if(br==2){html +='</tr>';br=0;}else{br++;} |
|
117 |
} |
|
118 |
html +='</table></div>'; |
|
119 |
$('.'+e).html(html); |
|
120 |
$('.'+e+'-input').each(function(){ |
|
121 |
$(this).combobox({ |
|
122 |
valueField:'id', |
|
123 |
textField :'text', |
|
124 |
data :gform[e+'-g'], |
|
125 |
onLoadSuccess:function(){ |
|
126 |
for(var g in gform[e+'-g']){ |
|
127 |
if(gform[e+'-g'][g].text==this.title){ |
|
128 |
isys=true; |
|
129 |
$(this).combobox('setValue',gform[e+'-g'][g].id);break; |
|
130 |
} |
|
131 |
} |
|
132 |
if(err == '' && !isys){ |
|
133 |
err ='<div class=\"tet\">Excel与系统匹配有误,需要手动映射字段</div>'; |
|
134 |
} |
|
135 |
} |
|
136 |
}); |
|
137 |
}); |
|
138 |
html =''; |
|
139 |
} |
|
140 |
$('.spt').html('<label class=\"la\">映射设置</label>(注:<label>Excel名</label>映射到<label>系统名</label>选择的名称,不设置为系统默认,直接【导入】)</span>'); |
|
141 |
$('.mapping').addClass("m"); |
|
142 |
if(err != ''){ |
|
143 |
$.messager.alert('操作提示',err,'warning'); |
|
144 |
} |
|
145 |
}else if(data.state==0){ |
|
146 |
$.messager.alert('操作提示','<div class=\"tet\">'+data.info+'</div>'); |
|
147 |
$('.xls1').html('<div class=\"tet\"><span style=\"color:red\">映射字段信息获取失败!</span></div>'); |
|
148 |
$('.mapping').addClass("m"); |
|
149 |
$('.spt').html(''); |
|
150 |
} |
|
151 |
}catch(e){ |
|
152 |
$.messager.alert('操作提示','<div class=\"tet\">解析映射字段信息出现错误!</div>'); |
|
153 |
} |
|
154 |
ajaxLoadEnd(); |
|
155 |
},error: function(XMLHttpRequest, textStatus, errorThrown) { |
|
156 |
ajaxLoadEnd(); |
|
157 |
$.messager.alert('操作提示','<div class=\"tet\">解析映射字段信息出现错误!</div>'); |
|
158 |
} |
|
159 |
}); |
|
160 |
} |
|
161 |
|
|
162 |
//请稍候。。。启用 |
|
163 |
function ajaxLoading(){ |
|
164 |
$("<div class=\"datagrid-mask\"></div>").css({display:"block",width:"100%",height:$(window).height()}).appendTo("body"); |
|
165 |
$("<div class=\"datagrid-mask-msg\"></div>").html("正在处理,请稍候...").appendTo("body").css({height:"50px",display:"block",left:($(document.body).outerWidth(true) - 190) / 2,top:($(window).height()) / 2}); |
|
166 |
document.documentElement.style.overflow='hidden'; |
|
167 |
document.body.style.position='fixed'; |
|
168 |
document.body.style.top='0px'; |
|
169 |
document.body.style.width='100%'; |
|
170 |
} |
|
171 |
//请稍候。。。结束 |
|
172 |
function ajaxLoadEnd(){ |
|
173 |
$(".datagrid-mask").remove(); |
|
174 |
$(".datagrid-mask-msg").remove(); |
|
175 |
document.documentElement.style.overflow='scroll'; |
|
176 |
document.body.style.position='static'; |
|
177 |
} |
|
178 |
})(jQuery); |
|
179 |
$(function(){ |
|
180 |
$.xlsfile(); |
|
181 |
}); |